Monitoring system health on Linux servers and developer workstations has traditionally relied on utilities like top and htop. While functional, legacy tools lack granular per-core CPU frequency scaling graphs, modern GPU sensor integration, automated disk I/O metrics, and customisable responsive layouts capable of scaling cleanly across terminal window resizes.
The btop utility (the modern C++ reimplementation of bashtop and bpytop) delivers a resource-efficient, visually rich terminal monitor. Featuring full mouse click support, responsive UI panels, detailed per-process memory maps, live network bandwidth graphs, and GPU monitoring for NVIDIA, AMD, and Intel hardware, btop provides instant diagnostic visibility directly within the Linux terminal.
Installing btop on Linux Distributions
Because btop is compiled in native C++, it offers low CPU overhead and is packaged across modern repositories:
- On Ubuntu (22.04 LTS and later) and Debian:
sudo apt update && sudo apt install -y btop
- On Fedora, RHEL 9, and Rocky Linux:
sudo dnf install -y btop
- On Arch Linux and Manjaro:
sudo pacman -S btop
- Via Snap on older distributions:
sudo snap install btop
Launching and Navigating the btop Interface
To start monitoring your system, execute the command:
btop
The interface renders four primary modular panels:
- CPU Box: Shows per-core clock frequencies, temperatures, load percentages, and real-time history graphs.
- Memory Box: Displays RAM utilisation, cached buffers, available free memory, and swap space consumption.
- Disks Box: Shows filesystem mount points, total versus used gigabytes, and real-time read/write I/O velocity.
- Processes Box: Lists active processes with PID, user, CPU usage, memory consumption, and thread count.
Using Mouse Navigation and Keyboard Controls
Unlike traditional CLI tools, btop natively supports mouse interactions inside compatible terminal emulators:
- Clicking Panels: Click any header or button to trigger actions directly.
- Scrolling: Scroll the mouse wheel inside the process list to navigate through hundreds of running threads.
- h Key: Displays the comprehensive built-in help and keybinding reference.
- m Key: Toggles the display mode of the CPU box between detailed graphs and compact mini-bars.
- p Key: Toggles process tree grouping, organising child processes beneath their parent daemons.
- q Key: Quits
btop.
Filtering, Searching, and Terminating Processes
To locate rogue processes consuming excessive CPU or RAM:
- Press f (or click the Filter button at the top of the process list).
- Type a process name or keyword (for example,
nginxorpython). - The process list updates instantly to show only matching entries.
- Use the arrow keys to select a frozen or unresponsive process.
- Press t to send a gentle termination signal (
SIGTERM), or press k to force-kill the process immediately (SIGKILL).
Customising Themes and Low-Overhead Operation
To adjust visual styling and performance parameters:
- Press Esc to open the master Options menu.
- Navigate to Options using the arrow keys and press Enter.
- Browse themes (such as nord, gruvbox, tokyo-night, or monokai).
- Adjust Update timer: Set the polling interval from 100 ms up to 2,000 ms to reduce CPU cycles on resource-constrained virtual machines.
- Press Esc again to save parameters and resume real-time monitoring.