top命令不支持大写-P参数,正确用法是小写-p后接PID:top -p 1234或top -p 1234,5678,9012;也可在运行中按o/O/L交互过滤,或结合ps/pgrep获取PID后传入。

top 命令本身没有 -P 这个参数,这是常见误解。Linux 中不存在 top -P PID 这样的用法。若想监控特定进程,需使用其他正确方式。
用 -p 参数指定进程号(不是 -P)
top 支持小写的 -p 选项,后接一个或多个 PID,只显示这些进程的实时状态:
-
top -p 1234:仅监控 PID 为 1234 的进程 -
top -p 1234,5678,9012:同时监控多个指定 PID(逗号分隔,无空格) - 该模式下界面更简洁,CPU、内存等汇总信息仍保留,但进程列表只含目标进程
启动后动态过滤进程
进入 top 界面后,可交互式聚焦目标进程:
- 按 o 键进入过滤条件编辑(如输入
PID > 1000) - 按 O(大写)可添加更复杂的表达式,例如
COMMAND=java或USER=www-data - 按 L 可搜索进程名关键词,快速定位
结合 ps 快速获取 PID 再传给 top
若不清楚目标程序的 PID,可先用 ps 查找,再传入 top:
-
ps aux | grep nginx找出 nginx 主进程 PID -
top -p $(pgrep -f "python app.py")—— 用命令替换自动填入 PID -
pgrep -u www-data httpd | xargs top -p—— 监控某用户下所有匹配进程
注意区分 top 和其他工具的参数习惯
别把其他命令的写法套用到 top 上:
-
htop支持-p,行为类似;但top不支持-P或--pid -
pidstat -p是另一个专业级按 PID 统计的工具,适合脚本化采集 - 误输
top -P 1234会提示unknown option并退出


















