Linux命令:pgrep
pgrep 是根据进程名查找进程 PID 的专用命令,比 ps aux | grep xxx 更简洁、精准,专门用来快速获取进程ID,是运维最常用命令之一。
资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a
一、核心作用
- 按进程名称搜索运行中的进程
- 只输出 PID(干净无冗余信息)
- 支持精确匹配、模糊匹配、按用户查找
二、基本语法
bash
pgrep [选项] 进程名
三、最常用选项(必记)
| 选项 | 功能 |
|---|---|
| 无选项 | 只输出匹配进程的 PID(最简) |
-l |
显示 PID + 进程名 |
-a |
显示 PID + 完整命令行 |
-x |
精确匹配(完全等于进程名才显示) |
-u 用户名 |
只查指定用户的进程 |
-c |
只输出匹配到的进程数量 |
-f |
匹配完整命令行(而非仅进程名) |
四、实用示例
1. 只查 PID(最常用)
bash
pgrep nginx
pgrep sshd
输出:
1234
5678
2. 显示 PID + 进程名
bash
pgrep -l nginx
输出:
1234 nginx
5678 nginx
3. 显示 PID + 完整命令(排查最实用)
bash
pgrep -a java
4. 精确匹配(避免误杀/误查)
比如只想查 ssh,不想匹配 sshd:
bash
pgrep -x ssh
5. 查指定用户的进程
bash
pgrep -u root nginx
6. 统计进程数量
bash
pgrep -c firefox
7. 匹配完整命令行(适用带参数进程)
bash
pgrep -f "python app.py"
五、高级组合用法(超级实用)
1. 直接杀死匹配到的进程(搭配 pkill)
pkill 和 pgrep 语法完全一样,只是把查找变成杀死:
bash
pkill nginx # 等价于 pgrep nginx | xargs kill
2. 查看进程树(pgrep + pstree 组合)
bash
pstree -p $(pgrep nginx)
六、与 ps grep 的对比
pgrep :pgrep nginx → 只输出PID,精准简洁
ps grep :ps aux | grep nginx → 输出一堆信息,还会包含grep自身
七、总结
- 日常快速查PID :
pgrep 进程名 - 看进程名+PID :
pgrep -l 进程名 - 精确匹配 :
pgrep -x 进程名 - 直接杀进程 :
pkill 进程名