Skip to main content

Linux pgrep 命令教程

pgrep 是 Linux 和 Unix 系统中的一个实用命令,用于根据名称或其他属性搜索匹配的进程并返回其进程 ID(PID)。与 psgrep 的组合相比,pgrep 更加简洁且直观。

基础语法

pgrep [选项] 模式
  • 模式: 需要匹配的进程名称或正则表达式。
  • 选项: 修改 pgrep 的行为以满足特定需求。

常用选项

选项描述
-l显示匹配进程的名称和 PID
-a显示匹配进程的完整命令行
-u 用户名只匹配特定用户的进程
-f匹配完整命令行,而不仅仅是进程名称
-v反向匹配,返回不符合模式的进程
-c显示匹配的进程数
-n仅返回最新的匹配进程
-o仅返回最早的匹配进程

示例

示例 1: 查找特定进程

pgrep ssh

输出该系统中与 ssh 名称匹配的所有进程的 PID,例如:

1234
5678

示例 2: 显示匹配进程的名称和 PID

pgrep -l ssh

输出:

1234 ssh
5678 ssh

示例 3: 匹配特定用户的进程

pgrep -u john python

只显示用户名为 john 的用户运行的 Python 相关进程。

示例 4: 匹配完整命令行

pgrep -f "/usr/bin/python3 script.py"

匹配包含完整路径或参数的进程。

示例 5: 显示匹配的进程数量

pgrep -c ssh

输出与 ssh 匹配的进程数量,例如:

2

示例 6: 获取最新匹配进程的 PID

pgrep -n ssh

只返回最新启动的 ssh 进程的 PID。

pkill 配合使用

pgrep 的姐妹命令是 pkill,用于根据名称或其他属性终止进程。例如:

pkill ssh

该命令会终止所有与 ssh 匹配的进程。

注意事项

  1. 如果 pgrep 没有找到匹配的进程,它不会输出任何内容,但退出状态码为 1。
  2. 使用 -f 时需要小心,可能会匹配更多的进程。
  3. 管理权限(如 sudo)可能会影响命令的结果,尤其是涉及其他用户的进程时。

总结

pgrep 是一个功能强大的工具,可用于快速、有效地查找运行的进程,特别是在需要结合名称或正则表达式时。通过熟练掌握 pgrep 和其选项,可以显著提高系统管理的效率。