htop 用了多久?五年?十年?它很好,但 2026 年了,有些東西該換了。

bottom(指令是 btm)是一個用 Rust 寫的跨平台終端機系統監控工具。CPU、記憶體、網路、磁碟、溫度、GPU、電池——全部塞進一個 TUI 裡面,而且有圖表。不是那種 ASCII 湊合的圖表,是真的能看趨勢的曲線圖。


裝起來

macOS 用 Homebrew 最快:

1
brew install bottom

Linux 看你的 distro:

1
2
3
4
5
6
7
8
# Arch
sudo pacman -S bottom

# Debian / Ubuntu
sudo dpkg -i bottom_x.x.x_amd64.deb

# Fedora
sudo dnf copr enable atim/bottom && sudo dnf install bottom

Windows 也有:

1
winget install bottom

跨平台通用的方式——用 Cargo 直接編譯:

1
cargo install bottom --locked

裝完之後打 btm 就能跑。


跟 htop 差在哪

打開 btm,第一眼就知道差異:它有即時圖表。CPU 使用率不再只是一個數字或一排方塊,而是一條會動的折線圖。記憶體、網路 I/O 也是。你可以直接從圖表的走勢判斷「三分鐘前發生了什麼事」,不用再去翻 log。

程序管理的部分也更強。按 tF5 切到樹狀模式,父子程序的關係一目了然。按 Tab 可以把同名程序群組化。搜尋支援 regex 和條件過濾:

1
2
3
4
cpu > 50                           # CPU 使用率超過 50%
mem > 500MB # 吃超過 500MB 記憶體
user = root AND state = running # root 跑的程序
(chrome OR firefox) AND cpu > 10 # 瀏覽器吃 CPU 的

這搜尋語法有夠實用。以前在 htop 裡面要找「哪個程序吃超過 500MB 記憶體」,得自己排序然後用眼睛掃。現在一行搞定。


快捷鍵備忘

全域操作:

按鍵 功能
q / Ctrl+c 離開
e 全螢幕展開目前的 widget
f 凍結數據(拍快照用)
? 幫助選單

程序操作:

按鍵 功能
c / m / n / p 依 CPU / 記憶體 / 名稱 / PID 排序
t / F5 切換樹狀模式
d+d / F9 終止程序
/ 搜尋

導航用 vim 風格的 H/J/K/L 在不同 widget 之間跳,上下移動用 j/k。Vim 使用者直接上手,零學習成本。


自訂佈局

設定檔放在 ~/.config/bottom/bottom.toml(macOS 和 Linux 都是),Windows 在 %APPDATA%\bottom\bottom.toml

內建三個主題:defaultnordgruvbox,各有 light 版本。但真正好玩的是自訂佈局:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[[row]]
[[row.child]]
type = "cpu"

[[row]]
ratio = 2
[[row.child]]
ratio = 4
type = "mem"
[[row.child]]
ratio = 3
[[row.child.child]]
type = "temp"
[[row.child.child]]
type = "disk"

你可以決定哪些 widget 出現在哪裡、佔多大比例。筆電加個 batt widget 看電池、伺服器只留 cpunet——每台機器一套配置。


幾個實用場景

追蹤記憶體洩漏:開著 btm,盯記憶體圖表的走勢。正常的服務記憶體應該是平的或鋸齒狀(GC 回收),如果持續往上爬就是有鬼。搭配 mem > 500MB 搜尋,直接鎖定嫌疑犯。

SSH 到遠端伺服器btm --basic --read_only--basic 關掉圖表省頻寬,--read_only 防止手滑殺掉程序。穩。

ML 訓練監控:支援 NVIDIA 和 AMD GPU 監控。訓練的時候開一個 btm,GPU 使用率、顯存、溫度全部看得到。

凍結功能拍快照:按 f 凍結數據更新,這時候的畫面就是一個瞬間快照。debug 效能問題的時候,先凍結、慢慢看,比截圖方便。


常用啟動指令

1
2
3
4
5
6
7
btm                          # 預設啟動
btm --basic # 簡約模式,類似 htop
btm --tree # 預設樹狀程序檢視
btm --theme gruvbox # 換主題
btm --rate 500ms # 刷新間隔改 500ms
btm --battery # 顯示電池
btm --process_command # 顯示完整指令路徑

Rust 寫的工具有個共同特點:快。btm 的 CPU 佔用幾乎感覺不到,啟動也是瞬間的事。跟那些用 Python 寫的監控工具比起來(對,說的就是你 glances),資源消耗差了一個量級。

GitHub 上 12k+ stars,活躍維護中。如果你還在用 top,跳過 htop 直接裝 btm 吧。

GitHub: https://github.com/ClementTsang/bottom
官方文件: https://bottom.pages.dev