(一).系统目录结构
1、/- 根
每一个文件和目录从根目录开始。
只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/不一样
2、/bin中 - 用户二进制文件
包含二进制可执行文件。
在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。
例如:ps、ls、ping、grep、cp
3、/sbin目录 - 系统二进制文件
就像/bin,/sbin同样也包含二进制可执行文件。
但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令
4、/etc - 配置文件
包含所有程序所需的配置文件。
也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf
hosts:设备名称(或域名)到ip地址的解析,相当于本地存在的dns功能。
5、/dev - 设备文件
包含设备文件。
这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0
6、/proc - 进程信息
包含系统进程的相关信息。
这是一个虚拟的文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录中包含的与特定pid相关的信息。
这是一个虚拟的文件系统,系统资源以文本信息形式存在。例如:/proc/uptime
7、/var - 变量文件
var代表变量文件。
这个目录下可以找到内容可能增长的文件。
这包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);
8、/tmp - 临时文件
包含系统和用户创建的临时文件。
当系统重新启动时,这个目录下的文件都将被删除。
9、/usr - 用户程序
包含二进制文件、库文件、文档和二级程序的源代码。
/usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。例如:at、awk、cc、less、scp。
/usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。例如:atd、cron、sshd、useradd、userdel。
/usr/lib中包含了/usr/bin和/usr/sbin用到的库。
/usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。
10、/home - HOME目录
所有用户用home目录来存储他们的个人档案。
例如:/home/john、/home/nikita
11、/boot - 引导加载程序文件
包含引导加载程序相关的文件。
内核的initrd、vmlinux、grub文件位于/boot下。
例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic
12、/lib - 系统库
包含支持位于/bin和/sbin下的二进制文件的库文件.
库文件名为 ld或lib.so.*
例如:ld-2.11.1.so,libncurses.so.5.7
13、/opt - 可选的附加应用程序
opt代表可选的。
包含从个别厂商的附加应用程序。
附加应用程序应该安装在/opt/或者/opt/的子目录下。
14、/mnt - 挂载目录
临时安装目录,系统管理员可以挂载文件系统。
15、/media - 可移动媒体设备
用于挂载可移动设备的临时目录。
举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy;
16、/srv - 服务数据
srv代表服务。
包含服务器特定服务相关的数据。
例如,/srv/cvs包含cvs相关的数据。
(二).ssh协议
ssh (安全外壳协议):
ssh为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
(三).命令基本格式
在线查询Linux命令:http://www.runoob.com/linux/linux-tutorial.html
(1).命令基本格式
1.命令提示符
[root@localhost ~]#
其中:
root 当前登陆用户
localhost 主机名
~ 当前所在目录(家目录)
如果是root代表/root;
如果是普通用户user1代表/home/user1
# 超级用户的提示符#
普通用户提示符$
2.命令格式
命令 [选项] [参数]
注意: 个别命令的使用不遵循次格式
当有多个选项时,可以写在一起
简化选项与完整选项
-a 等于 --all
3.查询目录中内容:ls
ls [选项] [文件或目录]
选项:
-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-h 人性化显示文件大小
ls -l 等价于 ll
ls -lh
ls -lah
ls / :表示从根目录下去寻找
clear 清屏:实际上只是把之前的内容给顶上去了,并没有真正的清除
查询所在目录位置:pwd
创建文件:touch 用法:touch 文件名
建立目录:mkdir
用法:mkdir -p [目录名]
切换所在目录
cd [目录]
命令英文原意: change directory
简化操作:
cd ~ 进入当前用户的家目录
cd 同上
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
删除空目录:rmdir 用法:rmdir [目录名]
删除文件或目录:rm
用法:rm -rf [文件或目录]
选项:
-r 递归删除目录
-f 强制
复制命令:cp
剪切或改名命令:mv
mv 源文件 文件夹 表示把源文件剪切到指定的文件夹中
mv 源文件 一个不存在的文件名 表示把源文件重命名
mv 源文件 文件夹/一个不存在的文件名 表示把源文件剪切到指定的文件夹并重命名
(1)命令的搜索命令和环境变量
whereis 命令名 #搜索命令所在路径及帮助文档所在位置
which 文件名 #搜索命令所在路径及别名
**找到指定命令的绝对路径**
PATH环境变量: PATH环境变量:定义的是系统搜索命令的路径
相当于window下的path
echo $PATH
**方便以后我们自己去追加PATH变量**
find [搜索范围] [搜索条件]
示例:
find / -name install.log
#**避免大范围搜索,会非常耗费系统资源**
#find是在系统当中搜索符合条件的文件名.如果需要匹配,使用通配符匹配,通配符是完全匹配
Linux中的通配符
* 匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
find /var/log -mtime +10
#查找10天前修改的文件
-10 10天内修改文件
10 10天当天修改的文件
+10 10天前修改的文件
atime 文件访问时间
ctime 改变文件属性时间
mtime 修改文件时间
find . -size 25k
#查找文件大小是25KB的文件,注意k是小写的.
-25k 小于25KB的文件
25k 等于25KB的文件
+25k 大于25KB的文件
find . -size 25M
#查找文件大小是25MB的文件,注意M是大写的.
find /etc -size +20k -a -size -50k
#查找/etc/目录下,大于20KB并且小于50KB的文件
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
#查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息
#-exec {} \;这是固定格式
find /root -iname install.log #不区分大小写
find /root -user root #按照所有者搜索
find /root -nouser #查找没有所有者的文件
字符串搜索命令:
grep [选项] 字符串 文件名
#在文件当中匹配符合条件的字符串
选项:
-i 忽略大小写
-v 排除指定字符串
find命令和grep命令的区别:
find命令:在系统中搜索符合条件的文件名.
grep命令:在文件中搜索符合条件的字符串.
man命令: 用法:man ls #查看ls的帮助
选项帮助:
命令 --help #获取命令选项的帮助
实例:ls --help
但是不适用内部命令,如cd:
help cd
总结就是:我们不需要去记住每个命令的每种用法,只需要记住命令就可以了.比如记住了find,通过man find 或者find --help 又或者去查阅相关的文档查看具体的使用方法
(1).zip格式
.zip格式:
压缩用法: zip 压缩文件名 原文件
zip -r 压缩文件名 原文件夹
解压用法: unzip 压缩文件
.gz格式:
压缩用法: gzip 原文件 压缩为.gz格式的压缩文件,原文件会消失
gzip -r 目录 压缩目录下的所有子文件,但是不能压缩目录
解压用法:
gzip -d 压缩文件
gunzip 压缩文件
(3).bz2格式
.bz2格式:
压缩用法: bzip2 源文件 压缩为.bz2格式,不能保留源文件
**注意:bzip2命令不能压缩目录**
解压用法: bzip2 -d 压缩文件
bunzip2 压缩文件
.bz2和.gz的区别:
.bz2和.gz都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件。
前者比后者压缩率更高,后者比前者花费更少的时间。也就是说同一个文件,压缩后,.bz2文件比.gz文件更小,但是.bz2文件的小是以花费更多的时间为代价的
(4).打包命令&解打包
打包命令&解打包:
打包命令: tar -cvf 打包文件名 源文件
选项:
-c 打包
-v 显示过程
-f 指定打包后的文件名
解打包: tar -xvf 打包文件名
选项:
-x 解打包
.tar.gz格式:
选项:-z 压缩为.tar.gz格式
压缩用法: tar -zcvf 压缩包名.tar.gz 源文件
解压用法: tar -zxvf 压缩包名.tar.gz
tar -zxvf 压缩包名.tar.gz -C 指定目录
.tar.bz2命令:
选项:-j 压缩为.tar.bz2格式
压缩用法: tar -jcvf 压缩包名.tar.bz2 源文件
解压用法: tar -jxvf 压缩包名.tar.bz2
注意:服务器一般是不会关机的,但是会重启
shutdown命令:
用法 shutdown [选项] 时间
选项:
-c 取消前一个关机命令
-h 关机
-r 重启
#使用shutdown会在关机的时候帮我们保存数据
其他关机命令:
halt
poweroff
init 0
#使用这三个命令不是特别安全,因为它们不会帮我们保存数据.
其他重启命令:
reboot
init 6
磁盘使用情况df: 选项-h: 格式化显示输出磁盘使用情况
查看操作历史history: 用于显示执行过的历史命令记录
在显示器输出内容:echo
文件查看命令cat
日志监控命令:tail 默认在屏幕上显示指定文件的末尾10行
-f 显示文件最新追加的内容。
-n 行数 在屏幕上显示指定文件的末尾参数设置的行数
** tail free 和 top 是面试的时候可以用来回答的,也是实际开发中,程序员会去关注的点**
查看内存占用:free
查看任务进程:top
第一行:
10:01:23 — 当前系统时间
126 days, 14:29 — 系统已经运行了126天14小时29分钟(在这期间没有重启过)
2 users — 当前有2个用户登录系统
load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
第二行:
Tasks — 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
第三行:cpu状态
6.7% us — 用户空间占用CPU的百分比。
0.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
92.9% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比
第四行:内存状态
8306544k total — 物理内存总量(8GB)
7775876k used — 使用中的内存总量(7.7GB)
530668k free — 空闲内存总量(530M)
79236k buffers — 缓存的内存量 (79M)
第五行:swap交换分区
2031608k total — 交换区总量(2GB)
2556k used — 使用的交换区总量(2.5M)
2029052k free — 空闲交换区总量(2GB)
4231276k cached — 缓冲的交换区总量(4GB)
第五行以下:
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)