【ps 命令】
命令格式
ps
命令可用于查看当前系统正在运行的进程,其命令格式为:ps [选项]
常见的选项有:
- -A:列出当前终端上的所有进程,包括其他用户的进程
- -a:列出不与当前终端有关的所有进程
- -u:显示面向用户的格式,包括用户名、CPU、内存使用情况等
- -x:常与 -a 选项一起使用,列出后台进程的信息
- -l:将 PID 的信息较为详细的列出
- -j:以工作的格式列出
- -f:显示进程的所有信息
查看与当前环境相关的进程
使用 ps -l
仅会列出与当前操作环境有关的进程,即最上层的父进程是当前的 Shell,而没有扩展到 init 这个进程中
使用 ps -l
显示出来的数据有:
- F:进程标志,说明进程的权限,为 4 说明进程权限为 root,为 1 说明该子进程可复制(fork)而无法实际执行(exec)
- S:进程状态
- R:运行态(Running),进程正在运行
- S:休眠态(Sleep),可以被唤醒(signal)
- D:不可唤醒的休眠态,通常进程在等待 I/O
- T:终止态(Stop),处于工作控制或除错状态
- Z:僵尸态(Zombie),已被终止,但无法被删除至内存外
- UID、PID、PPID:进程的 UID 号、PID 号、PPID 号
- C:CPU 使用率,单位为百分比
- PRI、NI:进程被 CPU 所执行的优先级
- ADDR:指出进程在内存的哪个部分,若是在运行的进程会显示
-
- SZ:该进程用掉多少内存
- WCHAN:该进程是否处于运行中,若是在运行的进程会显示
-
- TTY:该进程在哪个终端机上运行,若与终端机无关则显示
?
,若是本机上的程序会显示tty1~tty6
,若是由网络连接进主机的进程会显示pts/0
等 - TIME:该进程实际花费 CPU 运行的时间
- CMD:造成该进程的触发命令
查看所有进程数据
使用 ps -lA
可以列出所有的进程,其显示的每个字段与 ps -l
的输出情况相同
此外,还可以使用 ps aux
来列出所有的进程,其显示会依照进程的 PID 排序来显示,且其输出字段与 ps -l
的输出情况有所不同
ps aux
显示出来的数据有:
- USER:该进程所属的用户
- PID:该进程的 PID 号
- %CPU:该进程所占用的 CPU 资源百分比
- %MEM:该进程所占用的物理内存百分比
- VSZ:该进程使用掉的虚拟内存量,单位为 KB
- RSS:该进程占用的固定内存量,单位为 KB
- TTY:该进程在哪个终端机上运行,若与终端机无关则显示
?
,若是本机上的程序会显示tty1~tty6
,若是由网络连接进主机的进程会显示pts/0
等 - STAT:该进程目前的状态,状态显示与
ps -l
的 S 标识相同(R/S/T/Z) - START:该进程被触发启动的时间
- TIME:该进程实际花费 CPU 运行的时间
- COMMAND:造成该进程的触发命令
【top 命令】
相较于 ps
命令是选取一个时间点的进程状态来进行展示,top
命令则是持续监测进程的运行状态,其命令格式为:top [选项]
常见选项有:
- -d:后接秒数,即整个进程界面更新的秒数,默认为 5 秒
- -b:以批次的方式执行
top
,通常搭配数据流重定向来将批处理结果输出为文件 - -n:后接数字,与 -b 搭配,即需要几次
top
的输出结果 - -p:后接 PID 号,指定查看该 PID 所对应的进程运行状态
在 top
的执行过程中,可以使用如下的按键命令:
- ?:显示在
top
可以输入的按键命令 - P:按进程的 CPU 使用资源排序
- M:按进程的内存使用资源排序
- N:按进程的 PID 号排序
- T:按进程使用的 CPU 时间累积 TIME+ 来排序
- k:给予某个 PID 一个 signal 信号
- r:给予某个 PID 重新制定一个 nice 值
- q:离开
top
【pstree 命令】
pstree
命令用于显示当前系统的进程树,其命令格式为:pstree [选项]
常见的选项有:
- -A:各进程树之间的连接以 ASCII 字符连接
- -U:各进程树之间的连接以 UTF-8 字符连接
- -p:同时列出各进程的 PID
- -u:同时列出各进程的所属账号
【pidof】
pidof
命令用于找出某个正在执行的进程的 PID,其命令格式为:pidof [选项] 进程名
常见的选项有:
- -s:仅列出一个 PID
- -x:同时列出该进程可能的 PPID 那个进程的 PID