🎯 重點摘要: btop 是一個強大的 terminal-based 資源監控工具,整合 CPU、記憶體、磁碟、網路與進程監控在一個介面:
① 支援 Linux、macOS 與 FreeBSD
② 即時監控 CPU、RAM、磁碟 IO、網路頻寬
③ 完整的快捷鍵系統與進程管理功能
④ 高度客製化的配置選項
對於 DevOps 工程師、系統管理員或效能調教愛好者來說,監控系統資源的需求再正常不過。傳統上我們會使用 top 或 htop 來查看進程資訊,但這些工具往往僅限於處理進程監控。
btop 則將 CPU、記憶體、磁碟 IO、網路流量與進程監控整合在一個直觀的界面中,提供更完整的系統概況。
1. 為什麼選擇 btop?
取代 top / htop 的新選擇
與 top 或 htop 相比,btop 的優勢在於:
- 全面的監控範圍:不只進程,還有 CPU 使用率、記憶體佔用、磁碟 IO、網路頻寶
- 即時圖形化顯示:使用 Braille 或 Block 符號顯示即時性能圖表
- 支援滑鼠操作:可以使用滑鼠點擊來選擇進程、排序欄位等
- 跨平台支援:Linux、macOS (通過 Homebrew) 和 FreeBSD 都支援
- 即插即用:無外部依賴,C++ 原生編譯效能極佳
2. 安裝教學
macOS 安裝 (Homebrew)
macOS 用戶可以透過 Homebrew 快速安裝:
brew install btop
Linux 安裝 (各發行版)
不同的 Linux 發行版有不同的套件管理器:
# Ubuntu / Debian
sudo apt install btop
# Fedora / RHEL 8+
sudo dnf install btop
# Arch Linux
sudo pacman -S btop
# openSUSE Tumbleweed
sudo zypper install btop
從原始碼編譯 (macOS)
如果你需要從源碼編譯 (例如使用最新功能):
brew install coreutils make gcc@11 lowdown
git clone https://github.com/aristocratos/btop.git
cd btop
git checkout OSX
gmake
設定權限 (Linux)
在 Linux 上,如果你需要監控 CPU 功耗或發送信號給其他用戶的進程,需要額外設定權限:
# 選項 1:設定延伸能力 (推薦)
sudo make setcap
# 選項 2:設定 SUID 位元
sudo make setuid
3. btop 介面概觀
btop 的界面主要由四個盒子組成,預設顯示在一個畫面中:
| 盒子 | 監控項目 | 描述 |
|---|---|---|
| CPU | CPU 使用率、溫度、頻率 | 顯示每核心使用情況與整體 CPU 圖表 |
| MEM | 記憶體、Swap 使用率 | 顯示 RAM 與 Swap 的即時佔用情況 |
| NET | 網路收發頻寬 | 即時顯示各網卡的上下行流量 |
| PROC | 進程列表 | 顯示所有進程,支援排序與樹狀顯示 |
4. 完整快捷鍵說明
btop 提供豐富的鍵盤快捷鍵來控制各種功能:
4.1 基本操作
| 按鍵 | 功能 |
|---|---|
| p | 循環切換佈局預設 |
| Shift + P | 反向循環切換佈局 |
| F2 或 o | 開啟設定選單 |
| F1 / ? / h | 顯示幫助 |
| q 或 Ctrl + C | 退出程式 |
| Ctrl + Z | 背景執行 (搬到背後) |
| Ctrl + R | 重新載入設定檔 |
4.2 盒子顯示控制
| 按鍵 | 功能 |
|---|---|
| 1 | 開關 CPU 盒子 |
| 2 | 開關 MEM 盒子 |
| 3 | 開關 NET 盒子 |
| 4 | 開關 PROC 盒子 |
| 5 | 開關 GPU 盒子 |
| d | 在 MEM 盒子切換磁碟 IO 視圖 |
4.3 進程管理
| 按鍵 | 功能 |
|---|---|
| ↑ / ↓ | 選擇進程 |
| Enter | 顯示進程詳細資訊 |
| t / k / s | 發送信號 (SIGTERM/SIGKILL/自選信號) |
| N | 設定 nice 值 |
| F | 追蹤選中進程 |
| e | 切換樹狀視圖 |
| E | 展開/折疊所有進程 |
| c | 切換每核心 CPU 使用率顯示 |
| r | 反轉排序順序 |
4.4 篩選與搜尋
| 按鍵 | 功能 |
|---|---|
| f 或 / | 進行進程篩選 (加上 ! 可使用 regex) |
| Delete | 清除篩選 |
| u | 暫停進程列表更新 |
4.5 網路監控
| 按鍵 | 功能 |
|---|---|
| b / n | 切換上一個/下一個網路裝置 |
| a | 切換網路圖表自動縮放 |
| y | 切換網路圖表同步縮放 |
| z | 重置當前網路裝置統計 |
| i | 切換磁碟 IO 大圖模式 |
5. 配置檔設定
btop 的設定檔位於:
$HOME/.config/btop/btop.conf或者你可以透過 F2 進入 UI 設定介面進行即時修改。
5.1 顯示相關設定
# 設定彩色主題,"Default" 和 "TTY" 為內建主題
# 自訂主題請放在 $HOME/.config/btop/themes/
color_theme = "Default"
# 是否顯示終端背景
theme_background = true
# 是否使用 24-bit 真彩
truecolor = true
# 強制 TTY 模式 (16 色)
force_tty = false
5.2 佈局與盒子設定
# 設定盒子佈局預設 (最多 9 個預設)
# 格式: "box_name:P:G" P=(0或1) 位置交換, G=圖形符號
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
# 設定要顯示的盒子 (最多支援 gpu0-gpu5)
shown_boxes = "cpu mem net proc"
# 更新頻率 (毫秒,建議 2000ms 或以上)
update_ms = 2000
5.3 進程顯示設定
# 進程排序方式
# "cpu lazy" = 穩定排序 (容易追蹤)
# "cpu direct" = 即時更新
proc_sorting = "cpu lazy"
# 反向排序
proc_reversed = false
# 樹狀顯示
proc_tree = false
# 在進程列表使用 CPU 顏色
proc_colors = true
# 記憶體顯示單位
proc_mem_bytes = true
# 每核心 CPU 使用率
proc_per_core = false
5.4 圖形符號設定
# 圖形符號選項: "braille" (高解析), "block" (中等), "tty" (低解析)
graph_symbol = "braille"
# 各盒子獨立設定圖形符號
graph_symbol_cpu = "default"
graph_symbol_mem = "default"
graph_symbol_net = "default"
graph_symbol_proc = "default"
5.5 進階功能
# Vim 鍵位模式 (h,j,k,l 方向控制)
vim_keys = false
# 圓角方框
rounded_corners = true
# 温度顯示
check_temp = true
temp_scale = "celsius"
# CPU 頻率顯示
show_cpu_freq = true
# 系統啟動時間
show_uptime = true
# 電池資訊 (筆電)
show_battery = true
6. 實用技巧與進階用法
6.1 監控特定進程
使用 Enter 選中進程後,可以查看更詳細的資訊,包括完整的命令行參數、開啟的檔案描述符、環境變數等。
6.2 Vim 鍵位模式
啟用 vim_keys 後,可以使用 h、j、k、l 進行方向控制,提升操作效率:
vim_keys = true
6.3 自訂圖形符號
如果你的終端不支援 Braille 符號,可以切換為 block 或 tty 模式:
# 使用 tty 模式 (適合低解析終端)
graph_symbol = "tty"
6.4 背景執行監控
可以使用 Ctrl + Z 將 btop 搬到背景執行,然後使用 fg 切回:
# btop 執行中按 Ctrl+Z
jobs # 查看背景工作
fg # 切回 btop
7. btop vs top vs htop 對比
| 功能 | top |
htop |
btop |
|---|---|---|---|
| CPU 圖表 | ✗ | ✗ | ✓ |
| 記憶體圖表 | ✗ | ✗ | ✓ |
| 網路監控 | ✗ | ✗ | ✓ |
| 磁碟 IO 監控 | ✗ | ✗ | ✓ |
| 滑鼠支援 | ✗ | ✓ | ✓ |
| 樹狀進程 | ✗ | ✓ | ✓ |
| 即時圖形 | ✗ | ✗ | ✓ |
| 跨平台 | ✗ | Linux only | ✓ (Linux/macOS/FreeBSD) |
| 客製化 | 有限 | 中等 | ✓ 豐富 |
8. 常見問題 FAQ
Q: btop 是否會影響系統效能?
一般情況不會。btop 是 C++ 原生編譯,使用非常少的資源。預設更新頻率為 2000ms,你可以調整 update_ms 來平衡即時性與效能。
Q: macOS 上的 btop 能看到 GPU 資訊嗎?
目前 macOS 版本的 btop 尚不支援 GPU 監控,GPU 盒子只在 Linux 中可用。
Q: 如何快速退出 btop?
按 q、Ctrl + C 或 Ctrl + Z 即可退出。
Q: 可以同時監控多台機器嗎?
btop 本身不支援遠端監控,但你可以使用 btop --ssh user@host 來透過 SSH 監控遠端機器。
總結
btop は top / htop 之後進化而來的工具,不僅提供完整的資源監控功能,還有即時的圖形化數據視覺化。
🚀 推薦: 如果你經常需要監控 Linux/macOS 伺服器或開發環境的效能,btop 是一個必備的終端工具。只需要brew install btop或sudo apt install btop就可以立即使用,無需複雜的配置。