Pgrep和Pkill命令教程及Linux示例

工作过程一般 ps 使用命令。Ps命令提供有关在系统上运行的进程的详细信息。我们通常使用 grep 命令 ps 过滤或匹配。有一种更实用的工作方法。Pgrep和pkill可用于管理、列出和终止进程。

null

语法

pgrep [options] pattern pkill [options] pattern

救命

快速帮助关于 pkill 命令可以通过 -h 选项如下。

$ pkill -h
Help
救命

列出进程ID

最简单最常用的用法 pgrep 只是在进程列表中提供一些搜索条件。在本例中,我们将搜索 ssh 在进程列表中。

$ pgrep ssh
List Process ID
列出进程ID

我们可以从截图中看到,包含ssh的所有进程ID都被逐行列出。

打印进程计数

pgrep的另一个用法是计算相关进程。我们可以用 wc 命令来计算行数,但pgrep all ready提供了以下功能 -c 选项。这不会列出进程ID,只列出进程ID的计数。

$ pgrep -c ssh
Print Process Count
打印进程计数

设置进程列表的分隔符

如果有多个进程,默认情况下会逐行列出此进程ID。有一个选项可以通过指定的分隔符对PID进行分隔来列出PID。我们可以用 -d 选项。在这个例子中,我们要列出PID的 - 分隔符。

$ pgrep -d "-" ssh
Set Delimiter For Process List
设置进程列表的分隔符

匹配用户ID

另一个有用的特性是根据用户ID匹配和过滤PID。因为我们知道每个进程都有相关的用户ID,用于安全和权限问题。我们可以使用 -U --uid 在这个例子中,我们需要ot过滤器 ssh 相关用户ID为的进程的术语 1000

$ pgrep -U 1000 ssh
Match For User ID
匹配用户ID

仅匹配组名

我们还可以指定组名来过滤进程。如我们所知,出于安全和权限的考虑,进程是用相关的用户名和组名创建的。我们将使用 -G 参数。在本例中,我们要列出组名 ismail 对于 ssh 进程名称中的术语。

$ pgrep -G ismail ssh
Match For Only Group Name
仅匹配组名

仅匹配组ID

在前面的示例中,我们使用了组过滤器的名称。我们还可以使用 -g 选项。在本例中,我们将筛选组ID 1000 .

$ pgrep -g 1000 ssh

显示进程名称

默认情况下,pgrep命令将只列出PID。但有时我们可能也需要显示进程名称。为此,我们将使用 -l 选项如下。

$ pgrep -l ssh
Show Process Name
显示进程名称

显示完整命令行

在前面的示例中,我们只列出了命令。因此,将没有关于命令的参数或选项。我们可以列出命令的所有信息 -a 选项。

$ pgrep -a ssh
Show Full Command Line
显示完整命令行

反向匹配

到目前为止,我们只列出了匹配的流程和相关信息。我们可以反转输出。这意味着输出将是不匹配的进程。我们将使用 -v 选项。但是会有很多输出线。

[email protected]:~$ pgrep -v ssh
Inverse Match
反向匹配

完全匹配

默认情况下,术语搜索是在松弛模式下完成的。因此,如果只有部分命令匹配,则显示命令。我们可以更严格地改变匹配行为。精确匹配时,仅显示完全匹配的命令。我们将使用 -x .

$ pgrep -x sshd
Exact Match
完全匹配

显示最新的

如果有多个进程,我们可以根据它们的年龄筛选这些进程。我们只能用 -n 参数。

$ pgrep -n ssh
Show Newest
显示最新的

显示最早的

在前面的示例中,我们列出了最新的流程。我们也可以只显示最古老的进程 -o 选项

$ pgrep -o ssh
Show Oldest
显示最早的

相关文章: Linux Grep命令简介及实例

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享