Linux中的 pgrep 命令
pgrep
是一个命令行实用程序,使您可以根据给定条件查找正在运行的程序的进程 ID,完整或部分的进程名称,运行该进程的用户或其他属性。
本文介绍了 Linux 中的 pgrep
命令的基本用法。
pgrep
命令是 procps
( 或 procps-ng
) 软件包的一部分,该软件包已预装在几乎所有 Linux 发行版中。
如何使用 pgrep
命令
该 pgrep
命令的语法如下:
pgrep [OPTIONS] <PATTERN>
<PATTERN>
使用扩展的正则表达式来指定匹配条件。
不带任何选项调用时, pgrep
输出与指定名称匹配的所有正在运行的程序的 PID 。例如,要查找 SSH 服务器的 PID ,应运行:
pgrep ssh
如果存在名称与 “ssh” 匹配的且正在运行的进程,则其 PID 将显示在屏幕上。如果未找到匹配项,则输出为空。
1039
2257
6850
31279
当至少一个正在运行的进程与请求的名称匹配时,该命令返回 0
。否则,退出代码为 1
。在 shell 脚本中使用时,这很有用。
pgrep
在每行上打印每个匹配的进程 ID 。而使用 -d
选项允许您指定其他定界符。例如,如果要使用空格作为定界符,请输入:
pgrep ssh -d' '
输出
1039 2257 6850 31279
选项 -l
告诉 pgrep
需要显示进程名称和 ID :
pgrep ssh -l
pgrep
使用正则表达式执行搜索操作,并将列出名称中包含 “ssh” 的所有进程:
1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent
如果只想匹配名称与搜索模式完全相同的进程,则可以使用:
pgrep '^ssh$' -l
6850 ssh
尖号字符 (^
) 匹配字符串的开头,美元 $
则匹配字符串的结尾。
默认情况下, pgrep
仅与进程名称匹配。使用 -f
选项时,命令将与完整的参数列表匹配。
pgrep -f ssh
使用 -u
选项告诉 pgrep
显示给定的用户正在运行的进程:
pgrep -u root
要指定多个用户,请用逗号分隔其名称:
pgrep -u root,mark
您还可以组合选项和搜索模式。例如,要打印所有在用户 “mark” 下运行并且名称中包含 “gnome” 的进程及其名称,您可以输入:
pgrep -l -u mark gnome
要仅显示最近(最旧)或最近(最新)启动的进程,请使用 -n
(最新)或 -o
(最旧)选项。
例如,要查找由用户 “mark” 最近启动的过程,请输入:
pgrep -lnu mark
从上面的示例中可以看到,您还可以组合选项,而选项之间不能有空格,并且可以用一个短划线隔开。
要反转匹配,即仅显示不符合给定条件的过程,请使用 -v
选项。以下命令将打印所有不是由 “mark” 用户运行的进程:
pgrep -v -u mark
-c
选项指示 pgrep
仅打印匹配进程的数量。例如,要查找以 “mark” 用户身份运行的进程数,请输入:
pgrep -c -u mark
结论
pgrep
命令用于根据不同的标准找出正在运行的程序的 PID 。
有关 pgrep
命令的更多信息,请访问 pgrep 手册页或 man pgrep
在终端中键入。