ps · 进程侦探
上游:ls(ls 看文件,ps 看进程)· sudo(看所有用户的进程需要 sudo) 下游:kill(找到进程 → 杀掉它)· systemctl(进程的高级管理) 参见:
htop(ps 的可视化版本,交互式界面,Tier 5)
一句话是什么
ps 查看电脑上正在运行的程序(进程)——
就像学校的签到表,看看谁在教室里。
为什么需要它
你的电脑同时在运行很多程序,不只是你能看到的:
$ ps aux | wc -l
# 150150 个进程!你只打开了几个窗口,但后台还有系统服务、 定时任务、网络管理器等在安静运行。
真实场景:
- Minecraft 服务器卡死了,找到它的进程 ID(PID)再杀掉
- 某个程序占用太多内存,找出来是谁
- 检查某个服务有没有在运行
核心用法
公式
ps [选项]
最常用的两个命令
# 看自己的进程
ps
# 看所有人的所有进程(最常用)
ps auxps aux 输出格式:
USER PID %CPU %MEM VSZ RSS STAT START TIME COMMAND
aaron 1234 0.0 0.1 12345 4567 Ss 08:00 0:00 bash
aaron 5678 2.5 1.2 98765 32000 Rl 08:30 1:23 ./bedrock_server
root 123 0.0 0.0 1234 567 Ss 07:00 0:01 /sbin/init
| 列 | 含义 |
|---|---|
| USER | 进程属于谁 |
| PID | 进程 ID(独一无二的编号) |
| %CPU | CPU 占用率 |
| %MEM | 内存占用率 |
| COMMAND | 运行的是什么命令 |
配合 grep 使用(最实用)
# 找 Minecraft 服务器进程
ps aux | grep bedrock
# aaron 5678 2.5 1.2 ... ./bedrock_server
# 找 Python 进程
ps aux | grep python
# 找占用 CPU 最多的进程(前 10 名)
ps aux --sort=-%cpu | head -10Linux 笑话
Aaron 的 Minecraft 服务器卡住了,什么都不动了。
他问爸爸怎么重启,爸爸说: “先找到它的进程 ID,再 kill 掉,再重启。”
Aaron:“kill?!”
ps aux | grep bedrock_server
# aaron 5678 0.0 1.2 ... ./bedrock_serverkill 5678[1]+ Terminated ./bedrock_server
Aaron 盯着屏幕:“我杀了我的世界。”
爸爸:“你只是结束了一个进程,不是真的杀了什么。”
Aaron:“但游戏没了。”
爸爸:“游戏存档还在,重新运行就好。”
Linux 的 kill 命令就是”结束程序”,
不是真正意义上的杀死。(但听起来很酷。)
例题精讲
📗 初探 Starter — 看看电脑在运行什么
# 看自己当前的进程
ps
# 看所有进程,但太多了
ps aux
# 配合 head 只看前 20 行
ps aux | head -20
# 找自己的进程
ps aux | grep aaron📘 应用 User — 找到 Minecraft 服务器
# 假设 Minecraft 服务器在运行
ps aux | grep bedrock_server
# 只看 PID(进程 ID)
ps aux | grep bedrock_server | awk '{print $2}'
# 看它占用多少内存
ps aux | grep bedrock_server | awk '{print $4"% 内存"}'📙 管理 Admin — 找出占用最多资源的进程
# 按 CPU 排序,前 5 名
ps aux --sort=-%cpu | head -6
# 按内存排序,前 5 名
ps aux --sort=-%mem | head -6
# 实时查看(ps 是快照,htop 是实时的)
# 更好的方式:
htop
# 按 q 退出官方文档参考
man ps # 完整手册
ps --help all # 快速选项列表
ps aux是 BSD 风格(无-),显示所有用户全部进程;ps -ef是 UNIX 风格,效果相近。 在线:https://manpages.ubuntu.com/ps
节点链接
上游
同层
htop← ps 的可视化交互版本(推荐日常用 htop)
下游
组合
节点版本:v1.0 · 2026-04-20
下一个节点建议:kill 或 htop(Tier 5)