Alex_McAvoy

想要成为渔夫的猎手

Linux 的进程查看

【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

感谢您对我的支持,让我继续努力分享有用的技术与知识点!