Terminal-based system monitoring has evolved significantly since the early days of monochromatic top. While htop brought mouse support and colour bars, modern multi-core workstations and cloud servers demand deeper, real-time insight into hardware telemetry—including per-core CPU frequencies, GPU utilisation, disk read/write bandwidth, and process tree hierarchies.
btop (and its C++ implementation btop++) is an open-source, resource-efficient system monitor featuring a stunning terminal user interface (TUI). It provides responsive graph visualisations, full mouse support, customizable themes, and granular process management without requiring a heavy graphical desktop environment. This guide covers how to install, navigate, and customise btop across Linux distributions.
Key Features of btop
- Real-Time Hardware Graphs: Auto-scaling graphs for CPU, RAM, Swap, Disks, and Network interfaces.
- Per-Core Temperature and Clock Speeds: Tracks physical core temperatures and dynamic frequencies.
- Process Tree Navigation: Sort, filter, and terminate processes with interactive search and signal menus.
- GPU Telemetry: Supports NVIDIA and Intel GPU monitoring directly inside the main dashboard.
- Zero Desktop Dependencies: Operates entirely within SSH terminal sessions.
Installing btop on Linux
Method 1: Distribution Package Managers
# Ubuntu 22.04+ / Debian 12+
sudo apt update && sudo apt install -y btop
# Fedora / Rocky Linux / RHEL 9
sudo dnf install -y btop
# Arch Linux / Manjaro
sudo pacman -S btop
Method 2: Static Pre-Compiled Binary (Universal)
If running an older distribution without native packages:
curl -s https://api.github.com/repos/aristocratos/btop/releases/latest | grep "browser_download_url.*x86_64.*.tbz" | cut -d : -f 2,3 | tr -d \" | wget -qi -
tar -xvf btop-*.tbz
cd btop
sudo make install
Navigating the btop Interface
Launch the monitor by typing btop in your terminal:
btop
Essential Keyboard Shortcuts
| Keybinding | Triggered Action | Workflow Benefit |
|---|---|---|
| h or Esc | Opens the Main Menu | Access settings, options, and help overlays. |
| m | Cycles through view presets | Quickly toggle between compact, standard, and full dashboard views. |
| f | Interactive Process Filter | Type process names (e.g. nginx) to isolate matching PID trees. |
| k | Send Termination Signal | Sends SIGTERM or opens the signal selection menu (SIGKILL, SIGHUP). |
| 1, 2, 3, 4 | Toggle Dashboard Panels | Toggle CPU (1), Mem (2), Disks (3), or Proc (4) panels individually. |
Customising Themes and Layouts
Press Esc and select Options to adjust settings interactively:
- Color Themes: Switch between bundled palettes including Gruvbox, Tokyo Night, Dracula, and Nord.
- Update Frequency: Set polling intervals between 100ms and 5000ms (default is 2000ms for balanced CPU overhead).
- Low-Power Mode: Disables animated graphs during remote battery-powered laptop SSH sessions.