Linux ps 命令用法详解
在 Linux 中,程序的运行实例称为进程。有时,在 Linux 机器上工作时,您可能需要找出当前正在运行的进程。
有很多命令可以帮助你来找到正在运行的进程的信息,但是 ps 以及 top 是最常用的。
在本文中,我们将讨论如何在Linux中使用该 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 站全格式房源提供有关进程的详细信息。
此命令将显示在标有 7 列信息 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 命令启动时相同。
要仅查看作为特定用户运行的进程,请使用以下命令,其中 linuxize 是用户的名称:
ps -f -U linuxize -u linuxize
用户定义的格式
该 o 选项允许您指定运行 ps 命令时将显示哪些列。
例如,要仅打印有关的信息 PID , COMMAND 您将运行以下命令之一:
ps -efo pid,comm
ps auxo pid , comm
和其他命令一块使用 ps 命令
ps 命令能够通过管道和其他命令一块使用.
If you want to display the output of the ps command, one page at a time pipe it to the less command:
如果你不想一次显示 ps 太多的输出,请和 less 命令搭配使用
console-bash ps -ef | less
ps 命令的输出也可以使用 grep 命令过滤结果. 比如只输出 root 用户的进程,可以使用下面的命令
console-bash ps -ef | grep root
总结
在解决 Linux 系统上的问题时, ps 命令是最常用的命令之一。它有很多选项,但通常,大多数用户使用 ps aux 或 ps -ef 收集有关正在运行的进程的信息。