最常用的是ps -axu,可查看全系统所有进程的pid、user、%cpu、%mem、tty和command等完整信息;配合| less分页、| grep过滤、-axjf/-axh看树状结构、awk或grep筛选tty为?的后台守护进程。
在 macos 终端中用 ps 查看进程,关键不是背参数,而是知道哪几个组合最常用、结果最清晰、适合不同场景。
最常用:ps -axu —— 看全系统所有进程
这是 macOS 上查看后台服务、守护进程和用户程序的“基础快照”。它会列出:
-
PID(进程号)、USER(运行用户,如
_windowserver或你的用户名) - %CPU 和 %MEM(资源占用百分比)
-
TTY 列为
?的,就是没有控制终端的后台进程(比如mds、bird) - COMMAND 显示完整启动命令(含路径和参数)
执行:ps -axu。如果输出太长,加 | less 分页查看:ps -axu | less,按空格翻页,按 q 退出。
快速定位某个程序:ps -axu | grep 关键词
比如想查 Zoom 相关进程:
-
ps -axu | grep -i zoom(-i忽略大小写) - 结果里通常会多出一行
grep ...自身,可用| grep -v grep过滤掉:ps -axu | grep -i zoom | grep -v grep - 注意:CMD 列显示的名称可能和 App 名不同,比如 “Google Chrome Helper”,不是 “Chrome”
看父子关系:ps -axjf 或 ps -axH
有些后台进程是其他程序拉起来的(比如 iCloud 同步服务由 cloudd 启动),用树状结构更清楚:
-
ps -axjf:用 ASCII 字符画树,适合终端直接看 -
ps -axH:用缩进方式展示层级,更简洁 - 配合
grep可聚焦某类服务,例如:ps -axH | grep -E "(bird|cloudd)"
只看无终端的后台守护进程
很多系统级服务不绑定终端,TTY 列是 ?。单独筛选它们很实用:
-
ps -axu | awk '$7 == "?" {print}'($7是 TTY 列,macOS 下通常为第 7 字段) - 或更直观:
ps -axu | grep ' \? '(前后加空格避免匹配到 PID 含问号) - 这类进程包括:
launchd、syslogd、diskmanagementd等











