bottom
> bottom — 一个跨平台的终端进程监控工具,帮你直观看清系统资源占用和进程状态。
如果你跟我一样,经常在终端里折腾,免不了要跟 `top`、`htop` 打交道。但说实话,这些老牌工具虽然经典,用久了总觉得有点“糙”——界面挤在一起,颜色单调,想看个磁盘IO还得切视图。直到我遇到了 **bottom**,一个用 Rust 写的系统监控工具,颜值在线,信息密度还超高,直接让我把 `htop` 扔进了冷宫。
### 它到底能干啥?
bottom 解决的核心问题很简单:**在终端里,用最直观的方式看清你的电脑在干嘛**。它不止是进程列表,而是把 CPU、内存、磁盘、网络、温度、进程、甚至 GPU 信息(如果支持)全塞进一个 TUI(终端用户界面)里,而且布局可以随意拖拽调整。你可以把它理解成一个“终端版的 Activity Monitor”或“资源监视器”,但比它们更轻、更快、更可定制。
用过 `top` 的人都知道,想看磁盘读写速度?得按 `d` 切视图。想看网络流量?再按 `n`。而 bottom 默认就把这些面板平铺在你眼前,一目了然。对于开发者来说,排查性能问题、定位内存泄漏、观察磁盘瓶颈,它都能快速给出反馈。
### 下载方式
官方提供了多种安装途径,最靠谱的是去 GitHub Releases 页面下载二进制包,或者用包管理器。
[官网下载页](https://github.com/ClementTsang/bottom/releases)
[项目主页](https://github.com/ClementTsang/bottom)
### 安装方法
根据你的操作系统,挑一个顺手的方式就行:
**macOS**
用 Homebrew 最省事:
```bash
brew install bottom
```
**Linux**
如果是 Debian/Ubuntu 系,可以用 apt 添加官方仓库(推荐),或者直接下载 deb 包:
```bash
# 添加仓库(如果系统支持)
curl -s https://packagecloud.io/install/repositories/clementtsang/bottom/script.deb.sh | sudo bash
sudo apt install bottom
```
Arch Linux 用户直接:
```bash
sudo pacman -S bottom
```
**Windows**
用 Scoop 或 Chocolatey 都行:
```bash
scoop install bottom
# 或
choco install bottom
```
也可以直接去 [Releases 页面](https://github.com/ClementTsang/bottom/releases) 下载 `.exe` 或 `.msi` 安装包。
**编译安装(如果你爱折腾)**
确保有 Rust 环境,然后:
```bash
cargo install bottom
```
### 基础使用教程
装好之后,终端输入 `btm` 回车,你就能看到默认界面——一个分屏仪表盘。按 `?` 键可以调出帮助菜单,但核心操作其实就几个:
- **鼠标拖拽**:直接用鼠标拖动面板边框,调整每个区域的大小。比如你觉得磁盘图表太小,拖一下就行。
- **快捷键**:
- `q` 退出
- `1` 到 `4` 切换不同布局预设(比如只显示进程、只显示图表)
- `e` 展开/收起进程树
- `f` 搜索进程(输入名字快速定位)
- `t` 按 CPU 使用率排序,`m` 按内存排序
- **导航**:用方向键或 `Tab` 在面板间切换,选中进程后按 `Enter` 可以查看该进程的详细信息(打开的文件、环境变量等)。
默认视图从左到右是:CPU/内存/网络折线图 → 磁盘读写柱状图 → 进程列表 → 温度/风扇转速。如果你觉得信息太多,按 `2` 切到“精简模式”,只保留进程列表和基础图表。
**一个实用场景**:你发现电脑风扇狂转,想找出是谁在吃 CPU。打开 `btm`,按 `t` 按 CPU 排序,瞬间看到是某个 Node 进程占满了一个核。选中它按 `Enter`,能看到它打开的文件和网络连接,甚至可以直接 `kill` 它(按 `k` 然后输入信号,比如 9 强制结束)。
### 进阶技巧
用顺手之后,你会发现 bottom 的配置能力才是它的精髓。配置文件默认在 `~/.config/bottom/bottom.toml`(Linux/macOS)或 `%APPDATA%\bottom\bottom.toml`(Windows)。如果文件不存在,手动创建就行。
**1. 自定义颜色主题**
我不喜欢默认的蓝色调,改成“gruvbox”风格:
```toml
[colors]
table_header_color = "#fabd2f"
selected_text_color = "#fb4934"
cpu_color = "#83a598"
memory_color = "#8ec07c"
```
你可以在官方文档里找到所有可配置的颜色键。
**2. 隐藏不需要的面板**
如果你只关心 CPU 和进程,别的面板都关掉:
```toml
[widgets]
disk_usage = false
temperature = false
network = false
```
这样启动后界面干净得像定制版。
**3. 设置刷新间隔**
默认 1 秒刷新一次,太频繁时可以用:
```toml
[flags]
rate = 2000 # 改为 2 秒
```
**4. 命令行启动参数**
不想改配置文件?直接启动时传参:
```bash
btm --rate 2000 --color gruvbox --default_widget_type proc
```
这样启动后默认只显示进程列表,适合专注看某个进程。
**5. 远程监控(进阶玩法)**
如果你需要监控远程服务器,可以用 SSH + btm 的组合。在服务器上安装 bottom,然后本地终端:
```bash
ssh user@server -t 'btm --rate 500'
```
`-t` 参数强制分配伪终端,这样远程的 TUI 就能完美显示在本地。不过要注意网络延迟,刷新间隔设大一点(比如 2000ms)避免卡顿。
**6. 自定义快捷键**
在配置文件中可以重映射按键。比如我想把退出键改成 `Ctrl+Q`,防止误触:
```toml
[keybindings]
quit = "Ctrl+q"
```
### 最后说两句
bottom 是我最近一年用得最爽的终端工具之一,它把“监控”这件事做到了极致——快、好看、可塑性强。如果你还在用 `top` 或 `htop`,强烈建议花 5 分钟试试 `btm`,大概率会回不去。毕竟,写代码已经够累了,看个资源占用还不得养眼点?
对了,如果你有 NVIDIA 显卡,记得启动时加 `--enable-gpu` 参数,能看到 GPU 占用率和显存使用,对炼丹(深度学习)的同学特别有用。