介绍
ps命令会生成计算机上当前正在运行的进程的列表。
本指南将向您展示ps命令的更常见用法,以便您可以充分利用它。
这些附加命令有助于筛选和分页来自ps的输出,这通常会很长。
如何使用ps命令
ps命令自己显示用户在终端窗口中运行它的运行进程。
要调用ps,只需输入以下内容:
PS
输出将显示包含以下信息的数据行:
- PID
- TTY
- 时间
- 命令
PID是标识正在运行的进程的进程ID。 TTY是终端类型。
它本身的ps命令非常有限。 您可能想要查看所有正在运行的进程。
要查看所有正在运行的进程,请使用以下任一命令:
ps -A
ps -e
要显示除会话领导者以外的所有进程,请运行以下命令:
ps -d
那么会议领导者是什么? 当一个进程启动其他进程时,它是所有其他进程的会话负责人。 因此,想象过程A启动过程B和过程C.过程B启动过程D并且过程C启动过程E.当您列出除会话领导者之外的所有过程时,您将看到B,C,D和E但不是A.
您可以否定通过使用-N开关选择的任何选项。 例如,如果您只想看到会话领导者运行以下命令:
ps -d -N
显然-N与-e或-A开关一起使用时不是很明智,因为它什么也不显示。
如果您只想查看与此终端关联的进程,请运行以下命令:
太平洋标准时间
如果您想使用以下命令查看所有正在运行的进程:
ps r
使用ps命令选择特定进程
您可以使用ps命令返回特定的进程,并且有多种方法可以更改选择条件。
例如,如果你知道进程ID,你可以简单地使用下面的命令:
ps -p
您可以通过指定多个进程ID来选择多个进程,如下所示:
ps -p“1234 9778”
您也可以使用逗号分隔列表来指定它们:
ps -p 1234,9778
有可能您不知道进程ID,并且通过命令进行搜索更容易。 为此,请使用以下命令:
ps -C
例如,要查看Chrome是否在运行,可以使用以下命令:
ps -C铬
您可能会惊讶地发现,这会为每个打开的选项卡返回一个进程。
其他筛选结果的方法是按组。 您可以使用以下语法按组名称进行搜索:
ps -G <组名>
ps --Group <组名>
例如,要找出帐户组运行的所有进程,请输入以下内容:
ps -G“账户”
ps - 组“账户”
您还可以通过使用小写字母g来按组ID进行搜索而不是组名,如下所示:
ps -g
ps --group
如果您想通过会话ID列表进行搜索,请使用以下命令:
ps -s
或者使用以下内容按终端类型进行搜索。
ps -t
如果您想查找由特定用户运行的所有进程,请尝试以下命令:
ps U <用户列表>
例如,要查找由gary运行的所有进程,请运行以下命令:
ps U“gary”
请注意,这显示了凭据用于运行该命令的人员。 例如,如果我以gary身份登录并运行上述命令,它将显示我运行的所有命令。
如果我以Tom的身份登录并使用sudo来运行命令,那么上面的命令将显示Tom的命令由gary运行而不是tom运行。
要将列表限制为真正由gary运行的进程,请使用以下命令:
ps -U“加里”
格式化ps命令输出
默认情况下,当您使用ps命令时,您会得到相同的4列:
- PID
- TTY
- 时间
- 命令
您可以通过运行以下命令获取完整列表:
ps -ef
如您所知,-e显示所有进程,f或-f显示全部细节。
返回的列如下所示:
- 用户名
- PID
- PPID
- C
- STIME
- TTY
- 时间
- 命令
用户标识是运行该命令的人员。 PID是命令命令的进程ID。 PPID是启动命令的父进程。
C列显示了一个进程所拥有的孩子的数量。 STime是该过程的开始时间。 TTY是终端,时间是运行所耗费的时间,命令是运行的命令。
通过使用以下命令可以获得更多的列:
ps -eF
这将返回以下列:
- UID
- PID
- PPID
- C
- SZ
- RSS
- PSR
- STIME
- TTY
- 时间
- 命令
额外的列是SZ,RSS和PSR。 SZ是进程的大小,RSS是实际内存大小,PSR是指定给该命令的处理器。
您可以使用以下开关指定用户定义的格式:
ps -e --format
可用的格式如下所示:
- %cpu - cpu利用率
- %mem - 内存百分比利用率
- args - 带有所有参数的命令
- c - 处理器利用率
- cmd - 命令
- comm - 仅限命令名称
- cp - CPU使用率
- cputime - CPU时间
- egid - 有效的组ID
- egroup - 有效组
- etime - 经过的时间
- euid - 有效的用户ID
- euser - 有效的用户
- gid - 组ID
- 组 - 组名
- pgid - 进程组ID
- pgrp - 进程组
- ppid - 父进程ID
- 开始 - 流程开始的时间
- sz - 物理页面的大小
- thcount - 进程拥有的线程
- 时间 - 累计时间
- uid - 用户标识
- uname - 用户名
还有更多的选择,但这些是最常用的选项。
要使用这些格式,请输入以下内容:
ps -e --format =“uid uname cmd time”
你可以混合和匹配你想要的项目。
排序输出
要对输出进行排序,请使用以下表示法:
ps -ef --sort
排序选项的选择如下:
- cmd - 可执行文件的名称
- pcpu - CPU利用率
- 旗帜 - 标志
- pgrp - 进程组ID
- cutime - 累计用户时间
- cstime - 累计系统时间
- utime - 用户时间
- pid - 进程ID
- ppid - 父进程ID
- 大小 - 大小
- uid - 用户标识
- 用户 - 用户名
再次有更多的选项可用,但这些是最常见的选项。
示例排序命令如下所示:
ps -ef --sort用户,pid
使用ps使用grep,越来越少的命令
正如在开始时提到的,通常使用ps和grep,less和more命令。
越来越少的命令将帮助您一次筛选一页结果。 要使用这些命令,只需将输出从grep输入到它们中,如下所示:
ps -ef | 更多
ps -ef | 减
grep命令可帮助您过滤ps命令的结果。
例如:
ps -ef | grep chrome
概要
ps命令通常用于在Linux中列出进程。 您也可以使用top命令以不同的方式显示正在运行的进程。
本文介绍了常见的开关,但有更多可用和更多的格式和排序选项。
要了解更多信息,请阅读ps命令的Linux手册页。