在Linux系统中,进程是程序执行的基本单位,查看进程信息是系统管理和故障排查的核心操作,Linux提供了多种命令工具,帮助用户从不同维度获取进程详情,以下将详细介绍常用查看进程的方法及其实际应用。
基础进程查看命令:ps
ps
(Process Status)是最常用的静态进程查看命令,用于快速获取当前进程的快照信息,其核心优势在于灵活的参数组合,可按需筛选进程。
常用参数及功能
参数 | 说明 | 示例 |
---|---|---|
a |
显示所有终端下的进程(包括其他用户) | ps a |
u |
以用户为中心显示,包含CPU、内存占用率 | ps u |
x |
显示无终端控制的进程(如后台服务) | ps x |
-e |
显示所有进程(等同于ax ) |
ps -e |
-f |
以完整格式显示,包含进程树层级关系 | ps -f |
-l |
以长格式显示,详细列出进程状态 | ps -l |
实际应用
- 查看当前用户的所有进程:
ps u
,输出包含PID(进程ID)、%CPU(CPU占用率)、%MEM(内存占用率)、COMMAND(启动命令)等关键字段。 - 查看系统所有进程的层级关系:
ps -ef
,其中PPID
(父进程ID)可帮助追溯进程启动链,例如systemd
(PID=1)是所有用户进程的祖先。
动态实时监控:top与htop
top
和htop
是动态查看进程的工具,可实时刷新进程状态,适合监控系统资源占用情况。
top命令
top
默认按CPU占用率降序排列,每3秒更新一次(可通过-d
调整间隔,如top -d 5
设置为5秒),其交互式操作支持:
- 按
M
:按内存占用率排序; - 按
P
:按CPU占用率排序(默认); - 按
k
:输入PID终止进程; - 按
q
:退出。
输出字段解析:PID
(进程ID)、USER
(进程所有者)、%CPU
(CPU占用百分比)、%MEM
(内存占用百分比)、TIME+
(CPU累计时间)、COMMAND
(启动命令)。
htop命令(增强版)
htop
是top
的升级版,支持颜色区分、鼠标操作、进程树展开等功能,使用更直观,安装后直接运行htop
,可通过快捷键:
F5
:展开/折叠进程树;F6
:选择排序字段(CPU、内存、IO等);F9
:强制终止进程。
按条件筛选进程:pgrep与pidof
当需要根据进程名、用户等信息快速定位PID时,pgrep
和pidof
更高效。
pgrep
通过进程属性匹配PID,常用参数:
-l
:输出进程名而非常规PID;-u
:指定用户(如pgrep -u nginx
);-f
:匹配完整命令行(如pgrep -f "nginx -c /etc/nginx/nginx.conf"
)。
示例:查找nginx
用户的nginx
进程PID:pgrep -u nginx -l
。
pidof
仅通过进程名查找PID,适合简单场景,如pidof nginx
返回所有nginx
进程的PID(多个PID以空格分隔)。
进程树查看:pstree
pstree
以树形结构展示进程间的父子关系,适合分析服务依赖链,常用参数:
-p
:显示进程PID;-u
:显示进程所有者;-a
:显示完整启动命令。
示例:pstree -p
以树形结构展示所有进程及其PID,可清晰看到systemd
→nginx
→nginx worker
的启动层级。
文件与进程关联:lsof
lsof
(List Open Files)可查看进程打开的文件(包括网络端口),适合排查端口占用或文件锁定问题,常用参数:
-i
:指定协议或端口(如lsof -i :80
查看80端口占用进程);-p
:指定PID(如lsof -p 1234
查看PID=1234的进程打开文件);-u
:指定用户(如lsof -u nginx
查看nginx
用户打开的文件)。
示例:lsof -i :8080
若返回nginx 1234 root 6u IPv4 12345 0t0 TCP *:8080 (LISTEN)
,则表示nginx
(PID=1234)以root用户占用8080端口。
查看Linux进程需根据场景选择工具:静态快照用ps
,实时监控用top
/htop
,快速筛选用pgrep
/pidof
,分析进程关系用pstree
,排查文件/端口问题用lsof
,掌握这些命令,可高效完成系统管理与故障排查。
FAQs
Q1:如何查看某个端口的占用进程?
A:使用lsof
命令结合端口参数,例如查看8080端口占用情况:lsof -i :8080
,输出结果会显示占用该端口的进程名、PID、用户及协议信息。
Q2:如何实时监控特定CPU核心的进程使用情况?
A:通过top
的-c
参数绑定CPU核心,例如监控1号核心(CPU编号从0开始)的进程:top -c -p 1
,或使用htop
后按F6
选择CPU核心列进行排序筛选。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/29863.html