我们已经知道使用 ps 命令可以查看进程的信息,但是除了 ps 命令,我们还可以使用 pstree 命令和 pgrep 命令查看当前进程的信息。
使用 ps 命令,可以查看当前的进程。默认情况下,ps 命令只会输出当前用户并且是当前终端(比如,当前 Shell)下调用的进程信息。其输出将类似如下所示:
在上面的输出中可以看到,默认情况下,ps 命令会显示 ID(PID)、与进程关联的终端(TTY)、格式化的进程累积CPU时间(TIME),以及可执行文件的名称(CMD)。并且输出的内容默认是不排序的。
使用标准语法显示系统的中的每个进程(下面仅显示前 4 行):
使用 BSD 语法显示系统中的每个进程下面仅显示前 2 行):
使用 BSD 样式选项会增加进程状态(STAT)等信息作为默认显示,我们也可以使用 PS_FORMAT 环境变量重写默认的输出格式。
查看系统中的 httpd 进程的信息的示例:
ps aux | grep httpd
使用 pstree 命令可以显示进程树信息。如果 pstree 命令指定的参数是用户名,那么就会显示以此用户的进程为根的所有进程树的信息。
使用 pgreg 命令,可以基于名称或其他属性查找进程。
pgreg 命令会检查当前运行的进程,并列出与选择标准相匹配的进程的 ID。例如,查看 root 用户的 sshd 进程的 PID:
列出所有者是 root 和 deamon 的进程的 PID:
pgrep -u root,deamon
本文参考自 《Linux Shell命令行及脚本编程实例详解 》