Linux中的Ps命令(列出进程)
在Linux中,程序的运行实例称为进程。
有时,在Linux机器上工作时,我们可能需要找出当前正在运行的进程。
我们可以使用许多命令来查找有关正在运行的进程的信息,其中最常用的是“ ps”,“ pstree”和“ top”。
本文介绍了如何使用“ ps”命令列出当前正在运行的进程以及显示有关那些进程的信息。
如何使用“ ps”命令
'ps'命令的一般语法如下:
ps [OPTIONS]
出于历史和兼容性的原因,“ ps”命令接受几种不同类型的选项:
- UNIX样式选项,后跟一个破折号。
- BSD样式选项,不带破折号。
- GNU长选项,后跟两个破折号。
可以混合使用不同的选项类型,但是在某些特定情况下,可能会出现冲突,因此最好坚持使用一种选项类型。
BSD和UNIX选项可以分组。
以最简单的形式,当不带任何选项使用时,“ ps”将打印四列信息,以显示当前shell程序中运行的至少两个进程,shell程序本身以及调用命令时在shell程序中运行的进程。
ps
输出包括有关shell程序('bash')和在此shell程序中运行的进程('ps',我们键入的命令)的信息:
PID TTY TIME CMD 1809 pts/0 00:00:00 bash 2043 pts/0 00:00:00 ps
这四列标记为'PID','TTY','TIME'和'CMD'。
- 'PID'-进程ID。通常,在运行“ ps”命令时,用户正在寻找的最重要的信息是过程PID。了解PID可以使我们终止故障过程。
- 'TTY'-进程的控制终端的名称。
- 'TIME'-进程的累积CPU时间,以分钟和秒为单位。
- 'CMD'-用于启动进程的命令的名称。
上面的输出不是很有用,因为它包含的信息不多。
当启动带有其他选项的命令时,'ps'命令的真正功能才会到来。
“ ps”命令接受大量选项,这些选项可用于显示特定的一组进程以及有关该进程的不同信息,但在日常使用中只需要少数几个选项。
“ ps”最常与以下选项组合使用:
BSD形式:
ps aux
- “ a”选项告诉“ ps”显示所有用户的进程。仅不显示与终端不相关的过程和组长的过程。
- “ u”代表一种面向用户的格式,该格式提供有关过程的详细信息。
- “ x”选项指示“ ps”列出没有控制终端的进程。这些主要是在启动时启动并在后台运行的进程。
该命令在11个列中显示信息,这些列分别标记为'USER','PID','%CPU','%MEM','VSZ','RSS','STAT','START','TTY','TIME',和'CMD'。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 19:47 0:00 [kthreadd] ...
我们已经解释了“ PID”,“ TTY”,“ TIME”和“ CMD”标签。
这是其他标签的说明:
- 'USER'-运行进程的用户。
- '%CPU'-进程的CPU使用率。
- '%MEM'-进程的常驻设置大小占计算机物理内存的百分比。
- 'VSZ'-KiB中进程的虚拟内存大小。
- 'RSS'-进程正在使用的物理内存的大小。
- 'STAT'-进程状态代码,例如'Z'(僵尸),'S'(正在睡眠)和'R'(正在运行)。
- 'START'-命令开始的时间。
'f'选项告诉'ps'显示父进程到子进程的树视图:
ps auxf
'ps'命令还允许我们对输出进行排序。
例如,要根据内存使用情况对输出进行排序,可以使用:
ps aux --sort=-%mem
UNIX形式:
ps -ef
- '-e'选项指示'ps'显示所有进程。
- “ -f”代表完整格式的列表,其中提供了有关过程的详细信息。
该命令在标记为'UID','PID','PPID','C','STIME','TIME'和'CMD'的八列中显示信息。
UID PID PPID C STIME TTY TIME CMD root 1 0 0 19:47 ? 00:00:01 /sbin/init root 2 0 0 19:47 ? 00:00:00 [kthreadd] ...
未解释的标签具有以下含义:
- 'UID'-与'USER'相同,后者是运行进程的用户。
- 'PPID'-父进程的ID。
- 'C'-与'%CPU'相同,即进程CPU利用率。
- 'STIME'-与命令启动的时间'START'相同。
要仅查看以特定用户身份运行的进程,请键入以下命令,其中“ theitroad”是用户名:
ps -f -U theitroad -u theitroad
用户定义格式
使用“ o”选项可以指定在运行“ ps”命令时显示哪些列。
例如,要仅打印有关'PID'和'COMMAND'的信息,我们将运行以下命令之一:
ps -efo pid,comm
ps auxo pid,comm
与其他命令一起使用“ ps”
可以通过管道将“ ps”与其他命令结合使用。
如果要显示“ ps”命令的输出,请一次将一页传递给“ less”命令:
ps -ef | less
可以使用'grep'过滤'ps'命令的输出。
例如,要仅显示属于root用户的进程,请运行:
ps -ef | grep root