Linux ps命令完全指南:20个实用实例详解

ps命令,全称为进程状态(Process Status),是一个命令行实用程序,用于显示或查看在Linux系统中运行的进程相关信息。众所周知,Linux是一个多任务和多用户系统。因此,多个进程可以并发运行而互不影响。ps命令列出当前正在运行的进程以及它们的进程ID(PID)和其他属性。在本指南中,我们将重点介绍ps命令的使用方法。它从位于/proc文件系统中的虚拟文件中获取有关进程的信息。

没有参数的ps命令

不带参数的ps命令将在当前的shell中列出正在运行的进程。

ps
ps命令

以不同格式查看所有正在运行的进程

要以不同格式查看所有正在运行的进程,可以使用以下命令:

ps -e
ps -e命令

查看与终端相关联的进程

要查看与终端相关联的进程,可以使用以下命令:

ps -T
ps -T命令

查看与终端不相关的进程

要查看与终端不相关的进程,可以使用以下命令:

ps -a
ps -a命令

显示所有当前运行的进程

要查看所有当前进程,请执行

ps -ax
ps -ax命令

以BSD格式显示所有进程

如果您希望以BSD格式显示进程,请执行该命令。

ps au 

或者

ps aux
ps aux命令

显示完整格式的进程列表

要查看完整格式的列表,请运行。

ps -ef 

或者

ps -eF
ps -ef命令

根据用户过滤进程

如果您希望列出与特定用户相关联的进程,请使用如下所示的-u标志。

ps -u user

例如

ps -u jamie
ps -u 用户名命令

通过线程筛选进程

如果你想要知道特定进程的线程情况,可以使用-L选项后跟着进程ID,例如。

ps -L 4264
ps -L 进程ID命令

显示以root用户权限运行的进程

有时候,你可能想要查看由根用户运行的所有进程。为了实现这个目标,请执行以下操作。

ps -U root -u root
root用户拥有的进程

显示特定组的进程

如果您希望列出特定组相关的所有进程,则运行

ps -fG group_name

或者

ps -fG groupID

例如

ps -fG root
ps -fG 组名命令

搜索进程的PID

通常情况下,我们可能不知道一个进程的PID。您可以通过运行以下命令来搜索一个进程的PID。

ps -C process_name

例如

ps -C bash
ps -c 进程名命令

按PID列出进程

您可以按照PID显示进程

ps -fp PID

例如

ps -fp 1294
ps -fp 进程ID命令

以树形图显示进程层次结构

通常情况下,大多数进程都是从父进程分叉出来的。了解这种父子关系可以派上用场。下面的命令用于以树形图显示名为bash的进程。

ps -f --forest -C bash
ps -f --forest -C 命令

显示父进程的子进程

例如,如果您希望显示所有属于bash的派生进程,请执行。

ps -o pid,uname,comm -C bash
ps -o pid,uname,comm -C 命令

要显示特定父进程的所有子进程,可以使用–ppid选项:

ps --ppid PID

例如

ps --ppid 1294
ps --ppid 进程ID命令

显示进程的线程

使用ps命令可以查看进程及其线程。下面的命令显示了所有由进程PID所拥有的线程。

ps -p pid_no -L

例如

ps -p 1294 -L 
ps -p 进程ID -L命令

显示选定的列信息

你可以使用 ps 命令来显示你所需的列。例如,

ps -e -o pid,uname,pcpu,pmem,comm
ps -e -o pid,uname,pcpu,pmem,comm命令

重命名列标签

执行以下命令来重命名列标签:

 ps -e -o pid=PID,uname=USERNAME,pcpu=CPU_USAGE,pmem=%MEM,comm=COMMAND
ps重命名列标签命令

显示进程的运行时间

经过的时间是指进程运行了多长时间。

ps -e -o pid,comm,etime
ps -e -o pid,comm,etime命令

使用带有grep的ps命令

例如,可以使用ps命令结合grep命令来搜索特定进程。

ps -ef  | grep systemd
ps和grep命令
bannerAds