必须熟练使用ps与top命令实时监控Linux进程:ps提供静态快照,支持过滤、排序、树形及线程查看;top实现动态刷新与交互式管理。

如果您需要实时掌握Linux系统中正在运行的进程状态,包括资源占用、父子关系与运行时长等关键信息,则必须熟练使用ps与top这两个核心命令。以下是针对不同监控场景的具体操作方法:
一、ps命令基础快照式进程查看
ps命令通过读取/proc虚拟文件系统获取某一时刻的进程静态快照,适用于精确分析当前进程分布、属主、状态及启动命令,无需特殊权限即可执行。
1、输入ps不带任何参数,仅显示当前终端下属于当前用户的进程简略信息,包含PID、TTY、TIME和CMD字段。
2、执行ps aux,列出系统中所有用户的所有进程详情,输出含USER、%CPU、%MEM、VSZ、RSS、STAT、START和COMMAND等关键列。
3、运行ps -ef,以完整格式显示全部进程,包括UID、PID、PPID、STIME、TTY、TIME和CMD,特别适合追踪进程父子关系。
二、按条件精准过滤目标进程
当需快速定位特定服务或异常进程时,可结合ps与文本处理工具进行高效筛选,避免人工扫描大量输出。
1、查找Nginx服务进程:执行ps aux | grep nginx,注意为避免匹配到grep自身,可改用ps aux | grep '[n]ginx'。
2、仅查看root用户启动的进程:运行ps -u root,输出限定为UID为root的全部活动进程。
3、列出所有无控制终端的守护进程:输入ps -ax,其中-a显示所有关联终端的进程,-x补充显示无终端关联的后台进程。
三、资源占用排序与Top5定位
通过排序功能可迅速识别高负载进程,为性能调优或异常终止提供依据,所有排序均基于ps aux的原始数据流。
1、查看CPU占用最高的前5个进程:执行ps aux --sort=-%cpu | head -n 6(首行为表头,故取6行)。
2、查看内存占用最高的前5个进程:运行ps aux --sort=-%mem | head -n 6。
3、按运行时长倒序排列:使用ps aux --sort=-time,time字段表示累计CPU时间,单位为十分之一秒。
四、进程树与线程级细节展开
深入理解进程组织结构及多线程行为,需启用树形视图或线程标识选项,揭示传统列表无法体现的层级与并发关系。
1、显示进程父子树关系:执行ps -ef --forest,子进程以缩进形式显示在其父进程下方。
2、列出所有线程(LWP):运行ps -eLf,每一线程作为独立条目出现,并显示LWP(轻量级进程ID)与NLWP(线程数)字段。
3、在进程后追加其线程信息:输入ps -eM,主线程与其附属线程合并显示在同一逻辑行中。
五、top命令动态实时监控
top命令持续刷新进程列表,提供交互式界面,适合观察负载波动、响应延迟及内存压力变化趋势,弥补ps静态快照的局限性。
1、直接输入top启动默认视图,顶部显示系统摘要(uptime、load average、tasks、CPU、Mem、Swap),下方为按CPU使用率排序的进程列表。
2、在top运行中按下P键,按CPU使用率降序重排;按下M键,按内存使用率降序重排;按下T键切换是否显示进程树。
3、按下k键后输入目标PID,可向指定进程发送信号(如默认SIGTERM),实现交互式终止。










