Linux 中的 Ps 命令
在 Linux 中,程序的运行实例称为进程。有时,在 Linux 机器上工作时,您可能需要找出当前正在运行的进程。
有很多命令可以帮助你来找到正在运行的进程的信息,但是 ps
以及 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
站全格式房源提供有关进程的详细信息。
此命令将显示在标有 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
收集有关正在运行的进程的信息。