什么是 htop
htop 是一个跨平台的交互式进程查看器,基于 ncurses 库构建,运行在终端环境中。它是传统 top 命令的增强替代品,由 Hisham Muhammad 开发,目前托管在 htop.dev。
与 top 相比,htop 提供了更友好的用户界面:支持彩色输出、鼠标操作、横向和纵向滚动进程列表、树状视图显示进程关系,以及无需输入 PID 即可管理进程。自 2.0 版本起,htop 实现了跨平台支持,目前覆盖 Linux、FreeBSD、NetBSD、OpenBSD、DragonFly BSD、macOS 和 Solaris。

htop 安装方法
Linux 发行版
不同发行版的安装命令略有差异,但多数官方源已包含 htop:
Debian / Ubuntu
sudo apt update
sudo apt install htop -y
RHEL / CentOS / Rocky Linux
sudo yum install epel-release
sudo yum install htop -y
Fedora
sudo dnf install htop
Arch Linux
sudo pacman -S htop
macOS
通过 Homebrew 一键安装:
brew install htop
注意:macOS 上需要 sudo htop 才能正确显示所有进程。
从源码编译
如果需要最新开发版,可从 GitHub 仓库编译:
git clone https://github.com/htop-dev/htop.git
cd htop
./autogen.sh
./configure
make
sudo make install
htop 界面详解
启动 htop 后,界面分为三个主要区域:
头部 — 系统概览
顶部区域以彩色进度条展示 CPU 核心使用率、内存占用和 Swap 使用情况。每一行对应一个 CPU 逻辑核心,颜色含义如下:
- 绿色:用户态进程占用
- 红色:系统内核占用
- 蓝色:低优先级(nice)进程占用
- 黄色/橙色:等待 I/O 的时间
右侧显示系统运行时间、任务数、平均负载(Load Average)等关键指标。
中部 — 进程列表
进程列表默认按 CPU 占用率降序排列,每行显示一个进程,包含 PID、用户、优先级、CPU%、内存%、运行时间、命令等列。可通过左右箭头横向滚动查看更多列。
底部 — 功能键栏
底部显示 F1-F10 功能键对应的快捷操作,便于快速上手。
htop 核心快捷键
进程管理
| 快捷键 | 功能 |
|---|---|
| F9 / k | 杀死选中的进程 |
| F7 | 增加进程优先级(降低 nice 值) |
| F8 | 降低进程优先级(增加 nice 值) |
| Space | 标记/取消标记进程 |
| U | 取消所有标记 |
导航与排序
| 快捷键 | 功能 |
|---|---|
| F5 / t | 切换树状视图 |
| F6 > | 选择排序列 |
| F4 / | 按名称过滤进程 |
| F3 | 搜索进程 |
| F2 | 进入设置界面 |
| F1 | 查看帮助 |
显示控制
| 快捷键 | 功能 |
|---|---|
| H | 切换显示用户线程 |
| K | 切换显示内核线程 |
| M | 按内存占用排序 |
| P | 按 CPU 占用排序 |
| T | 按运行时间排序 |
htop 高级使用技巧
自定义显示列
按 F2 进入设置 → 选择 Columns → 添加或移除字段,如 IO 读写速率、上下文切换次数等。建议常见配置:添加 PROCESSOR、IO_RATE、CGROUP 等列便于深度排查。
树状视图分析进程关系
按 F5 切换树状视图,可以直观看到进程的父子关系,特别适合排查僵尸进程或定位通过 fork 产生的子进程资源泄漏问题。
过滤与搜索
按 F4 输入关键词可实时过滤进程名(如只显示 nginx 相关进程),按 F3 则可高亮搜索。两者结合可在大规模服务器上快速定位目标进程。
监控指定用户
启动时加 -u 参数:
htop -u www-data
只显示指定用户的进程,适合多用户共享服务器的场景。
设置更新延迟
htop -d 50
参数单位为十分之一秒,-d 50 表示 5 秒刷新一次,减少频繁刷新带来的性能开销。
使用配置文件持久化设置
htop 的配置文件位于 ~/.config/htop/htoprc。你可以手动编辑或通过 F2 菜单调整后自动生成。支持配置颜色方案、显示列、排序方式等,迁移到新服务器时可直接复制该文件。
htop vs top vs btop 对比
| 特性 | top | htop | btop |
|---|---|---|---|
| 界面风格 | 纯文本单色 | 半图形化彩色 | 全图形化动态彩色 |
| 鼠标操作 | ❌ | ✅ | ✅ |
| 树状视图 | ❌ | ✅ | ✅ |
| 横向滚动 | ❌ | ✅ | ❌ |
| 磁盘监控 | 基础 | 基础 | ✅ 详细 |
| 网络监控 | ❌ | ❌ | ✅ |
| GPU 监控 | ❌ | ❌ | ✅ |
| 资源占用 | <5MB | 30-50MB | 10-20MB |
| 跨平台 | 仅 Linux | 多平台 | 多平台 |
选型建议:
- 追求轻量和系统自带 →
top - 日常运维和服务器管理 →
htop(最佳平衡) - 桌面环境与可视化需求 →
btop
常见问题与排错
htop 显示不全或乱码
确保终端支持 UTF-8 编码,且 ncurses 库已正确安装。可尝试:
export LANG=en_US.UTF-8
htop -U # 使用 ASCII 字符
非 root 用户看不到所有进程
htop 默认只显示当前用户进程。如需查看全部进程,需使用 sudo htop 或以 root 身份运行。
自定义配置丢失
检查配置文件权限,并确保 ~/.config/htop/ 目录存在:
chmod 644 ~/.config/htop/htoprc
总结
htop 作为 Linux 服务器管理的常备工具,在易用性和功能性之间取得了极好的平衡。无论是日常巡检、性能调优,还是紧急排障,掌握 htop 都能显著提升你的运维效率。建议从基础快捷键开始练习,逐步过渡到自定义配置和多平台使用。