我们上篇介绍了, Linux 中的进程等概念,那么,在Linux 中如何查看进程呢 ??
我们常用到的有两个命令, PS 和 top 两个命令,今天先来介绍下 top 命令~!
top 命令 :
主要是 交互式的,动态的显示 进程信息~!!!
语法 : top [ -d 数字 ] [ 选项 ]
选项 :
-d : 后面可以接秒数,就是整个进程界面更新的秒数,默认是 5秒,当然也可以指定几秒。
-b : 以批次的方式执行 top ,还有更多的参数可用。 通常会搭配数据重定向来将批处理的结果输
出为文件。
-n : 与 -b 搭配,进行几次 top 的输出结果
- i : 不显示闲置或者僵尸的进程信息
- c : 显示进程的整个命令路径,而不只显示命令名称
- s : 使用 top 命令 在安全模式下运行,此时 top 的交互式指令被取消,避免潜在危险
- p : 指定某些个 PID 来进行查看
# 执行 top 命令 ( 不加选项 ) :
![](https://i-blog.csdnimg.cn/blog_migrate/3a85f54f351faf9baf5253139b175a84.png)
![](https://i-blog.csdnimg.cn/blog_migrate/097c0463d6840044f5afe6b3c4ded075.png)
这就是 top 命令 执行后的结果,它是动态的 ( 过几秒就会 再次刷新进程信息,你也可以指
定按 多少秒 刷新一下~!) 按 q 退出 显示 进程页面 ,回到命令行 ~!!
这 top 命令执行完后,也看不太懂显示的内容,现在来介绍介绍 :
top 命令 输出的信息 分为两个部分来看, 分为 统计信息区 和 进程信息区 两个部分 ~!!
统计信息区 : 为显示内容的 前 5 行
进程信息区 : 为剩余部分 ~!!
统计信息区 :
第一行 : 任务队列信息
top - 11:26:45 up 2 days, 3:20, 2 users, load average: 0.00, 0.00, 0.00
11 :26 : 45 : 表示 当前系统时间
up 2 days : 表示 系统已经运行 两天了
2 users : 表示 当前登录用户有 2 个
load average : 表示 系统 1分钟 ,5 分钟, 15 分钟 前到目前的平均负载
( 如果是 1 ,表示 满负载 )
第二行 :
Tasks: 317 total, 2 running, 314 sleeping, 1 stopped, 0 zombie
317 total : 进程的总数
2 running : 正在运行的进程总数
314 sleeping : 处于休眠状态的进程数
1 stopped : 停止的进程数
0 zombie : 僵死的进程数
第三行 :
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
0.0 us : 表示 用户进程占 CPU 的百分比
0.0 sy : 表示 系统进程占用 CPU 的百分比
0.0 ni : 表示 用户进程空间内改变过优先级的进程占用 CPU 的百分比
100.0 id : 空闲CPU 占用的百分比
0.0 wa : 表示 I/O wait 表示等待输入,输出的进程占用 CPU 的百分比
0.0 hi : 表示 CPU 服务于 硬件中断 所消耗的时间总额。
0.0 si : 表示 CPU 服务于 软件中断 所消耗的时间总额。
0.0 st : 表示 虚拟机被 hypervisor 偷去的 CPU 时间。
另外如果是 多内核设备,可按下 数字键 1 来切换成不同 CPU 的负载率
最后 两行 :
MiB Mem : 1806.2 total, 196.2 free, 1251.4 used, 358.5 buff/cache
MiB Swap: 2048.0 total, 1998.0 free, 50.0 used. 390.7 avail Mem
total 系统内存大小 ; free 目前空余内存大小 used 已经使用的内存大小
进程信息区 :
作用 : 显示每个进程的运行状态。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 179180 12048 8384 S 0.0 0.7 0:03.65 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.05 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
..........................................................................................................................................
PID : 进程的 ID
USER : 进程所有则的 用户名
PR : 进程 优先级
NI : nice 值, 负值表示最高优先级,正值表示 低级优先级
VIRT : 进程使用的虚拟内存总量,单位为 KB
SHR : 共享内存大小,单位 KB
S : 进程状态, D 表示不可中断的睡眠状态, R 表示 运行状态, S 表示 睡眠状态, T 表示跟
踪/停止。
% CPU : 上次更新到现在的 CPU 时间占用比
% MEM : 进程占用的物理内存百分比
TIME + : 进程总计使用的 CPU 时间 单位为 1/100 秒
COMMAND : 正在运行进程的命令名或者 命令路径
top 命令 的交互式 操作 :
交互式命令 | 说明 |
h 或 ? | 显示帮助信息,给出交互式命令的一些说明 |
K | 终止一个进程,系统将提示用户输入一个需要终止进程的PID |
i | 忽略闲置进程和僵死进程,这是一个开关式命令 |
s | 改变top输出信息两次刷新之间的时间,系统将提示输入新的时间,单位是秒。如果输入小数,就换算成毫秒;如果输入0,系统输出将不断刷新,默认刷新时间是3秒;需要注意的是,如果设置太短的时间,可能会引起系统不断刷新,无法看清输出显示情况,而且系统负载也会加大 |
o或者O | 改变top输出信息中显示项的顺序。按小写的a-z键可以将相应的列向右移动,而按大写的A-Z键可以将相应的列向左移动。最后按enter确定 |
f或者F | 从当前显示列表中添加或者删除项,按f键之后会显示列的列表,按a-z键即可显示或隐藏对应的列。最后按enter确定 |
m | 切换显示内存信息 |
t | 切换显示进程和cpu状态信息 |
r | 重新设置一个进程的优先级,系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10 |
l | 切换显示平均负载和启动时间信息 |
q | 退出top显示 |
c | 切换显示完整命令行和命令名称信息 |
M | 根据驻留内存大小进行排序输出 |
N | 以PID来排序 |
P | 根据CPU使用百分比大小进行排序输出 |
T | 根据时间/累计时间进行排序输出 |
S | 切换到累计模式 |
W | 将当前top设置写入~/.toprc文件中 |
拓展 :
nohup 命令
示例 : 我们用户一般登录后,比如说,执行了某一个进程,这个用户登录的时候就 一直执行,但
是如果,这个用户退出了,退出登录了,这个进程就不再执行了~!!!
所以 , nohup 命令 的 作用就是 可以使进程在用户退出登录后依旧继续执行~!!
# nohup 命令将执行后的数据信息和错误信息默认存储 到 nohup.out 中 ~!
格式 : nohup program &