什么是 bottom?
bottom(命令名为 btm)是一个终端图形化进程与系统监视器,用 Rust 编写,灵感来自 gtop、gotop 和 htop。默认情况下它就像一块仪表盘:CPU、内存、网络、磁盘、温度和进程等组件共享一个屏幕,每个组件都可以排序、缩放,或展开占满整个终端。
⚡ bottom 的主要功能
📈 实时图表
CPU(按核心或平均)、内存、网络吞吐、磁盘 I/O 和温度都以滚动图表呈现,可用 + 和 - 缩放。
🔍 进程搜索
/ 可过滤进程表,支持正则、全词匹配和大小写开关,并各有一个按键按 CPU、内存、PID 或名称排序。
🌲 树形模式
t 把进程表切换成树形视图,失控的子进程会显示在启动它的父进程之下,而不是孤零零地排在列表里。
🎛️ 自定义布局
配置文件描述行、列与各组件比例,让仪表盘只显示你真正关心的那四项,而不是默认的九个组件。
🎨 内置主题
--theme gruvbox、nord 及其浅色变体都内置在二进制文件中,每个元素的颜色都能在 bottom.toml 中覆盖。
🖥️ 基础模式
btm --basic 去掉图表,只留紧凑的数字读数,在慢速 SSH 连接或很小的 tmux 窗格里依然清晰。
apt upgrade 就能让你保持最新。
📦 从 deb.griffo.io 安装
第 1 步:添加仓库
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 有一个永久免费的镜像。 deb-free.griffo.io 永久免费提供软件包 — 无需账号、无需订阅,最多落后上游 2 个月,安全修复立即发布。目前收录 cliamp、Ghostty、lazydocker、Oh My Posh 和 Zed;bottom 不在其中,因此今天只能通过上面的仓库安装 — 提出请求即可将其加入。
🧩 关于 extrepo 选项。 extrepo 是 Debian 官方用于管理第三方仓库的工具:它会替你写好 sources 文件并安装签名密钥,并在使用前先对照签名元数据校验该密钥。本仓库以 griffo 之名登记其中,永久免费镜像则为 griffo-free,因此在 Debian(bookworm、trixie、forky、sid)上,上面的命令就是全部配置。
extrepo 只负责 sources 文件和密钥,订阅凭据仍然要写入 /etc/apt/auth.conf.d/deb.griffo.io.conf。Ubuntu 不在覆盖范围内,因为 extrepo 只发布 Debian 各套件的元数据:在 Ubuntu 上请使用 sudo 或 root 的命令。
第 2 步:安装 bottom
# 安装最新版 bottom
sudo apt install btm
# 验证安装
btm --version# 安装最新版 bottom
apt install btm
# 验证安装
btm --version第 3 步:首次运行与配置
# 启动仪表盘
btm
# 无图表的紧凑读数,适合小终端和慢速连接
btm --basic
# 指定配置文件:文件不存在时会以默认值创建
mkdir -p ~/.config/bottom
btm --config_location ~/.config/bottom/bottom.toml
# 手册页以及 bash、zsh 和 fish 补全都随软件包一起安装
man btm🎯 基本用法示例
日常监控:
# 完整仪表盘
btm
# 每秒刷新两次,保留十分钟历史
btm --rate 500ms --retention 10m
# 启动即进入进程组件,并直接展开
btm --default_widget_type proc --expanded
# 进程树,分组显示,并展示完整命令行
btm --tree --process_command仪表盘内的操作:
# 真正常用的按键
# ? 内置帮助,列出所有快捷键
# e 把所选组件展开到整个终端
# f 阅读时冻结画面
# + - = 放大、缩小或还原图表
# / 搜索进程表
# c m p n 按 CPU、内存、PID 或名称排序
# dd 结束所选进程
# t 切换进程树按机器调整:
# 使用华氏度、隐藏 CPU 平均行、用点状标记代替盲文字符
btm --fahrenheit --hide_avg_cpu --dot_marker
# 把缓存和缓冲区单列为一行内存
btm --enable_cache_memory
# 笔记本上的电池组件
btm --battery
# 与终端整体风格一致的配色主题
btm --theme gruvbox🔧 工具集成
bottom 天生适合以终端为中心的工作方式:
- 配置文件:
~/.config/bottom/bottom.toml把布局、组件比例、颜色和常用参数集中在一处 - 桌面入口:软件包会安装
bottom.desktop和图标,因此它也会作为系统监视器出现在应用菜单中 - tmux 与 Zellij:在狭窄的窗格中也很自在;窗格变小时用
--basic保持可读 - GPU:安装了驱动时,NVIDIA 和 AMD 的占用会显示在内存组件中,
--disable_gpu可关闭采集 - 服务器:amd64 版本为静态链接,全新的 Debian 或 Ubuntu 机器只需这个软件包
🚀 为什么选择 deb.griffo.io?
- 官方 Debian:有
btm,但冻结在好几个小版本之前——新组件、主题和传感器修复只能等下一个 Debian 发行版 - cargo install bottom:版本较新,但要编译好几分钟,装在 apt 之外,也不带手册页、补全和桌面入口
- 上游压缩包:官方二进制文件,但每次新版本都要手动重新下载
- deb.griffo.io:最新版本,并自动更新
- ✅ 最新组件:最新发布版本,包含官方源冻结之后上游新增的全部组件、主题和传感器修复
- ✅ 可直接替换 bottom:软件包以命令名
btm命名,并声明了对bottom的Provides/Replaces,可以顶替官方源中的那个包 - ✅ 自动更新:上游发布后数小时内更新软件包
- ✅ 完整软件包:上游二进制文件,加上
btm.1手册页、bash、zsh 和 fish 补全、桌面入口及图标 - ✅ 五种架构:amd64、arm64、armhf、i386 和 riscv64——笔记本、树莓派和 RISC-V 开发板上都是同一个监视器
- ✅ 多发行版:支持 Bookworm、Trixie、Forky 和 Sid
- ✅ 易于维护:使用标准 apt 命令即可更新
📦 软件包构建仓库
Debian 软件包在这个 GitHub 仓库中自动构建和维护:
- 📊 bottom-debian - 最新版本构建
🔗 相关软件包
deb.griffo.io 同样提供:
- Fastfetch - 一条命令看完系统信息
- lazydocker - 同样的终端风格,用来看 Docker 容器和镜像
- k9s - 同样的仪表盘思路,面向 Kubernetes 集群
- Zellij - 终端复用器,让 bottom 常驻某个窗格