Linux学习(七)
Linux学习(七)
参考文献:
[1]鸟哥.鸟哥的linux私房菜基础学习篇(第三版) [M]北京:人民邮电出版社,2010.7;
目录:
1、Linux系统的顶层目录结构:
2、软链接和硬链接:
3、mkdir创建目录:
4、top命令查看内存状态和CPU使用情况:
5、free命令查看内存:
6、cat /proc/meminfo查看内存状况:
7、pidstat:查看各活动进程的CPU及内存及IO使用情况:
8、ps命令及kill掉包含某个关键字的程序进程(使用管道形式):
1、Linux系统的顶层目录结构:
/:根目录
bin:存放用户二进制文件
boot:存放内核引导配置文件
dev:存放设备文件
etc:存放系统配置文件
home:用户主目录
lib:动态共享库
lost+found:文件系统恢复时的恢复文件
media:可卸载存储介质挂载点
mnt:文件系统临时挂载点
opt:附加的应用程序包
proc:系统内存的映射目录,提供内核与进程信息
root:root用户主目录
sbin:存放系统二进制文件
srv:存放服务相关数据
sys:sys虚拟文件系统挂载点
tmp:存放临时文件
usr:存放用户临时程序
var:存放邮件、系统日志等变化文件
2、软链接和硬链接:
(1)文件在Linux上分成两部分:用户数据(user data)和元数据(metadata)。
用户数据:也称为文件数据块(data block),是记录文件真实内容的地方。
元数据:文件的附加属性,如文件大小、创建时间、所有者等信息,其中有inode索引节点号,是文件的唯一标识。系统或程序通过Inode号寻找正确的文件数据块。文件名仅是为了方便人们的记忆和使用。
(2)在Linux中查看Inode号可使用命令stat或ls -i
图2.1 截图1
图2.2 截图2
(3)为解决文件系统的共享使用,Linux中引入了两种链接:
硬链接与软链接
作用:隐藏文件路径、增加权限安全、节省存储。
A)硬链接(hard.link):
一个Inode号对应多个文件名,则称这些文件为硬链接。
特性:
①有相同的Inode和data block;
②只能对已存在的文件进行创建;
③不能交叉文件系统进行硬链接的创建;
④不能对目录进行创建,只可对文件创建;
⑤删除一个硬链接文件并不影响其他有相同Inode号的文件。
输入指令 touch a.txt,b.txt
link a.txt c.txt,则对a.txt文件创建了一个硬链接
图2.3 截图3
使用rm a.txt后,能够发现c.txt依旧存在。
B)软链接(soft.link):
若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软链接。
特性:
①软链接有自己的文件属性及权限;
②可对不存在的文件或目录创建软链接;
③软链接可交叉文件系统;
④软链接可对文件或目录创建;
⑤删除软链接并不影响被指向的文件,但若被指向的原文件删除,则相关的软链接称为死链接(dangling link),若被指向路径文件被重新创建,死链接可恢复为正常的软链接。
(4)使用ls -li或ll -i查看软硬链接
图2.4 截图4
①第一列文字:Inode号
②第二列文字:文件权限,
第1位:d为目录,-为文件
第2-4位:文件所有者的权限,user
第5-7位:文件所属用户组的权限,group
第8-10位:其他用户的权限,others
r:read,读取
w:write,写入
x:execute,执行
③第三列文字:指向该文件的硬链接数,数字大于2即说明文件是硬链接。
(5)找出所有指向该inode的文件
①ls -li
图2.5 截图5
②find -inum Inode号
图2.6 截图6
3、mkdir创建目录:
make directory用来创建指定名称的目录,要求创建目录的用户在当前目录中具有读写权限,并且指定的目录名不能是当前目录中已有的目录。
4、top命令查看内存状态和CPU使用情况:
图4.1 截图7
(1)10:07:30:系统当前时间
up 21min:系统启动后到现在的运行时间
2 users:当前登录到系统的用户,同一个用不在同一时间对系统多个终端的连接将被视为多个用户连接到系统。
load average:当前系统负载的平均值,后面三个值分别为1分钟前,5分钟前,15分钟前进程的平均数,当这个数值超过CPU的数目时,CPU将比较吃力的负载当前系统所包含的进程。
(2)178 total:当前系统进程总数
1 running:当前运行中的进程数
177 sleeping:当前处于等待状态的进程数
0 stopped:停止的系统进程数为0
0 zombie:复原的进程数为0
(3)CPU:
①对于Linux来说,只使用了0级(最高)和3级(最低)的CPU特权级,即一条工作在0级特权级的指令具有CPU能提供的最高权力,而一条工作在3级特权的指令具有最基本权力。
②用户态:3级特权级的程序,则称程序运行在用户态;
0级特权级的程序,则称程序运行在内核态;
③运行在用户态的程序不能访问操作系统内核数据结构和程序。
④在用户态需要操作系统帮助完成某些它没有权力和能力完成的工作时就会切换到内核态。
0.7% us:user,用户态
0.3% sys:system,内核态
0.0% ni:nice,nice值为负的进程,即用户进程空间内改变过优先级的进程占用CPU百分比
99.0% id:idle,空闲的CPU
0.0% wa:iowait,io等待
0.0% hi:hardware irq,硬件中断请求(irq,interrupt request)
0.0% si:software irq,软件中断请求
0.0% st:steal time,实时CPU
(4)Mem:
1004316k total:内存总量为1G
621560k used:当前使用量
382576k free:空闲内存容量
24208k buffers:缓冲使用中的内存容量
(5)Swap:
交换分区的使用情况。若交换分区被频繁使用,将视作物理内存不足而造成的。
2031612k total:交换分区的总容量
0k used:当前使用量
2031612k free:空闲容量
273540k cache:缓存内存容量
(6)输入M:以内存占用率由大到小的顺序排列进程列表
输入n 10:设置在进程列表中显示进程的数量为10
输入P:以CPU占用率由大到小的顺序排列进程列表
q:退出top
5、free命令查看内存:
图5.1 截图8
(1)参数说明:
total:总物理内存容量
used:已使用内存容量
free:可用内存容量
shared:多个进程共享的内存总额
buffers:磁盘缓冲的大小,为了提高内存和硬盘(或其他I/O设备)之间的数据交换的速度
cached:磁盘缓存的大小,为了提高CPU和内存之间的数据交换速度而设计的,例如一级缓存、二级缓存等
(2)注意事项:
①buffers是将要被写入磁盘的,cache是从磁盘中读取出来的。
②buffers是由各种进程分配的,比如一个进程要求有多个字段读入,在所有字段被读入完整之前,进程先把先前读入的字段放在buffers中保存。
③cache常被用在磁盘的I/O请求上,如果有多个进程都要访问某个文件,则该文件放入cache以方便下次被访问,这样可提高系统性能。
6、cat /proc/meminfo查看内存状况:
图6.1 截图9
7、pidstat:查看各活动进程的CPU及内存及IO使用情况:
查看各活动进程的CPU及内存及IO使用情况,主要用于监控全部或指定进程占用系统资源的情况。
(1)pidstat -u:等同于pidstat不加参数的情况,显示进程CPU使用情况
图7.1 截图10
(2)pidstat -r:显示活动进程的内存使用统计
图7.2 截图11
minflt/s:每秒次缺页错误次数(mirror page faults),次缺页错误次数即虚拟机内存地址映射成物理内存地址产生的page fault次数。
majflt/s:每秒主缺页错误次数(major page faults),主缺页错误次数一般在内存使用紧张时产生。
VSZ:该进程使用的虚拟内存(kB)
RSS:该进程使用的物理内存(kB)
%MEM:该进程使用内存的百分比
Command:拉起进程对应的命令
(3)pidstat -d:显示活动进程的IO情况统计
图7.3 截图13
kB_rd/s:每秒进程从磁盘读取的数据量(kB)
kB_wr/s:每秒进程向磁盘写入的数据量(kB)
kB_ccur/s:每秒进程写入磁盘被取消的数据量(kB)
Command:拉起进程对应的命令
(4)pidstat -r -p 2998 1:针对特定进程统计
图7.4 截图14
-r:查看内存使用情况
-p:指定特定进程
2998:PID
1:信息采集周期,每间隔一秒采集一次
8、ps命令及kill掉包含某个关键字的程序进程(使用管道形式):
(1)ps aux:列出目前所有在运行的进程
图8.1 截图15
参数含义:
a:显示现行终端机下的所有进程,包括其他用户的进程
u:显示以用户为主的进程状态
x:通常与a这个参数一起使用,可列出较完整信息。
TTY:该进程是在哪个终端机上面运作;
①若与终端机无关,则显示?
②tty1-tty6:本机上面的登入者程序
③pts/0:由网络连接进主机的程序
图8.2 截图16
图8.3 截图17
STAT:该进程目前的状态
①S:进程正在睡眠中
②R:进程正在运作
③T:进程停止或侦测
④Z:进程已经终止,但其父程序却无法正常的终止它,造成zombie状态。
⑤+:位于后台的进程组
⑥<:高优先级进程
⑦N:低优先级进程
⑧s:进程的领导者(在其下有子进程)
⑨l:多进程的
⑩L:内存锁页,Lock,有记忆体分页分配并所在记忆体内。
(2)ps aux |grep http或ps aux |grep ‘http’:查找含有http字符的特定进程
图8.4 截图18
(3)kill -KILL pid或kill -9 pid:发送SIGKILL(9)强迫进程立即停止,并且不实施清理操作。
eg:将火狐kill掉
图8.5 截图19
输入kill -KILL 3667,可查看到底部的火狐浏览器被强退。
(4)ps -ef:显示所有进程
e:显示所有进程
图8.6 截图20
f:以更完整的形式输出
图8.7 截图21
(5)kill掉包含某个关键字的程序进程(使用管道形式)
第一种方式:
ps -ef|grep 关键字1|grep -v 关键字2|cut -c 9-15|xargs kill -9
第二种方式:
ps x|grep 关键字1|grep -v 关键字2 |awk '{print $数字}'|xargs kill -9
①使用第一种方式:
例如:kill掉含有关键字firefox的进程
ps -ef |grep firefox |cut -c 9-15|xargs kill -KILL
或 ps -ef |grep firefox |cut -c 9-15|xargs kill -9
或ps aux|grep firefox |cut -c 9-15|xargs kill -KILL
grep firefox:列出进程中含有关键字“firefox”的进程
grep -v 关键字2:列出去除了关键字2的进程
cut -c 9-15:截取输入行的PID(第9个字符到第15个字符)
xargs:把前面命令的输出结果(PID)作为kill -9命令的参数
②使用第二种方式:
ps aux|grep firefox |awk '{print $2}'|xargs kill -9
图8.8 截图22
图8.9 截图23
awk是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
print:打印输出的函数,函数的参数可以是变量、数值或字符串