Linux ps命令

时间:2020-02-23 14:39:56  来源:igfitidea点击:

ps是进程状态的缩写,是一个命令行实用程序,用于显示或者查看与Linux系统中运行的进程有关的信息。

众所周知,Linux是一个多任务和多处理系统。
因此,多个进程可以并发运行而不会互相影响。

ps命令列出了当前正在运行的进程以及它们的PID和其他属性。
在本教程中,我们将重点介绍ps命令的用法。

它从/proc文件系统中的虚拟文件中检索有关进程的信息

不带参数的ps命令

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

ps

输出包括四列

PID-这是唯一的进程ID

TTY-这是用户登录到的终端的typeof

TIME–这是进程已运行的时间,以分钟和秒为单位

CMD –启动进程的命令

以各种格式查看所有正在运行的进程

要浏览所有正在运行的进程,请执行以下命令

ps -A

或者

ps -e

查看与终端关联的进程

查看与终端运行关联的进程

ps -T

查看与终端不相关的进程

要查看所有与终端和会话负责人关联的进程之外的进程,请执行

ps -a

会话负责人是启动其他进程的进程

显示所有当前正在运行的进程

查看当前所有进程执行

ps -ax

-a标志代表所有进程
-x将显示所有进程,即使那些与当前tty不相关的进程也是如此

以BSD格式显示所有进程

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

ps au

或者

ps aux

执行完整格式列表

查看完整格式的列表运行

ps -ef

或者

ps -eF

根据用户筛选流程

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

ps -u user

例如

ps -u jamie

按线程筛选过程

如果您想了解特定进程的线程,请使用-L标志和PID

例如

ps -L 4264

显示以root身份运行的每个进程

有时,您可能想要显示由root用户运行的所有进程。
要实现此运行

ps -U root -u root

显示组流程

如果您希望列出某个组运行关联的所有过程

ps -fG group_name

或者

ps -fG groupID

例如

ps -fG root

搜索进程 PID

通常,通常不知道进程的PID。
您可以通过运行以下命令搜索进程的PID

ps -C process_name

例如

ps -C bash

通过PID列出进程

您可以按其PID显示进程,如下所示

ps -fp PID

例如

ps -fp 1294

在树形图中显示进程层次结构

通常,大多数进程是从父进程派生的。
了解这种亲子关系可以派上用场。
下面的命令搜索名称为apache2的进程

ps -f --forest -C bash

显示父进程的子进程

例如,如果您希望显示属于apache的所有分叉进程,请执行

ps -o pid,uname,comm -C bash

第一个进程由root拥有,是主要的apache2进程,其余进程已从该主要进程派生

要使用主apache2进程的pid显示所有子apache2进程,请执行

ps --ppid PID no.

例如

ps --ppid 1294

显示进程线程

ps命令可用于查看线程以及进程。

下面的命令使用PID pid_no显示该进程拥有的所有线程

ps -p pid_no -L

例如

ps -p 1294 -L

显示选定的列列表

您可以使用ps命令仅显示所需的列。

例如 ,

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

上面的命令将仅显示PID,用户名,CPU,内存和命令列

重命名列标签

要重命名列标签,请执行以下命令

ps -e -o pid=PID,uname=USERNAME,pcpu=CPU_USAGE,pmem=%MEM,comm=COMMAND

显示进程的运行时间

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

ps -e -o pid,comm,etime

-o选项启用该列的经过时间

在grep中使用ps命令

ps命令可与grep命令一起使用以搜索特定进程

例如

ps -ef  | grep systemd