与用于从文件和输出中查找字符串的 grep 命令一样,pgrep 命令对进程执行相同的操作。
简而言之,pgrep 命令将为您提供正在运行的进程的 PID。
因此,在本指南中,我将向您介绍如何使用 pgrep 命令的各种示例。
在 Linux 上使用 pgrep 命令
要使用 pgrep 命令,您必须遵循给定的命令语法:
pgrep [options] pattern
在这里, pattern
是您指定输出参数的地方。
现在,让我们看一些例子。
使用 pgrep 命令查找特定进程的 PID
要查找特定进程的 PID,您所要做的就是遵循给定的语法:
pgrep -u username process_name
假设我想为用户找到 ssh 的进程 ID sagar
所以我将使用以下命令:
pgrep -u sagar ssh
获取用户拥有的进程数
如果您想知道特定用户正在使用的进程数,请在用户名后附加 -c
和 -u
pgrep 命令的标志,如下所示:
pgrep -c -u username
为了 example,在这里,我查找了名为 sagar
:
pgrep -c -u sagar
如果你想 结合多个用户的进程数, 您可以按列分隔它们:
pgrep -c -u user-1,user-2
为了 example,这里,我结合了两个用户sagar和root的进程:

以不区分大小写的方式搜索进程
默认情况下,pgrep 实用程序以区分大小写的模式运行,因此您可能无法找到所需的进程。
但是您可以使用以下命令切换到不区分大小写的模式 -i
旗帜:
pgrep -i process_name
为了 example,在这里,我寻找 firefox 但使用了所有大写字母并返回了正确的结果:
pgrep -i FIREFOX

列出正在进行的进程及其名称和 PID
如果您想列出每个正在进行的进程及其名称和 PID,可以使用 -l
旗帜:
pgrep -u username -l
为了 example,这里我列出了与名为的用户相关的每个正在进行的进程 sagar
:
pgrep -u sagar -l

查找用于启动正在进行的进程的命令
pgrep 实用程序还允许您查看用于启动正在进行的进程的命令,方法是使用 -a
旗帜:
pgrep -u username -a
因此,假设我正在寻找为用户 root 执行正在进行的进程的命令,那么以下命令应该可以完成我的工作:
pgrep -u root -a

查找最近启动的进程
如果你想找到最近正在进行的进程,可以很容易地使用 -n
旗帜:
pgrep -n
但我建议配对 -n
和 -l
有更多有用的输出,因为它也会添加使用进程名称:
pgrep -n -u sagar -l

在 Linux 上查找最旧的正在进行的进程
以防万一,如果你想在你的系统上找到最早的正在进行的进程,pgrep 实用程序可以在执行时执行 -o
旗帜:
pgrep -o
为了 example,如果我想为我的用户 (sagar) 找到最早的正在进行的进程,我将使用以下命令:
pgrep -u sagar -o -l

但是如何杀死不必要的进程呢?
一旦找到不需要的进程集,就可以使用各种信号杀死它们。
不知道怎么办? 好吧,我们有一份关于如何在 Linux 中从终端终止进程的详细指南:
如果您有兴趣了解有关终止进程的信号的更多信息,我们会支持您:
我希望您会发现给定的指南对您有所帮助,如果您有任何疑问或建议,请随时在评论中告诉我。