本文涵盖了 Linux 的基础知识pgrep
命令。
pgrep
是一个命令行实用程序,允许您根据给定条件查找正在运行的程序的进程 ID。它可以是完整或部分进程名称、运行进程的用户或其他属性。
The pgrep
命令是的一部分procps
(or procps-ng
) 软件包,几乎所有 Linux 发行版都预安装了该软件包。
如何使用pgrep
命令#
语法为pgrep
命令如下:
pgrep [OPTIONS] <PATTERN>
配套的<PATTERN>
使用扩展正则表达式指定。
当没有任何选项调用时,pgrep
显示与给定名称匹配的所有正在运行的程序的 PID。例如,要查找 SSH 服务器的 PID,您可以运行:
pgrep ssh
如果有名称与“ssh”匹配的正在运行的进程,它们的PID将显示在屏幕上。如果未找到匹配项,则输出为空。
1039
2257
6850
31279
命令返回0
当至少一个正在运行的进程与请求的名称匹配时。否则,退出代码
is 1
。这在编写 shell 脚本时很有用。
如果您想向匹配的进程发送信号,请使用pkill。该命令是一个包装器pkill
,并使用相同的选项和模式匹配。
pgrep
在换行符上打印每个匹配的进程 ID。这-d
选项允许您指定不同的分隔符。例如,如果您想使用空格作为分隔符,请输入:
pgrep ssh -d' '
1039 2257 6850 31279
The -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
Use the -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
The -c
选项告诉pgrep
仅打印匹配进程的计数。例如,要查找以用户“mark”运行的进程,请输入:
pgrep -c -u mark
结论#
The pgrep
命令用于根据不同的标准找出正在运行的程序的PID。
欲了解更多信息pgrep
命令,访问pgrep 人页面或类型man pgrep
在您的终端中。
如果您有任何问题或反馈,请随时发表评论。