跳到主要内容

Linux 进程查看:ps、top、htop

程序运行起来以后,就变成了进程。理解进程,是你学习服务管理、系统排错和资源监控的基础。

本文介绍 pstophtopfree

程序和进程

程序是磁盘上的文件,例如 /usr/bin/ls。进程是程序运行时的实例。

同一个程序可以启动多个进程。比如你打开多个终端,每个终端背后都可能有一个 Shell 进程。

每个进程都有一个 PID,也就是进程 ID。

使用 ps 查看进程

查看当前终端相关进程:

ps

查看系统中的进程:

ps aux

常见列含义:

  • USER:进程属于哪个用户。
  • PID:进程 ID。
  • %CPU:CPU 占用。
  • %MEM:内存占用。
  • STAT:进程状态。
  • COMMAND:启动命令。

配合 grep 查找进程:

ps aux | grep ssh

使用 top 动态查看

top 会持续刷新系统状态:

top

你可以看到:

  • 系统运行时间。
  • CPU 使用率。
  • 内存使用情况。
  • 进程列表。

常用按键:

按键作用
P按 CPU 占用排序
M按内存占用排序
k输入 PID 后发送信号
q退出

htop 更适合交互查看

htop 是更友好的进程查看工具:

htop

它通常需要额外安装。相比 tophtop 更容易:

  • 用方向键选择进程。
  • 搜索进程。
  • 按 CPU 或内存排序。
  • 查看进程树。

如果系统没有 htop,先使用 top 也完全可以。

查看内存

查看内存使用情况:

free -h

输出中你会看到 totalusedfreeavailable 等列。初学时重点看 available,它更能反映系统还能给新程序使用多少内存。

Linux 会把空闲内存用于缓存,所以 free 很小不一定代表系统真的没内存。

进程状态入门

ps 中的 STAT 字段可能出现:

状态含义
R正在运行或等待 CPU
S可中断睡眠,常见的等待状态
D不可中断睡眠,常与 I/O 等待有关
T已停止
Z僵尸进程

你不需要立刻掌握所有状态,但看到 Z、大量 D 状态时,需要进一步排查。

查找某个端口对应进程

网络服务排错时,经常要知道哪个进程监听了端口:

ss -tulpn

这个命令会在网络章节继续讲。它可以把“端口”和“进程”联系起来。

小结

你需要掌握:

  • ps aux:查看当前系统进程快照。
  • top:动态查看资源占用。
  • htop:更友好的进程监控工具。
  • free -h:查看内存。
  • PID 是管理进程的重要编号。

下一篇会讲作业控制和信号,你会知道如何中断、暂停、恢复和结束进程。