linux中查看和管理进程最常用ps和top:ps用于快照式查看(如ps aux、ps -ef),top用于动态实时监控(支持交互排序、杀进程等),辅以htop、pidstat等进阶工具。

linux系统中查看和管理进程,最常用的是ps和top命令。它们用途不同:ps适合快速快照式查看,top适合动态实时监控。
ps命令:查看进程快照
ps显示某一时刻的进程状态,不自动刷新。常用组合选项能大幅提高实用性:
-
ps aux:显示所有用户的所有进程(a)、包含终端无关进程(x)、显示详细信息(u)——这是最常用的全量查看方式 -
ps -ef:以标准格式显示全部进程(e),含父进程ID(PPID)和启动命令(F)——适合分析进程树关系 -
ps aux | grep nginx:配合grep筛选特定进程,注意加空格避免匹配到grep自身(如写成grep " nginx "更稳妥) -
ps -o pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head -10:自定义输出字段,并按CPU占用降序取前10个进程
top命令:实时动态监控进程
top默认每3秒刷新一次,提供交互式界面,支持排序、过滤、终止进程等操作:
- 启动后按
P(大写)按CPU使用率排序,按M按内存排序,按T按运行时间排序 - 按
q退出,按h查看帮助,按k可输入PID杀掉指定进程(需权限) - 顶部显示系统概览:负载平均值、运行中/睡眠进程数、CPU和内存使用率等
- 按
1键可切换显示所有CPU核心的分别使用率(多核系统下很有用)
实用技巧与注意事项
实际运维中,几个细节容易影响判断准确性:
-
ps aux中的%CPU是进程自启动以来的平均占用率,而top中显示的是最近刷新周期内的瞬时值 - 僵尸进程(Z状态)无法被
kill,需结束其父进程或重启父服务;ps aux | awk '$8 ~ /Z/ {print}'可快速识别 -
top -b -n 1 > top.log可将单次top输出保存为静态日志,适合脚本调用或故障回溯 - 某些容器环境或低权限用户可能看不到其他用户的进程,
ps结果受限于权限模型
替代与补充工具
除ps和top外,还有更现代、友好的选择:
-
htop:增强版top,支持鼠标操作、彩色显示、垂直/水平滚动、树状视图(F5),需单独安装 -
pidstat(来自sysstat包):按指定间隔统计进程资源使用,适合性能采样和长期监控 -
pgrep/pkill:按名称精准查找或终止进程,比ps | grep | kill更简洁安全 -
systemctl list-units --type=service --state=running:对systemd服务,优先用此查看服务级进程状态
基本上就这些。掌握ps和top的核心用法,再配合一两个进阶工具,日常进程排查和资源分析足够应对大多数场景。