Linux中的Pgrep命令

本文介绍Linux的基础知识 pgrep 命令。

pgrep 是一个命令行实用程序,可让您根据给定的条件查找正在运行的程序的进程ID。 它可以是完整或部分的进程名称,运行该进程的用户或其他属性。

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脚本时,这很有用。

如果要将信号发送到匹配的进程,请使用 pkill 。 该命令是对 pkill,并使用相同的选项和模式匹配。

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 在您的终端中。

如果您有任何疑问或反馈,请随时发表评论。

pgrep终端

Sidebar