来自:Linux迷
本文介绍Linuxpgrep命令的基础知识。pgrep是一个命令行实用程序,可让您按照给定的条件查找正在运行的程序的进程ID。它可以是完整或部份的进程名称,运行该进程的用户或其他属性。
pgrep命令是procps(或procps-ng)软件包的一部份,该软件包已预装在几乎所有Linux发行版中。
怎样使用pgrep命令
pgrep命令的句型如下:
pgrep[选项]
使用扩充的正则表达式指定匹配的。
当不带任何选项调用时linux操作系统好吗,pgrep将显示与给定名称匹配的所有正在运行程序的PID。比如,要查找SSH服务器的PID,应运行:
[linuxmi@linux:~/]$pgrepssh
假如存在名称与“ssh”匹配的正在运行的进程,则其PID将显示在屏幕上。若果未找到匹配项linux的相关命令,则输出为空。
输出
668
1555
当起码一个正在运行的进程与恳求的名称匹配时linux的相关命令,该命令返回0。否则,退出代码为1。在shell脚本中使用时,这很有用。
pgrep在换行符上复印每位匹配的进程ID。-d选项容许您指定其他定界符。诸如,假如要使用空格作为定界符,请输入:
[linuxmi@linux:~/]$pgrepssh-d''
输出
6681555
-l选项告诉pgrep显示进程名称及其ID:
[linuxmi@linux:~/]$pgrepsshd-l
pgrep使用正则表达式执行搜索操作,并将列举名称中包含“ssh”的所有进程:
输出
668sshd
1555ssh-agent
假如只想匹配名称与搜索模式完全相同的进程,则可以使用:
[linuxmi@linux:~/]$pgrep'^sshd$'-l
668sshd
尖号(^)字符在字符串的开头匹配,而港元$在结尾。
默认情况下,pgrep只匹配进程名称。使用-f选项时,该命令将与完整的参数列表匹配。
[linuxmi@linux:~/]$pgrep-fssh
668
1555
使用-u选项告诉pgrep显示给定用户正在运行的进程:
[linuxmi@linux:~/]$pgrep-uroot
要指定多个用户,请用冒号分隔其名称:
[linuxmi@linux:~/]$pgrep-uroot,linuxmi
您还可以组合选项和搜索模式。比如,要复印所有在用户“linuxmi”下运行而且名称中包含“gnome”的进程及其名称,您可以输入:
[linuxmi@linux:~/]$pgrep-l-ulinuxmignome
1402gnome-keyring-d
1417gnome-session-b
1583gnome-shell
1638gnome-shell-cal
1986gnome-software
8392gnome-terminal-
要仅显示近来(最旧)或近来(最新)启动的进程,请使用-n(代表最新)或-o(代表最旧)选项。
比如,要查找由用户“linuxmi”启动的最新过程,请输入:
[linuxmi@linux:~/]$pgrep-lnulinuxmi
8793bash
从前面的示例中可以见到qq for linux,您还可以组合选项,而选项之间不能有空格,而且可以用一个短划线隔开。
要反转匹配,即仅显示不符合给定条件的进程,请使用-v选项。以下命令将复印用户“linuxmi”也未运行的所有进程:
[linuxmi@linux:~/]$pgrep-v-ulinuxmi
-c选项告诉pgrep只复印匹配进程的计数。比如,要查找以“linuxmi”用户身分运行的进程,请输入:
[linuxmi@linux:~/]$pgrep-c-ulinuxmi
78
总结
pgrep命令用于按照不同的标准找出正在运行的程序的PID。
有关pgrep命令的更多信息,请访问pgrep指南页或在终端中输入manpgrep。
倘若您有任何疑惑或反馈,请随时发表留言告诉我们。
...END...