If you have ever used the top or htop command on Ubuntu Linux to monitor system resources, you know they get the job done but look dated. The interface is dense, colour-coded in a way that can be difficult to read, and navigating processes requires memorising keyboard shortcuts.
btop is a modern, feature-rich terminal-based system monitor that replaces both top and htop. It provides a visually stunning dashboard showing CPU usage, memory consumption, disk I/O, network traffic, and running processes — all in a single, well-organised terminal interface with mouse support, smooth animations, and an intuitive layout.
Why btop Is Better Than htop
While htop has been the go-to system monitor for years, btop improves on it in several meaningful ways:
- Visual design: btop uses box-drawing characters and a carefully designed colour scheme to create graphs, charts, and panels that are genuinely easy to read at a glance.
- CPU history graphs: Each CPU core gets its own real-time usage graph showing activity over time, not just a percentage bar.
- Network monitoring: Built-in upload and download speed graphs are displayed in a dedicated panel. htop does not show network traffic at all.
- Disk I/O monitoring: Real-time read and write speeds for all mounted disks.
- Mouse support: You can click on processes, scroll through lists, and interact with the interface using your mouse — no keyboard shortcuts required.
- Battery status: On laptops, btop displays the current battery level and charging status directly in the interface.
- Fully customisable: Themes, layouts, and display options can be changed through an in-app settings menu.
How to Install btop on Ubuntu
btop is available in the default Ubuntu repositories from Ubuntu 22.04 onwards. To install it:
sudo apt update && sudo apt install btop
On older Ubuntu versions (20.04 or earlier), you can install it from the snap store instead:
sudo snap install btop
Once installed, launch it by typing:
btop
The interface will appear immediately, filling your terminal window with real-time system information.
Understanding the btop Dashboard
The btop interface is divided into several panels, each showing different system metrics:
CPU Panel (Top)
The CPU panel shows a graph for each CPU core with a rolling history of usage over time. Below the graphs, you can see the overall CPU usage percentage, CPU temperature (if supported by your hardware), and the current clock speed. This panel makes it easy to spot sudden spikes in CPU usage and identify whether the load is spread across all cores or concentrated on a single core.
Memory and Swap Panel
This panel displays total RAM, used RAM, cached memory, and swap usage. A visual bar shows how close you are to running out of memory. If your system starts using swap heavily (which slows everything down because swap uses disk storage instead of RAM), you will see this immediately.
Network Panel
The network panel shows real-time upload and download speeds with historical graphs. This is invaluable for diagnosing bandwidth problems, monitoring background downloads, or checking whether a specific process is consuming excessive network resources.
Disk Panel
Shows read and write speeds for all mounted storage devices. If your system feels sluggish and the CPU and RAM usage look normal, the disk panel might reveal that a background process is performing heavy disk I/O, which is a common cause of system slowdowns.
Process List (Bottom)
The process list shows all running processes with columns for PID, user, CPU usage, memory usage, and the command name. You can sort by any column by clicking on the column header or pressing the corresponding keyboard shortcut. The currently selected process is highlighted, and you can send signals to it (like kill or terminate) directly from the interface.
Managing Processes in btop
To kill a runaway process:
- Use the arrow keys or mouse to select the process in the list.
- Press Enter to open the process actions menu.
- Select the signal you want to send. The most common options are:
- SIGTERM (15) — Politely asks the process to shut down. The process can perform cleanup before exiting.
- SIGKILL (9) — Immediately forces the process to stop. Use this when SIGTERM does not work.
You can also filter the process list by typing a search term. Press f to open the filter, type the process name (for example, “firefox”), and the list will show only matching processes.
Customising btop’s Appearance
Press Esc to open the settings menu. From here, you can:
- Change the colour theme: btop includes several built-in themes. Popular options include the default theme, a minimal greyscale theme, and high-contrast themes for better readability.
- Adjust the update interval: By default, btop refreshes every 2 seconds. You can increase this to reduce CPU overhead on low-powered devices, or decrease it for more responsive monitoring.
- Toggle panels on or off: If you only care about CPU and processes, you can hide the network and disk panels to give more space to the information you need.
- Change the process tree view: Switch between a flat list and a tree view that shows parent-child relationships between processes. The tree view is useful for understanding which processes spawned which child processes.
Using btop Over SSH
btop works perfectly over SSH connections, making it an excellent tool for monitoring remote servers. Simply SSH into your server and run btop. The interface will render in your local terminal, and all the graphical elements (including the CPU graphs and coloured panels) will display correctly as long as your terminal emulator supports UTF-8 and 256 colours.
Most modern terminal emulators (GNOME Terminal, Konsole, iTerm2, Windows Terminal) support this out of the box.
btop vs Other System Monitors
| Feature | top | htop | btop |
|---|---|---|---|
| CPU history graphs | No | Bars only | Full graphs |
| Network monitoring | No | No | Yes |
| Disk I/O monitoring | No | No | Yes |
| Mouse support | No | Yes | Yes |
| Battery status | No | No | Yes |
| Themes | No | Limited | Multiple |
| Process tree view | No | Yes | Yes |
| Visual design | Basic | Good | Excellent |
btop is not the only modern system monitor available (alternatives include glances and bpytop), but it offers the best balance of visual design, feature completeness, and low resource usage.
Setting btop as Your Default System Monitor
If you want to use btop every time you would normally use top or htop, you can create a shell alias. Open your ~/.bashrc file:
nano ~/.bashrc
Add the following line at the end:
alias htop='btop'
Save the file and reload it:
source ~/.bashrc
Now, whenever you type htop, btop will launch instead. This is particularly useful if your muscle memory is trained to type htop but you want the superior btop experience.
Once you try btop, going back to htop feels like downgrading from a modern dashboard to a 1990s text display. It is one of the best terminal tools available for Ubuntu Linux users who need to keep an eye on their system resources.