在linux系统中,进程是程序运行后的实例,系统运行过程中会产生大量进程,掌握查询进程的命令是系统管理、问题排查的基础能力,不同的查询命令适用于不同的使用场景。

常用进程查询命令介绍
1. ps命令
ps是最基础的进程查看命令,用于静态展示当前系统的进程状态,默认只显示当前终端关联的进程,配合参数可以查看所有进程。
常用参数组合:
- -e:显示所有进程
- -f:显示完整格式的进程信息
- -u 用户名:显示指定用户的所有进程
- -p 进程ID:显示指定进程ID的进程信息
查看所有进程的完整信息示例:
# 查看系统中所有进程的完整信息 ps -ef # 输出示例(部分) # UID PID PPID C STIME TTY TIME CMD # root 1 0 0 10:00 ? 00:00:01 /usr/lib/systemd/systemd # root 123 1 0 10:00 ? 00:00:00 /usr/sbin/sshd -D
如果只需要查看进程的部分字段,可以使用ps -eo自定义输出格式,比如只查看进程ID、用户、命令:
# 自定义输出进程ID、用户、命令字段 ps -eo pid,user,cmd
2. top命令
top是动态进程查看命令,会实时刷新显示进程的资源占用情况,默认每3秒刷新一次,适合查看进程的资源使用趋势。
进入top界面后,常用交互操作:
- 按q退出top界面
- 按P按CPU使用率排序进程
- 按M按内存使用率排序进程
- 按k输入进程ID可以终止指定进程
直接执行top命令即可进入动态查看界面:
# 启动top动态查看进程 top
3. pgrep命令
pgrep是专门用于根据进程名称查询进程ID的命令,输出结果只有进程ID,适合在脚本中调用,或者快速获取指定进程的ID。
常用参数:
- -u 用户名:查询指定用户的进程ID
- -l:同时显示进程ID和进程名称
- -f:匹配进程的完整命令行,而不仅仅是进程名
查询sshd进程的相关信息示例:
# 查询sshd进程的ID和名称 pgrep -l sshd # 输出示例 # 123 sshd # 456 sshd
4. pstree命令
pstree以树形结构展示进程之间的父子关系,能够清晰看到进程的衍生关系,适合梳理进程的启动链路。
常用参数:
- -p:显示进程的ID
- -u:显示进程的用户
查看所有进程的树形结构示例:
# 树形展示所有进程及对应的ID pstree -p
查询到进程后的基础管理
查询到进程信息后,如果需要终止异常进程,可以使用kill命令,kill命令通过向进程发送信号来操作进程,默认发送终止信号。
常用用法:
- kill 进程ID:向指定进程发送终止信号,让进程正常退出
- kill -9 进程ID:强制终止进程,适用于进程无响应的情况
- killall 进程名:终止所有同名的进程
终止sshd进程示例:
# 查询sshd进程的ID pgrep sshd # 假设查询到ID为123,终止该进程 kill 123 # 如果进程无响应,强制终止 kill -9 123
不同命令的适用场景总结
| 命令 | 适用场景 |
|---|---|
| ps | 静态查看某一时刻的进程快照,适合获取固定时间的进程信息 |
| top | 动态监控进程资源占用,适合排查进程资源异常问题 |
| pgrep | 快速根据进程名获取进程ID,适合脚本调用或快速定位进程 |
| pstree | 查看进程父子关系,适合梳理进程启动链路 |
在实际使用中,可以根据需求选择合适的命令,也可以组合使用多个命令完成复杂的进程查询和管理操作。