如何在 Linux 中使用 ps 命令?

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

Linux中的进程是什么?

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

ps 是“进程状态”的缩写

简单的ps

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

$ ps  
ps命令

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

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

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

第二个过程其实就是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 标志几乎总是与其他标志结合以获取更多信息。

列出系统上的所有进程

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

$ ps -A 

或者

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

打印进程树

打印进程树的命令是

 $ ps -eH  
ps-eHps-eH

或者

 $ ps -e --forest 
ps -e --forest 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 -C

显示用户或组的所有进程

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

$ ps -U [user_name] 

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

$ ps -G [group_name]  

结论 :

ps 是 Linux 中一个非常有用的命令,可用于管理 Linux 中的进程。 关于 ps 命令还有很多需要了解,这只是用例的一部分。 更多学习材料可以在 ps 的手册页上找到。