top 和 htop
对于动态查看进程,top 是最经典、最通用的命令,而 htop 是它的一个增强版,功能更强大、界面更友好。

top - 经典的动态进程查看器
top 几乎在所有 Linux 发行版中都是预装的,是系统管理员最常用的工具之一。
基本用法
直接在终端输入 top 即可启动:
top
启动后,你会看到一个全屏的、不断刷新的界面,界面分为两部分:顶部的系统概览和下方的进程列表。
界面详解
顶部系统信息区:

top - 15:30:00 up 10 days, 2:30, 2 users, load average: 0.15, 0.20, 0.25
Tasks: 150 total, 1 running, 149 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.2 us, 1.1 sy, 0.0 ni, 93.5 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8169344 total, 3254320 used, 4915024 free, 142828 buffers
KiB Swap: 2097148 total, 0 used, 2097148 free, 2112368 cached
top- 15:30:00: 当前时间。up 10 days, 2:30: 系统运行了多长时间。load average: 0.15, 0.20, 0.25: 系统负载(1分钟、5分钟、15分钟内的平均进程数),这是衡量系统繁忙程度的关键指标,负载值不应超过 CPU 核心数。Tasks: 150 total...: 进程总数及其状态(运行、睡眠、停止、僵尸)。%Cpu(s): ...: CPU 占用情况。us(user space) = 用户空间占用率。sy(system) = 内核空间占用率。ni(nice) = 优先级进程占用率。id(idle) = 空闲率。wa(I/O wait) = 等待 I/O 操作的 CPU 空闲率,如果这个值很高,说明系统在等待磁盘或网络。
KiB Mem : ...: 物理内存使用情况(总、已用、空闲、用作缓冲区)。KiB Swap: ...: 交换分区(虚拟内存)使用情况。
下方进程列表区:
这是一个表格,默认按 %CPU 使用率降序排列,每一列代表一个进程的属性,最重要的列有:
PID: 进程 ID (Process ID)。USER: 进程所有者。%CPU: 进程占用 CPU 的百分比。%MEM: 进程占用物理内存的百分比。COMMAND: 启动进程的命令。
top 的常用交互命令
在 top 界面中,可以直接按键盘命令进行操作(不区分大小写):
| 命令 | 功能 |
|---|---|
q |
退出 top (最常用) |
M |
按 内存占用率 (%MEM) 降序排序 |
P |
按 CPU 占用率 (%CPU) 降序排序 (默认排序) |
T |
按 累计 CPU 时间 降序排序 |
k |
终止 (kill) 一个进程,按 k 后,会提示输入 PID,输入后按回车,再按回车确认。 |
r |
重新设置一个进程的优先级 (renice),按 r 后,输入 PID,然后输入新的 nice 值 (-20 到 19)。 |
c |
切换命令名和完整路径,按一次 c 显示完整路径,再按一次 c 回到只显示命令名。 |
1 |
切换 CPU 显示模式,在多核 CPU 系统下,按 1 可以分别显示每个核心的占用率。 |
s |
修改刷新间隔,按 s 后输入秒数,5 表示每 5 秒刷新一次。 |
t |
切换 CPU 占用率视图 (在百分比和纯数值间切换)。 |
m |
切换内存占用视图 (在百分比和纯数值间切换)。 |
htop - 更强大的现代化进程查看器
htop 是 top 的一个超集,提供了更直观的彩色界面、更丰富的功能和更便捷的操作,如果你的系统没有安装,可以使用包管理器安装:

- Debian/Ubuntu:
sudo apt install htop - CentOS/RHEL/Fedora:
sudo yum install htop或sudo dnf install htop - macOS (使用 Homebrew):
brew install htop
基本用法
htop
htop 的优势
- 彩色界面:不同状态的进程用不同颜色区分,一目了然。
- 垂直和水平分割:可以同时查看多个系统视图(CPU 占用和内存占用并排显示)。
- 鼠标支持:可以直接用鼠标点击选择进程和执行操作(虽然熟练的键盘操作更快)。
- 更丰富的进程信息:可以轻松地看到线程、完整的命令行参数。
- 更友好的操作:
- 按
F2或s可以打开设置菜单,自定义显示的列和排序方式。 - 按
F9会弹出一个菜单,让你选择要发送给进程的信号(如kill,SIGTERM,SIGKILL),比top的k更直观。 - 按
t可以切换进程树视图。
- 按
htop 的常用交互命令
| 命令 | 功能 |
|---|---|
F1 |
显示帮助界面 |
F2 / s |
打开设置/首选项菜单 |
F3 / |
搜索进程名 |
F4 |
过滤进程列表 (输入关键词后,列表会只显示包含该关键词的进程) |
F5 |
切换进程树视图 (可以看到父子进程关系,非常强大) |
F9 |
终止进程 (弹出信号选择菜单) |
F10 / q |
退出 htop |
| / | 在进程树视图中展开或折叠子进程 |
u |
按用户过滤 |
H |
切换显示/隐藏线程 |
d |
暂停/恢复选中进程的刷新 |
其他动态查看工具
除了 top 和 htop,还有一些工具可以用来动态观察特定方面的系统行为。
glances - 超级系统监控工具
glances 是一个功能极其强大的跨平台监控工具,它整合了 top, htop, iotop, iftop, df, ps 等多个工具的功能。
安装:
sudo apt install glances (Debian/Ubuntu)
基本用法:
glances
特点:
- 界面简洁信息量巨大,同时显示 CPU、内存、磁盘、网络、文件系统、传感器温度等信息。
- 支持多种模式,如 Web 模式 (
glances -w)、日志模式等。 - 提供警告和临界值的颜色提示。
iotop - 磁盘 I/O 监控
当你发现系统负载高,但 CPU 和内存占用都不高时,很可能是 I/O 瓶颈,这时 iotop 就派上用场了。
基本用法:
sudo iotop # 需要 root 权限才能获取到所有进程的 I/O 信息
它会实时显示每个进程的磁盘读写速度。
iftop - 网络流量监控
如果你想查看哪个进程或哪个网络连接在占用大量带宽,可以使用 iftop。
基本用法:
sudo iftop -i eth0 # 指定网卡,eth0
它会显示网络连接的实时流量,以及是哪个 IP 地址在通信。
总结与对比
| 工具 | 主要用途 | 优点 | 缺点 |
|---|---|---|---|
top |
通用动态进程查看 | 预装几乎所有系统,轻量级,功能全面 | 界面古老,无鼠标支持,功能相对基础 |
htop |
通用动态进程查看 | 界面直观,功能强大(进程树、信号选择),可定制 | 需要额外安装 |
glances |
全能系统监控 | 信息密度极高,一站式查看所有资源 | 信息过多可能对新手造成干扰 |
iotop |
磁盘 I/O 监控 | 精准定位高 I/O 进程 | 功能单一,只看 I/O |
iftop |
网络流量监控 | 精准定位高流量连接和 IP | 功能单一,只看网络 |
推荐流程:
- 日常快速检查:使用
htop,因为它足够强大且易于使用。 - 深入分析:当发现 CPU 或内存占用异常时,用
htop的排序功能找到元凶。 - 排查 I/O 瓶颈:如果系统卡顿但 CPU 不忙,使用
iotop检查磁盘读写。 - 排查网络问题:如果感觉网络慢,使用
iftop检查流量。 - 全面概览:使用
glances获得一个关于系统健康状况的快速、全面的了解。
