Linux 为我们提供了一个名为 ps 的实用程序,用于查看与系统上的进程相关的信息,它是 Process Status 的缩写 这份 ps 命令备忘清单的快速参考列表,包含常用选项和示例。
语法
$ ps [options]
命令运行示例,列出当前 shell 中的所有进程:
$ psPID TTY TIME CMD
12330 pts/0 00:00:00 bash
21621 pts/0 00:00:00 ps
PID | 唯一的进程 ID |
TTY | 用户登录的终端类型 |
TIME | 进程运行的 CPU 数量,以分钟和秒为单位 |
CMD | 启动进程的命令的名称 |
注意:有时当我们执行 ps 命令时,它显示 TIME 为 00:00:00
ps 命令支持 3 种使用语法风格
-
Unix可以分组并以连字符开头 -
BSD可以分组但前面没有连字符 -
GNU长选项,前面有双连字符

示例

查看系统上的每个进程
要使用标准语法查看系统上的每个进程:
$ ps -e # 列出所有进程
$ ps -ef
$ ps -eF
$ ps -ely
要使用 BSD 语法查看系统上的每个进程:
$ ps ax # 以 BSD 格式列出所有进程
$ ps axu
打印进程树
$ ps -ejH$ ps axjf
仅打印 PID 42 的名称
$ ps -q 42 -o comm=
获取有关线程的信息
$ ps -eLf$ ps axms
列出当前用户拥有的所有进程
$ ps x
获取安全信息
$ ps -eo euser,ruser,suser,fuser,f,comm,label$ ps axZ$ ps -eM
查看以 root 身份运行的每个进程
查看以 root 身份运行的每个进程(真实且有效的 ID)用户格式:$ ps -U root -u root u
查看具有用户定义格式的每个进程
$ ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm$ ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm$ ps -Ao pid,tt,user,fname,tmout,f,wchan
仅打印 syslogd 的进程 ID
$ ps -C syslogd -o pid=
显示面向用户的格式
$ ps uUSER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMANDrefs 11400 1.1 0.0 34853544 5816 s025 Ss Tue02PM 0:02.82 /bin/zsh --loginrefs 34561 0.6 0.0 34822644 3152 s016 S+ 14Dec22 115:59.28 zsh (figterm)refs 21377 0.5 0.0 34973972 7076 s028 S+ Wed09AM 4:32.19 zsh (figterm)refs 78881 0.5 0.0 34843484 3256 s015 S+ 17Dec22 90:27.10 zsh (figterm)
列出具有完整格式的进程
$ ps f$ ps -F
显示虚拟内存格式
$ ps v
按有效用户 ID 或名称显示进程
$ ps -u user[name or id]# OR$ ps --user user[name or id]$ ps -u root按真实用户 ID 或名称显示进程$ ps -U user[name or id]# OR$ ps --User user[name or id]
按实际组 ID 或名称显示进程
$ ps -G group[name or id]# OR$ ps --Group group[name or id]
隐藏 ps 命令输出的标题
$ ps hPID TT STAT TIME COMMAND33790 s000 S+ 104:10.45 zsh (figterm)33800 s001 Ss+ 0:02.76 /bin/zsh --login77830 s002 S+ 90:22.51 zsh (figterm)77840 s003 Ss 0:00.66 /bin/zsh --login
显示命令后的环境
$ ps ePID TTY STAT TIME COMMAND886 tty2 Ssl+ 0:00 /usr/li....
重复 ps 命令输出的标题行
$ ps --headers -APID TTY TIME CMD1 ? 00:00:01 systemd2 ? 00:00:00 kthreadd3 ? 00:00:00 rcu_gp
显示进程树
$ ps --forest -APID TTY TIME CMD2 ? 00:00:00 kthreadd3 ? 00:00:00 \_ rcu_gp4 ? 00:00:00 \_ rcu_par_gp960 ? 00:00:00 \_ goa-identity-se1118 ? 00:00:00 \_ at-spi-bus-laun1124 ? 00:00:00 | \_ dbus-daemon您可以使用 -H 选项打印进程层次结构$ ps -H -APID TTY TIME CMD2 ? 00:00:00 kthreadd3 ? 00:00:00 rcu_gp1832 ? 00:00:37 gnome-terminal-1840 pts/0 00:00:00 bash1925 pts/1 00:00:00 bash2867 pts/1 00:00:00 su2868 pts/1 00:00:00 bash