htop/btop 进程管理¶
htop 和 btop 是 Linux 下的交互式进程查看器,比自带的 top 命令好用一万倍。白话说就是"给你的服务器装一个漂亮的仪表盘,CPU、内存、进程一目了然"。
核心知识点¶
| 概念 | 说明 |
|---|---|
| htop | 经典的交互式进程查看器,彩色界面 |
| btop | 更现代的进程查看器,界面更好看,功能更多 |
| PID | 进程 ID,每个运行中的程序都有唯一的编号 |
| CPU% | 进程占用的 CPU 百分比 |
| MEM% | 进程占用的内存百分比 |
| VIRT/RES/SHR | 虚拟内存/物理内存/共享内存 |
| 负载(Load Average) | 系统繁忙程度,1.0 表示 1 个 CPU 刚好满载 |
安装配置¶
htop 安装¶
# Ubuntu/Debian
sudo apt install htop # 安装 htop
# CentOS/RHEL
sudo yum install htop # 安装 htop(可能需要 EPEL 源)
sudo yum install epel-release && sudo yum install htop # 先装 EPEL 再装 htop
# macOS
brew install htop # Homebrew 安装
btop 安装¶
# Ubuntu 22.04+
sudo apt install btop # 直接安装
# Ubuntu 20.04(需要添加 PPA)
sudo add-apt-repository ppa:bashtop-monitor/bashtop # 添加源
sudo apt install btop # 安装
# CentOS/RHEL(从源码安装)
sudo yum install -y gcc-c++ make # 安装编译依赖
git clone https://github.com/aristocratos/btop.git # 克隆源码
cd btop && make && sudo make install # 编译安装
# macOS
brew install btop # Homebrew 安装
# 使用 snap 安装(通用方法)
sudo snap install btop # snap 包管理器安装
基本使用¶
htop 操作¶
# 启动 htop
htop # 直接运行
# 启动并只显示指定用户的进程
htop -u username # 只看某个用户的进程
# 启动并只显示指定进程
htop -p 1234,5678 # 只监控这些 PID 的进程
htop 界面说明:
上半部分:
CPU 使用率条(每个核心一个)| 内存/交换分区使用率条
任务数 | 负载均衡 | 运行时间
下半部分:
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
进程ID 用户 优先级 虚拟内存 物理内存 状态 CPU 内存 运行时间 命令
htop 快捷键:
F1 帮助 # 查看所有快捷键
F2 设置 # 自定义显示内容和颜色
F3 搜索 # 按进程名搜索
F4 过滤 # 过滤显示的进程
F5 树形视图 # 按父子关系显示进程树
F6 排序 # 选择排序字段
F7 降低优先级 # nice 值 +1
F8 提高优先级 # nice 值 -1
F9 杀死进程 # 发送信号给进程
F10 退出 # 退出 htop
# 其他常用快捷键
Space 标记进程 # 可以同时标记多个进程
U 取消所有标记 # 取消标记
k 杀死进程 # 和 F9 一样
u 按用户过滤 # 只显示某个用户的进程
t 树形/列表切换 # 切换显示模式
H 隐藏线程 # 只显示进程不显示线程
M 按内存排序 # 内存占用从高到低
P 按 CPU 排序 # CPU 占用从高到低
T 按时间排序 # 运行时间从长到短
btop 操作¶
# 启动 btop
btop # 直接运行
# 指定刷新率(毫秒)
btop --update 500 # 每 500 毫秒刷新一次
# 指定主题
btop --theme gruvbox # 使用 gruvbox 主题
btop 界面说明:
btop 分为 4 个面板:
1. CPU 面板 - CPU 使用率图表 + 每核心使用率
2. 内存面板 - 内存和交换分区使用情况
3. 网络面板 - 网络流量实时图表
4. 进程面板 - 进程列表(类似 htop)
btop 快捷键:
Esc/q 退出
m 切换显示模式
f 过滤进程
/ 搜索进程
↑↓ 上下选择进程
Enter 展开/折叠进程信息
t 发送信号
k 杀死选中进程
r 按用户过滤
e 按树形/列表切换
P 按 CPU 排序
M 按内存排序
1-4 切换显示的面板
高级用法¶
htop 自定义配置¶
# htop 配置文件位置
~/.config/htop/htoprc # 按 F2 设置后自动保存到这里
# 常用自定义:
# 1. F2 → Display options → 勾选 "Hide userland process threads"(隐藏线程)
# 2. F2 → Columns → 添加/删除/排列显示列
# 3. F2 → Meters → 自定义顶部仪表盘(拖拽式)
# htop 也支持命令行参数
htop --sort-key=PERCENT_MEM # 启动时按内存排序
htop --tree # 启动时用树形视图
btop 配置¶
# btop 配置文件
~/.config/btop/btop.conf # 配置文件位置
# 常用配置项
# color_theme = "monokai" # 主题
# update_ms = 1000 # 刷新间隔(毫秒)
# proc_sorting = "cpu lazy" # 默认排序
# proc_tree = true # 默认树形视图
# shown_boxes = "cpu mem net proc" # 显示哪些面板
# 查看可用主题
ls /usr/share/btop/themes/ # 系统主题目录
ls ~/.config/btop/themes/ # 用户主题目录
实用技巧¶
# 用 htop 找出最耗 CPU 的进程
htop --sort-key=PERCENT_CPU # 按 CPU 排序启动
# 用 htop 找出最耗内存的进程
htop --sort-key=PERCENT_MEM # 按内存排序启动
# 用 htop 监控特定进程
htop -p $(pgrep -d, python) # 监控所有 python 进程
# 配合 watch 定期截图
watch -n 5 "ps aux --sort=-%mem | head -20" # 每 5 秒显示内存前 20
# 使用 htop 批量杀进程
# 1. 按 F4 过滤出目标进程
# 2. 按 Space 标记每个要杀的进程
# 3. 按 F9 发送 SIGKILL 杀掉所有标记的进程
top vs htop vs btop 对比¶
功能 | top | htop | btop
彩色界面 | ✗ | ✓ | ✓
鼠标支持 | ✗ | ✓ | ✓
树形视图 | ✗ | ✓ | ✓
进程搜索 | 有限 | ✓ | ✓
网络监控 | ✗ | ✗ | ✓
磁盘 IO 监控 | ✗ | ✗ | ✓(部分)
GPU 监控 | ✗ | ✗ | ✓
自带系统 | ✓ | ✗ | ✗
常见报错¶
| 问题 | 原因 | 解决 |
|---|---|---|
htop: command not found | 没安装 | sudo apt install htop |
| btop 界面乱码 | 终端不支持 UTF-8 | 设置终端编码为 UTF-8 |
| btop 颜色不对 | 终端不支持 True Color | 使用支持 True Color 的终端 |
| 无法杀死进程 | 没有权限 | 用 sudo htop 以 root 运行 |
| CPU 显示 0% | 刷新间隔太长 | 调短刷新间隔 |
速查表¶
# === 启动命令 ===
htop # 启动 htop
htop -u 用户名 # 只看某用户
htop -p PID1,PID2 # 只看指定进程
htop --tree # 树形视图
btop # 启动 btop
# === htop 快捷键 ===
F3 / / 搜索进程
F4 过滤进程
F5 树形视图
F6 选择排序
F9 / k 杀死进程
P 按 CPU 排序
M 按内存排序
T 按运行时间排序
Space 标记进程
u 按用户过滤
H 隐藏/显示线程
q 退出
# === btop 快捷键 ===
/ 搜索进程
f 过滤进程
e 树形视图
P 按 CPU 排序
M 按内存排序
k 杀死进程
Esc/q 退出
# === 其他进程管理命令 ===
ps aux | sort -k3 -rn | head # 按 CPU 排序前 10
ps aux | sort -k4 -rn | head # 按内存排序前 10
kill -9 PID # 强制杀死进程
kill -15 PID # 优雅关闭进程
killall 进程名 # 按名称杀死所有实例