强曰为道
与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

系统监控工具指南 / 第5章:btop详解

第5章:btop详解

5.1 btop概述

什么是btop

btop 是一款现代化的终端系统监控工具,以精美的界面和丰富的功能著称。它是 bashtop 和 bpytop 的 C++ 重写版本,性能更优、资源占用更低。

btop的特点

  1. 精美界面 - 现代化设计,支持鼠标操作
  2. 主题丰富 - 多种内置主题,支持自定义
  3. 功能全面 - CPU、内存、磁盘、网络、进程全覆盖
  4. 高性能 - C++编写,资源消耗低
  5. 高度可定制 - 配置选项丰富

btop vs 其他工具

特性btophtoptopglances
界面美观★★★★★★★★★★★
鼠标支持
主题定制有限有限
资源占用极低中等
功能丰富基础
历史图表

5.2 安装与配置

安装方法

# Debian/Ubuntu(推荐使用snap)
sudo snap install btop

# 或从源码编译
git clone https://github.com/aristocratos/btop.git
cd btop
make
sudo make install

# CentOS/RHEL(需要EPEL)
sudo yum install epel-release
sudo yum install btop

# Arch Linux
sudo pacman -S btop

# macOS
brew install btop

# Flatpak
flatpak install flathub com.aristocratos.btop

# Docker
docker run -it --rm --pid=host --privileged nicolargo/glances

验证安装

btop --version
# btop version: 1.2.13

配置文件位置

# 用户配置
~/.config/btop/btop.conf

# 主题目录
~/.config/btop/themes/

# 系统配置
/etc/btop/btop.conf

基本配置

# 创建配置目录
mkdir -p ~/.config/btop

# 首次运行会自动生成配置
btop

# 手动编辑配置
nano ~/.config/btop/btop.conf

5.3 界面详解

整体布局

┌─────────────────────────────────────────────────────────────────┐
│  btop [Main]                                     14:32:15      │
├───────────────────────────────┬─────────────────────────────────┤
│  CPU                          │  Memory                         │
│  ┌─────────────────────────┐  │  ┌─────────────────────────┐   │
│  │ ██████████████████████  │  │  │ ████████████████        │   │
│  │ ██████████████████████  │  │  │ ████████████████        │   │
│  │ 62.5%   1234 MHz        │  │  │ 8.0G / 16.0G            │   │
│  └─────────────────────────┘  │  └─────────────────────────┘   │
├───────────────────────────────┼─────────────────────────────────┤
│  Disks                        │  Network                        │
│  ┌─────────────────────────┐  │  ┌─────────────────────────┐   │
│  │ /     45.2G / 100G      │  │  │ eth0 ↓1.2M ↑456K        │   │
│  │ /home 23.4G / 50G       │  │  │                         │   │
│  └─────────────────────────┘  │  └─────────────────────────┘   │
├───────────────────────────────┴─────────────────────────────────┤
│  Processes                                          MEM: 234M   │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  PID   USER  CPU%  MEM%  Command                        │   │
│  │ 1234   root  45.2  12.3  nginx                          │   │
│  │ 5678   mysql 23.1  34.5  mysqld                         │   │
│  └─────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘

CPU面板

┌─ CPU ────────────────────────────────────────────────────────────┐
│  ┌─ Core 0 ───────┐  ┌─ Core 1 ───────┐  ┌─ Core 2 ───────┐  │
│  │ ██████████████  │  │ █████████████   │  │ ██████████     │  │
│  │ 75.2%  3.2GHz   │  │ 65.8%  3.1GHz   │  │ 45.6%  2.8GHz  │  │
│  └─────────────────┘  └─────────────────┘  └─────────────────┘  │
│  Total: 62.5%   Temp: 65°C   Load: 2.34                        │
└──────────────────────────────────────────────────────────────────┘

CPU信息:

  • 使用率 - 每个核心和总体使用率
  • 频率 - 当前运行频率
  • 温度 - CPU温度(需要传感器支持)
  • 负载 - 系统负载平均值

内存面板

┌─ Memory ─────────────────────────────────────────────────────────┐
│  ┌─ RAM ──────────────────────────────────────────────────────┐ │
│  │ ████████████████████████████████████████                    │ │
│  │ Used: 12.3G  /  Total: 16.0G  (76.9%)                      │ │
│  └─────────────────────────────────────────────────────────────┘ │
│  ┌─ Swap ─────────────────────────────────────────────────────┐ │
│  │                                                             │ │
│  │ Used: 0B  /  Total: 8.0G  (0.0%)                           │ │
│  └─────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘

内存信息:

  • Used - 已使用内存
  • Cached - 缓存内存
  • Free - 空闲内存
  • Swap - 交换分区使用

磁盘面板

┌─ Disks ──────────────────────────────────────────────────────────┐
│  ┌─ /dev/sda1 (/) ─────────────────────────────────────────────┐ │
│  │ ████████████████████████████████████████                     │ │
│  │ 45.2G / 100G  (45.2%)   R: 1.2M/s  W: 456K/s               │ │
│  └─────────────────────────────────────────────────────────────┘ │
│  ┌─ /dev/sda2 (/home) ─────────────────────────────────────────┐ │
│  │ ██████████████████                                           │ │
│  │ 23.4G / 50G  (46.8%)   R: 234K/s  W: 123K/s                │ │
│  └─────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘

磁盘信息:

  • 使用率 - 空间使用百分比
  • R/W - 读写速率

网络面板

┌─ Network ────────────────────────────────────────────────────────┐
│  ┌─ eth0 ──────────────────────────────────────────────────────┐ │
│  │ ↓ 1.23M  ↑ 456K                                            │ │
│  │ ↓ 1.2M/s ↑ 456K/s                                          │ │
│  └─────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘

网络信息:

  • Total - 总流量
  • Speed - 当前速率

进程面板

┌─ Processes ──────────────────────────────────────────────────────┐
│  Sort: CPU   Order: Descending   Threads: Show                  │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │  PID   USER    CPU%   MEM%   Command                        │ │
│  │ 1234   root    45.2   12.3   nginx: worker process          │ │
│  │ 5678   mysql   23.1   34.5   /usr/sbin/mysqld               │ │
│  │ 9012   www     12.3    5.6   php-fpm: pool www              │ │
│  └─────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘

5.4 快捷键大全

基本导航

快捷键功能
/ 上下移动选择
/ 切换面板
Enter进入/退出进程面板
Escape返回/退出
q退出btop

面板切换

快捷键功能
1CPU面板
2内存面板
3磁盘面板
4网络面板
5进程面板

进程操作

快捷键功能
Space标记/取消标记进程
k终止选中进程
s终止标记的进程
c切换显示命令路径
e显示环境变量
l显示打开的文件

排序操作

快捷键功能
Shift+P按CPU排序
Shift+M按内存排序
Shift+N按PID排序
Shift+T按运行时间排序
Shift+R反转排序

显示选项

快捷键功能
m显示/隐藏菜单
t显示/隐藏树状视图
T切换温度单位
F显示/隐藏文件系统
n显示/隐藏网络
i显示/隐藏磁盘IO

配置操作

快捷键功能
M主题菜单
O选项菜单
?帮助

5.5 主题配置

内置主题

btop包含多个内置主题:

主题描述
Default默认主题
Nord北欧配色
Dracula经典紫色调
Monokai暖色调
Solarized柔和配色
Gruvbox复古配色
Tokyo Night东京夜色
Catppuccin柔和粉彩

切换主题

# 方法1:运行时切换
# 按M打开主题菜单
# 选择主题

# 方法2:修改配置文件
nano ~/.config/btop/btop.conf

# 修改这一行
color_theme = "Dracula"

创建自定义主题

# 主题文件位置
~/.config/btop/themes/

# 复制现有主题作为基础
cp /snap/btop/current/themes/Default.theme ~/.config/btop/themes/MyTheme.theme

# 编辑主题
nano ~/.config/btop/themes/MyTheme.theme

主题文件结构:

# Main BG, use "default" for terminal default
theme[main_bg]="#1e1e2e"

# Main text color
theme[main_fg]="#cdd6f4"

# Title color for boxes
theme[title]="#cdd6f4"

# Highlight color for keyboard shortcuts
theme[hi_fg]="#89b4fa"

# Selected text color
theme[selected_fg]="#1e1e2e"

# Selected row color
theme[selected_bg]="#45475a"

# Color of inactive/disabled text
theme[inactive_fg]="#585b70"

# Color of text showing meters/scales
theme[meter_bg]="#313244"

# Color of meter bars
theme[meter_fg]="#a6e3a1"

# CPU graph colors
theme[cpu_start]="#89b4fa"
theme[cpu_mid]="#f9e2af"
theme[cpu_end]="#f38ba8"

# Memory colors
theme[mem_start]="#89b4fa"
theme[mem_mid]="#a6e3a1"
theme[mem_end]="#f38ba8"

常用主题推荐

开发环境 - Dracula:

theme[main_bg]="#282a36"
theme[main_fg]="#f8f8f2"
theme[title]="#bd93f9"

生产环境 - Nord:

theme[main_bg]="#2e3440"
theme[main_fg]="#d8dee9"
theme[title]="#88c0d0"

护眼 - Solarized:

theme[main_bg]="#002b36"
theme[main_fg]="#839496"
theme[title]="#268bd2"

5.6 配置文件详解

主要配置选项

# ~/.config/btop/btop.conf

# 颜色主题
color_theme = "Default"

# 更新间隔(毫秒)
update_ms = 2000

# 使用图形符号(需要Nerd字体)
graph_symbol = "braille"

# 显示温度
show_disks = true

# 显示网络
show_net = true

# 显示CPU频率
show_cpu_freq = true

# 显示CPU温度
check_temp = true

# 温度单位
temp_scale = "celsius"

# 显示电池
show_battery = true

# 进程排序
proc_sorting = "cpu lazy"

# 进程反转排序
proc_reversed = false

# 显示线程
proc_tree = false

# 显示内核线程
proc_colors = true

# 显示详细CPU
cpu_invert_filter = true

# 显示系统信息
show_uptime = true

# 显示磁盘IO
show_disk_io = true

# 显示网络IO
show_net_io = true

# 网络界面
net_iface = ""

# 磁盘过滤
disk_filter = ""

# 日志级别
log_level = "WARNING"

高级配置

# 自定义过滤器
cpu_filter = "average"

# 自定义排序
custom_cpu_name = ""

# 图形样式
graph_symbol_cpu = "braille"
graph_symbol_mem = "braille"
graph_symbol_net = "braille"
graph_symbol_proc = "braille"

# 颜色主题覆盖
# 可以覆盖特定颜色
# theme[main_bg] = "#1e1e2e"

5.7 高级功能

5.7.1 树状视图

# 按t切换树状视图
# 显示进程的父子关系

# 树状视图中的操作
# Space - 折叠/展开
# c - 标记子进程

树状视图示例:

▼ systemd (PID: 1)
  ├─ systemd-journald (PID: 567)
  ├─ systemd-udevd (PID: 678)
  ├─ nginx (PID: 1234)
  │   ├─ nginx (PID: 1235)
  │   └─ nginx (PID: 1236)
  └─ mysqld (PID: 5678)
      ├─ {mysqld} (PID: 5679)
      └─ {mysqld} (PID: 5680)

5.7.2 环境变量查看

# 选择进程 → 按e
# 显示进程的环境变量

# 示例输出
HOME=/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
LANG=en_US.UTF-8

5.7.3 打开文件查看

# 选择进程 → 按l
# 显示进程打开的文件

# 示例输出
COMMAND  PID  USER   FD   TYPE  DEVICE  SIZE/OFF  NODE  NAME
nginx   1234  root  cwd   DIR   253,0      4096     2  /
nginx   1234  root    0r  CHR     1,3        0t0     6  /dev/null
nginx   1234  root    3u  IPv4  12345      0t0   TCP  *:80 (LISTEN)

5.7.4 进程过滤

# 按/进入过滤模式
# 输入过滤关键词
# 只显示匹配的进程

# 清除过滤
# 按Escape

5.7.5 温度监控

# 需要安装lm-sensors
sudo apt install lm-sensors

# 配置传感器
sudo sensors-detect

# 重启btop
btop

# 温度会显示在CPU面板

5.8 性能指标解读

CPU指标

指标含义正常范围
Total总使用率<70%
User用户空间<60%
System内核空间<20%
Idle空闲率>30%
IOWaitIO等待<20%
Temperature温度<80°C

内存指标

指标含义正常范围
Used已使用<80%
Cached缓存正常(可回收)
Free空闲>10%
Swap Used交换使用0%

磁盘指标

指标含义正常范围
Used空间使用<80%
Read读速率取决于磁盘
Write写速率取决于磁盘

网络指标

指标含义说明
Download下载速率当前下行带宽
Upload上传速率当前上行带宽
Total Received总接收启动以来的总下载
Total Sent总发送启动以来的总上传

5.9 实战场景

场景1:快速识别资源消耗大户

# 启动btop
btop

# 进入进程面板(按5)
# 按Shift+P按CPU排序
# 或按Shift+M按内存排序

# 找到消耗最高的进程
# 按k可以终止进程

场景2:监控系统温度

# 安装传感器
sudo apt install lm-sensors
sudo sensors-detect

# 启动btop
btop

# 查看CPU面板的温度显示
# 如果温度>80°C,需要关注散热

场景3:分析网络流量

# 启动btop
btop

# 进入网络面板(按4)
# 查看实时流量

# 如果流量异常高
# 进入进程面板查看哪个进程在消耗网络

场景4:长期监控

# 修改更新频率
nano ~/.config/btop/btop.conf

# 设置较长的更新间隔(毫秒)
update_ms = 5000

# 或者使用脚本记录
btop --tty_on > /tmp/btop_output &

场景5:美化终端

# 切换主题
# 按M打开主题菜单

# 推荐主题
# - Dracula: 紫色调,适合开发
# - Nord: 蓝绿色调,护眼
# - Tokyo Night: 东京夜色

# 自定义主题
# 编辑~/.config/btop/themes/MyTheme.theme

5.10 命令行参数

常用参数

# 基本启动
btop

# 指定主题
btop -t Dracula

# 指定更新间隔(毫秒)
btop -d 5000

# 指定配置文件
btop -c /path/to/btop.conf

# 显示帮助
btop -h

# 显示版本
btop -v

高级参数

# 无颜色输出
btop --no-color

# 禁用某些面板
btop --no-gpu
btop --no-temp
btop --no-battery

5.11 故障排查

问题1:btop启动报错

# 检查版本
btop --version

# 检查终端支持
echo $TERM

# 尝试无颜色模式
btop --no-color

# 查看日志
~/.config/btop/btop.log

问题2:温度不显示

# 安装lm-sensors
sudo apt install lm-sensors

# 检测传感器
sudo sensors-detect

# 测试传感器
sensors

# 重启btop
btop

问题3:图形显示异常

# 检查终端是否支持Unicode
locale

# 尝试不同的图形符号
# 编辑配置
nano ~/.config/btop/btop.conf

# 修改graph_symbol
graph_symbol = "tty"

# 或
graph_symbol = "block"

问题4:资源消耗高

# 增加更新间隔
nano ~/.config/btop/btop.conf

# 设置更长的间隔
update_ms = 5000

# 禁用不需要的功能
check_temp = false
show_battery = false

5.12 与其他工具集成

btop + tmux

# 在tmux中使用btop
tmux new-session -d -s monitor 'btop'

# 分屏显示
tmux split-window -h 'htop'
tmux split-window -v 'watch -n 1 df -h'

btop + SSH

# SSH远程监控
ssh user@server btop

# 或者使用Mosh(更稳定)
mosh user@server btop

btop + Docker

# 在Docker容器中运行btop
docker run -it --rm \
  --pid=host \
  --privileged \
  -v /proc:/proc:ro \
  -v /sys:/sys:ro \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  nicolargo/glances

5.13 扩展阅读

5.14 快捷键速查卡

┌──────────────────────────────────────────────────┐
│                 btop 快捷键速查卡                  │
├──────────────────────────────────────────────────┤
│  面板        │  操作        │  显示              │
│  1-5 切换   │  k  终止进程 │  m  菜单           │
│  ←→ 切换    │  s  终止标记 │  t  树状视图       │
│  Enter 进程 │  Space 标记  │  T  温度单位       │
├──────────────────────────────────────────────────┤
│  排序        │  过滤        │  设置              │
│  Shift+P CPU │  /  过滤    │  M  主题           │
│  Shift+M 内存│  Escape 清除│  O  选项           │
│  Shift+N PID │  c  路径    │  ?  帮助           │
└──────────────────────────────────────────────────┘

5.15 本章小结

本章详细介绍了btop的使用:

  1. 安装配置: 多种安装方式、配置文件详解
  2. 界面详解: CPU、内存、磁盘、网络、进程面板
  3. 快捷键: 完整的快捷键参考
  4. 主题配置: 内置主题、自定义主题
  5. 高级功能: 树状视图、环境变量、文件查看
  6. 性能指标: 各指标含义和正常范围
  7. 实战场景: 资源监控、温度监控、网络分析

btop是现代终端监控的首选工具,美观且功能强大,推荐日常使用。


上一章: 第4章:atop详解 下一章: 第6章:iftop详解