top和ps基本作用都是显示系统进程状况,但top命令是动态显示,ps命令是静态显示,即ps命令只显示命令执行时的进程状况。
top
top 命令用来动态显示系统当前进程状况,默认以CPU占用量进行排序。
top + [参数选项]
d:指定更新的间隔,以秒计算。
q:没有延迟的更新,如使用超级用户,则默认会以最高的优先序执行。
c:显示进程完整的路径与名称。
S:累积模式,会将已完成或消失的子进程的 CPU 时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的进程。
n:显示更新的次数,完成后将会退出 top。
执行top 命令:
1、 解析一下,先看第一行:
22:44:58 up — 当前时间
13 min — 系统启动时间
1 user — 当前系统登录用户数量
load average — 1 5 15分钟CPU平均负载
2、第二行:
Tasks — 进程总数
running — 正在运行进程数
sleeping — 睡眠进程数
stopped — 停止进程数
zombie — 僵尸进程数
3、第三行
Cpu(s) — 表示CPU使用状况
us:用户空间占用CPU百分比
sy:内核空间占用CPU百分比
ni:改变过优先级的进程占用CPU百分比
id:空闲CPU百分比
wa:等待输入输出IO的CPU时间百分比
hi:硬中断占用CPU的百分比
si:软中断占用CPU的百分比
4、第四,五行
Kib Mem — 内存使用情况
total — 物理内存总量
used — 使用中的内存总量
free — 空闲内存总量
buffers — 缓存的内存总量
Kib Swap — 交换分区使用情况
total — 交换区总量
used — 使用的交换区总量
free — 空闲的交换区总量
cached — 缓冲的交换区总量
5、列表行
PID — 进程id,是非零正整数
USER — 进程所有者的用户名
PR(priority) — 进程的优先级别
NI (nice)— 进程的优先级别数值
VIRT (virtual)— 进程占用的虚拟内存值
RES (resident)— 进程占用的物理内存值
SHR (share)— 进程使用的共享内存值
S — 进程状态,S 休眠,R正在运行,Z僵死状态,N 该进程优先值是负数
%CPU — 该进程占用的 CPU 使用率
%MEM — 该进程占用的物理内存百分比
TIME — 该进程启动后占用的总的 CPU 时间
COMMAND — 进程名称,如果这一行显示不下,进程会有一个完整的命令行
在执行top 的过程中,可以使用的交互命令:
<空格>:立刻刷新
1:如果有多个逻辑CPU的话可以显示每个CPU的状况
b:对“top”进程进行加亮
x:加亮%CPU列(默认是以CPU占用量进行排序的)
z:彩色/黑白显示开关
A:分类显示系统不同资源的使用大户,有助于快速识别资源消耗多的任务
f:添加删除所要显示栏位
o:调整所要显示栏位的顺序
r :调整一个正在运行的进程 Nice 值
k:结束一个正在运行的进程
P:根据 CPU 使用大小进行排序
T:根据时间、累计时间排序
m:切换显示内存信息
t:切换显示进程和 CPU 状态信息
c:切换显示命令名称和完整命令行
M:根据使用内存大小进行排序
W:将当前设置写入~/.toprc 文件中。这是写 top 配置文件的推荐方法
q:退出 top 命令
grep
Linux中 grep命令可以实现文本中查找指定的字符串,就像在windows中打开txt文件,使用快捷键 “Ctrl+F” 在文本中查找某个字符串一样,说白了,可以把grep理解成字符查找工具。
grep 最常用的就是和管道符结合,例如:ps -ef | grep "docker"。( | 竖线称为管道符, 这个命令符产生的是两个进程,后一个进程需要前一个进程的数据,因此会涉及到进程间的通信,因此中间的竖线就是一个管道,将前面的数据传给后面的指令。)
语法格式
grep -option(可选参数) "word"(要搜索的关键词) file(文本文件)
可选参数:
-a :不要忽略二进制数据。
-A<显示列数> :除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b :在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c :计算符合范本样式的列数。
-C<显示列数>或 -<显示列数> :除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> :当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式> :指定字符串作为查找文件内容的范本样式。
-E :将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件> :指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F :将范本样式视为固定字符串的列表。
-G :将范本样式视为普通的表示法来使用。
-h :在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H :在显示符合范本样式的那一列之前,标示该列的文件名称。
-i :忽略字符大小写的差别。
-l :列出文件内容符合指定的范本样式的文件名称。
-L :列出文件内容不符合指定的范本样式的文件名称。
-n :在显示符合范本样式的那一列之前,标示出该列的编号。
-q :不显示任何信息。
-R/-r :此参数的效果和指定“-d recurse”参数相同。
-s :不显示错误信息。
-v :反转查找。
-w :只显示全字符合的列。
-x :只显示全列符合的列。
-y :此参数效果跟“-i”相同。
-o :只输出文件中匹配到的部分。
举几个例子:
1、查找/etc/passwd文件中是否存在quail用户信息:
grep "quail" /etc/passwd
2、ifconfig看到网卡信息,只查看IP地址所在行信息:
ifconfig |grep -w inet
3、统计root 字符总行数:
grep -c "root" list.txt