在管理 Linux 服务器、NAS 或软路由(如 iStoreOS / OpenWrt)时,我们经常需要实时查看 CPU 占用、温度、内存和网络吞吐。传统的 top 界面过于简陋,htop 虽然实用但缺少网络与磁盘 IO 的综合趋势波形图。
btop(btop++) 是目前 Linux 终端下颜值最高、整合度最强的一体化监控工具。它不仅支持真彩色(TrueColor)与平滑曲线图表,还原生支持鼠标点击交互。本文将为你提供一份开箱即用的安装与配置教程。
一、 btop 的核心亮点
- 全模块一屏集成:同屏显示 CPU(分核与温度)、内存(含缓存与 Swap)、磁盘(挂载点与实时读写 IO)、网络(实时上下行波形)以及完整的进程列表。
- 原生支持鼠标交互:可直接在终端中用鼠标点击切换排序、折叠模块或筛选进程。
- 极度轻量:基于 C++ 编写,执行效率极高,在低功耗小主机(如 Intel J4105 / N100)上运行毫无压力。
- 丰富的主题生态:内置数十款极客配色方案(Nord、Dracula、Gruvbox 等)。
二、 全平台安装指南
1. OpenWrt / iStoreOS(软路由 / 旁路由)
iStoreOS 及新版 OpenWrt 官方软件源已收录该包,直接使用 opkg 安装:
# 更新源并安装
opkg update
opkg install btop
2. Debian / Ubuntu / PVE
sudo apt update
sudo apt install btop -y
3. CentOS / RHEL / Fedora / Rocky Linux
# Fedora / Rocky / AlmaLinux
sudo dnf install btop -y
# CentOS 7/8 (需先开启 EPEL 源)
sudo yum install epel-release -y
sudo yum install btop -y
4. Arch Linux / Manjaro
sudo pacman -S btop
5. macOS (通过 Homebrew)
brew install btop
6. Docker 容器免安装运行(便携模式)
如果你不想在主机底层写入任何依赖,可以通过 Docker 一键启动:
docker run --rm -it \
--name=btop \
--net=host \
--pid=host \
-v /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/aristocratos/btop:latest
三、 避坑指南:OpenWrt / iStoreOS 报 UTF-8 错误
在精简版 Linux 或软路由系统中启动 btop 时,经常会遇到以下报错:
ERROR: No UTF-8 locale detected!
Use --force-utf argument to force start if you're sure your terminal can handle it.
原因分析
OpenWrt 为了追求极致轻量,默认使用 C 极简字符集,未预设全局 UTF-8 环境变量。
完美解决方案(无污染别名法)
在终端中执行以下两行命令,为 btop 设置自动补全参数的别名(该方法仅针对命令行交互生效,绝不会影响路由器的后台服务与网络转发):
# 将快捷别名写入系统 profile
echo "alias btop='btop --force-utf'" >> /etc/profile
source /etc/profile
配置完成后,以后直接在终端输入 btop 即可秒开!
四、 核心面板与指标解读
┌─ CPU ───────────────────────────┐ ┌─ PROC ──────────────────────────────┐
│ Load: 0.15 0.12 0.08 Temp: 38°C│ │ PID Program CPU% Mem% Thrd│
│ Core 0: [||||||....] 12% │ │ 1234 docker 2.5 1.2 14 │
├─ MEM ───────────────────────────┤ │ 5678 clash 1.1 0.8 8 │
│ Used: 1.2G Free: 2.1G Swap: 0 │ ├─ DISKS ─────────────────────────────┤
├─ NET ───────────────────────────┤ │ / 1.6G Free IO: 120 KB/s │
│ br-lan TX: 1.2MB/s RX: 4.5MB/s │ │ /ssd 97.0G Free IO: 0 B/s │
└─────────────────────────────── ─┘ └─────────────────────────────────────┘
- CPU 模块:
Load AVG:系统 1 / 5 / 15 分钟的平均负载(多核系统下,数值小于总核心数即表示负载轻松)。Temp:CPU 核心温度。
- MEM(内存)模块:
Cached / Available:Linux 缓存与实际可分配内存。
- NET(网络流量)模块:
Download (RX)/Upload (TX):实时网络吞吐曲线。可通过按键切换监控不同网卡(如br-lan、eth0、docker0)。
- PROC 排序模式(
cpu lazyvscpu direct):cpu lazy(推荐):平滑加权排序,列表不会频繁上下剧烈抖动,便于鼠标精准点击。cpu direct:即时瞬时排序,反应极端敏感,类似 Windows 任务管理器。
五、 常用快捷键速查表
在 btop 运行界面中,可随时使用以下单键控制:
| 按键 | 功能说明 |
|---|---|
m 或 Esc | 调出设置菜单(配置主题配色、刷新率等) |
p | 在内置预设布局(Preset 0 ~ 3)之间循环切换 |
1 / 2 / 3 / 4 | 分别独立显示/隐藏 CPU、MEM、NET、PROC 模块 |
e | 切换进程列表为树状图模式(Tree View) |
k | 快速向选中的进程发送 SIGTERM / SIGKILL(强制结束进程) |
f | 过滤/搜索特定进程名(如输入 docker) |
+ / - | 调整监控数据刷新间隔(默认 2000ms) |
q | 退出 btop |
六、 常见问题 FAQ
Q1:界面布局被我搞乱了,右上角显示 preset* 怎么恢复?
答:星号
*仅代表当前窗口处于“动态自适应排版”状态。如果想彻底恢复出厂设置,直接退出后删除配置文件即可:rm -rf ~/.config/btop
Q2:为什么 btop 显示了 CPU 温度,却没显示硬盘温度?
答:
btop底部的DISKS模块专注监控容量和读写 IO 速度。若需同时查看 CPU 和 SSD 的精准硬件温度,推荐在终端直接使用 Linux 原生传感器工具:sensors
Q3:为什么我的 btop 没有显示 GPU(显卡)面板?如何单独查看显卡状态?
答:软路由或精简版 Linux 官方源在编译
btop时,默认剔除了显卡依赖库以保持几百 KB 的极致轻量。若设备搭载了核显(如 Intel UHD 系列)或独显,推荐使用以下两款专属工具进行监控:
- 全功能高颜值显卡看板(推荐日常使用)——
nvtop:
支持 Intel、AMD 及 NVIDIA 显卡。界面风格与btop类似,提供平滑的 GPU 占用历史波形、显存占用以及调用显卡的进程追踪:opkg update && opkg install nvtop # Ubuntu/Debian 下为 apt install nvtop nvtop- Intel 官方硬核诊断工具(排查硬件编解码)——
intel_gpu_top:
如果设备运行 Docker 跑 Jellyfin/Plex 等影音服务,可用它精准验证视频是否真正走通了 Intel QuickSync 硬件解码引擎:opkg update && opkg install intel-gpu-tools intel_gpu_top
结语
btop 凭借出色的交互设计和现代化的 UI,完美兼顾了美观与实用性。在 NxShell、Windows Terminal 等支持真彩色的终端中打开它,不仅能让运维监控赏心悦目,还能在系统出现高负载或网络拥堵时秒级定位元凶。