如何在 Linux 中使用 ps 命令?

Linux 中的 ps 命令用于列出正在运行的进程。 ps 命令可以通过多种方式获取有关正在运行的进程的各种信息。 我们将看一些重要的。

目录

Linux 中的进程是什么?

进程只是一个正在执行的程序。 程序的每个实例都是一个进程。 您的浏览器、音乐播放器、文本编辑器都是同时运行的进程示例。

ps 是“进程状态”的缩写

简单的ps

ps 不带任何参数将显示当前会话中正在运行的进程。

$ ps 
ps 命令

我们可以看到有关正在运行的进程显示的四个参数:

PID进程号
TTY终端类型
时间进程运行的总时间
命令启动进程的命令的名称

你注意到一些有趣的事情了吗?

第二个过程实际上是 ps 命令本身。 我们在终端中运行的每个命令都被 Linux 视为一个进程。

获取有关流程的更多信息

ps 命令可以与 -u 选项以显示有关进程的更多信息。

$ ps -u
ps -u 命令

现在,除了 PID、TTY、TIME、COMMAND,我们还有一些关于进程的其他信息,例如 USER、%CPU、%MEM。

  • %CPU 代表进程占用的计算能力。
  • %MEM 表示进程占用的内存量。
  • STAT 代表进程状态。

这种显示格式称为 BSD 样式。

显示当前用户拥有的进程

此命令将显示运行 ps 命令的用户拥有的所有进程。

$ ps -x
Ps X 命令ps -x 命令

这些是用户(在本例中为 root)拥有的进程,这些进程不需要运行。 还有一种方法可以列出其他用户和组的进程,我们将在本文后面介绍。

将 -u 标志与 -x 标志一起使用

ps-ux 结合了前两个命令,正如您可能已经猜到的那样,显示有关用户拥有的所有进程的更多信息。

$ ps -ux
ps Ux 命令ps ux 命令

实际上, -u flag 几乎总是与其他一些标志结合使用以获取更多信息。

列出系统上的所有进程

此命令将显示系统上的所有进程。 这不会将进程列表限制为当前用户或正在运行的进程。

$ ps -A

或者

$ ps -e
Ps 命令ps -A 命令

打印进程树

打印进程树的命令是

 $ ps -eH 
ps -eHps -eH

或者

 $ ps -e --forest
ps -e --森林 ps -e –森林

ps -eH 根据其层次结构显示过程,而 ps-e –森林 以 ASCII 格式显示进程,以树状方式将它们打印出来。

线程

在 Linux 中,线程是正在执行的程序的一个实例。 一个进程可以有多个线程。

使用 ps 你也可以列出线程。

$ ps -H

此命令将显示线程,就好像它们是进程一样。

Ps H 命令ps H 命令
$ ps -m

在进程之后显示线程。

Ps M 命令ps m 命令
$ ps -T

显示线程及其 SPID,即线程 ID,如果只有一个线程,则可以与 PID 相同。

Ps T 命令 ps -T 命令

完整格式列表和额外完整格式列表

$ ps -f 

该命令以全格式列表的方式列出有关进程的信息。 完整的格式列表显示 UID、PPID、C 和 STIME 以及 TIME、CMD 和 PID。

ps -f 命令ps -f 命令
$ ps -F

此命令列出有关进程的信息 额外的 全格式列表方式。 我们可以将其与之前的输出进行比较,并查看额外的完整格式列表提供的附加信息。

ps -F 命令 ps -F 命令

如您所见,我们现在正在获取 PPID,它是父级的 PID。

RSS 是真正的内存使用量。

  • RSS 是真正的内存使用量。
  • SZ 是虚拟内存使用量。
  • STIME 是进程的开始时间。

此命令可以与 -e 结合使用,用作 ps -eF 以获取有关所有进程的完整格式信息。

很容易将 ps -f 和 ps -F 误认为是同一个命令。

基于PID识别进程

您可以使用以下命令显示与特定 PID 对应的进程:

$ ps -fp [pid] 

这将显示具有完整格式信息的进程。 您也可以使用 ps -Fp [pid] 显示具有额外完整格式信息的进程。

Ps Fp Pid 1ps -fp pid

您可以通过提及以逗号分隔的多个 PID 来获取多个进程。

$ ps -fp [pid1],[pid2],[pid3] 

基于父PID(PPID)识别进程

您可以使用以下命令显示与特定 PPID 对应的进程:

$ ps -f --ppid [ppid]
Ps F Ppid 1ps -f ppid 1

这显示了父 ID 为 1 的所有进程。

通过命令名显示进程

可以根据命令名称选择进程:

$ ps -C [cmd name]
PS Cps -C

显示用户或组的所有进程

显示特定用户的所有进程:

$ ps -U [user_name]

要显示特定组的所有进程:

$ ps -G [group_name] 

结论 :

ps 是 Linux 中非常有用的命令,可用于管理 Linux 中的进程。 还有很多关于 ps 命令的知识,这只是一些用例。 更多学习资料可以在 男人 ps的页面。