ps · 进程侦探

上游:ls(ls 看文件,ps 看进程)· sudo(看所有用户的进程需要 sudo) 下游:kill(找到进程 → 杀掉它)· systemctl(进程的高级管理) 参见:htop(ps 的可视化版本,交互式界面,Tier 5)


一句话是什么

ps 查看电脑上正在运行的程序(进程)—— 就像学校的签到表,看看谁在教室里。


为什么需要它

你的电脑同时在运行很多程序,不只是你能看到的:

$ ps aux | wc -l
# 150

150 个进程!你只打开了几个窗口,但后台还有系统服务、 定时任务、网络管理器等在安静运行。

真实场景

  • Minecraft 服务器卡死了,找到它的进程 ID(PID)再杀掉
  • 某个程序占用太多内存,找出来是谁
  • 检查某个服务有没有在运行

核心用法

公式

ps [选项]

最常用的两个命令

# 看自己的进程
ps
 
# 看所有人的所有进程(最常用)
ps aux

ps 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(独一无二的编号)
%CPUCPU 占用率
%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 -10

Linux 笑话

Aaron 的 Minecraft 服务器卡住了,什么都不动了。

他问爸爸怎么重启,爸爸说: “先找到它的进程 ID,再 kill 掉,再重启。”

Aaron:“kill?!”

ps aux | grep bedrock_server
# aaron 5678  0.0  1.2  ...  ./bedrock_server
kill 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


节点链接

上游

  • ls ← ls 看文件,ps 看进程
  • sudo ← sudo ps aux 看所有用户的进程
  • apt ← 安装 htop:sudo apt install htop

同层

  • htop ← ps 的可视化交互版本(推荐日常用 htop)

下游

  • kill ← 找到 PID 之后,用 kill 结束进程
  • systemctl ← 服务进程用 systemctl 管理更优雅

组合

  • 管道 ← ps aux | grep 是经典用法
  • grep ← ps 的黄金搭档

节点版本:v1.0 · 2026-04-20 下一个节点建议:killhtop(Tier 5)