$ terminals _

htop

交互式进程查看器

🌐 官网 GitHub brew install htop

简介

htop 是一个跨平台的交互式进程查看器,是传统 top 命令的增强替代品。它提供了彩色的终端界面,能够直观地展示 CPU、内存使用情况和运行中的进程列表,支持鼠标操作和丰富的键盘快捷键。

top 相比,htop 启动更快,默认显示所有进程,支持水平和垂直滚动查看完整的进程命令行。它允许你直接在界面中进行进程操作,如发送信号、调整优先级、过滤和搜索进程,无需记忆进程 PID。htop 还支持树形视图,清晰展示进程之间的父子关系。

安装

# macOS
brew install htop

# Ubuntu/Debian
sudo apt install htop

# Fedora
sudo dnf install htop

核心特性

  • 彩色界面: CPU、内存用量以彩色进度条直观展示
  • 交互操作: 支持鼠标点击和丰富的快捷键
  • 进程树: 树形视图展示进程父子层级关系
  • 搜索过滤: 实时搜索和过滤进程列表
  • 进程管理: 直接发送信号(kill)、调整优先级(renice)
  • 自定义显示: 可配置显示的列和排序方式

使用示例

# 启动 htop
htop

# 仅显示指定用户的进程
htop -u username

# 以树形模式启动
htop -t

# 按内存使用排序启动
htop --sort-key=PERCENT_MEM

# 仅监控特定 PID
htop -p 1234,5678

常用快捷键

F1        帮助
F2        设置(自定义显示列、配色等)
F3 / /    搜索进程
F4 / \    过滤进程
F5        树形视图切换
F6        选择排序列
F9 / k    发送信号(kill)
F10 / q   退出
Space     标记进程
U         取消所有标记
M         按内存排序
P         按 CPU 排序
T         按运行时间排序

典型场景

场景一:定位服务器 CPU 飙升根因

服务器告警 CPU > 90%,SSH 进去立刻 htop:

htop
# 按 P 按 CPU 排序 → 马上看到哪个进程在耗 CPU
# 按 F5 切换进程树 → 看是哪个父进程 fork 出来的
# 找到问题进程后按 F9 发送 SIGTERM

配合 F4 过滤进程名,可以快速锁定特定服务(如 nginx、java)的所有线程。


场景二:排查内存泄漏

应用跑着跑着内存越来越高:

# 按 M 按内存排序
htop
# 观察排名靠前的进程,关注 RES(实际物理内存)列
# 按 F2 → Display Options → 勾选 "Show custom thread names"
# 可以看到多线程应用各线程的内存消耗

场景三:监控特定服务进程

只关心某个服务,屏蔽无关进程干扰:

# 启动时直接过滤
htop -u www-data          # 只看 nginx/apache 进程
htop -p $(pgrep -d, node) # 只监控所有 node 进程

# 在界面内按 F4 输入关键字实时过滤

推荐搭配

  • btop — 想要更炫酷的界面可以试试 btop
  • procs — 用 Rust 写的现代 ps 替代品