Linux pgrep
命令教程
pgrep
是 Linux 和 Unix 系统中的一个实用命令,用于根据名称或其他属性搜索匹配的进程并返回其进程 ID(PID)。与 ps
和 grep
的组合相比,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
匹配的进程。
注意事项
- 如果
pgrep
没有找到匹配的进程,它不会输出任何 内容,但退出状态码为 1。 - 使用
-f
时需要小心,可能会匹配更多的进程。 - 管理权限(如
sudo
)可能会影响命令的结果,尤其是涉及其他用户的进程时。
总结
pgrep
是一个功能强大的工具,可用于快速、有效地查找运行的进程,特别是在需要结合名称或正则表达式时。通过熟练掌握 pgrep
和其选项,可以显著提高系统管理的效率。