btop Command in Linux: Monitor System Resources

When a server feels slow, the first minutes are often spent juggling tools: top for processes, free for memory, and separate commands for network and disk activity. btop puts these metrics on one screen, with live graphs for CPU, memory, disks, and network traffic alongside a filterable process list. It is the C++ continuation of the bashtop and bpytop resource monitors.
This guide explains how to install btop, read its dashboard, manage processes from it, and adjust its configuration.
Installing btop
btop is available from the package repositories of current Ubuntu, Debian, Fedora, RHEL-based, and Arch Linux releases.
On Ubuntu, Debian, and Derivatives, install it with apt:
sudo apt install btopOn Fedora, RHEL, and Derivatives, use dnf. Fedora provides the package directly:
sudo dnf install btopOn RHEL, Rocky Linux, and AlmaLinux, enable the EPEL repository before installing btop:
sudo dnf install epel-release
sudo dnf install btopOn Arch Linux, install the package with pacman:
sudo pacman -S btopVerify the installation with the version option:
btop --versionbtop Syntax
The btop command accepts the following general syntax:
btop [OPTIONS]Run it without options to open the interactive dashboard:
btopUse the built-in help to see the options supported by your installed version:
btop --helpThe options you will use most often are:
--low-color- Disable truecolor and convert to 256 colors.-t- Force TTY mode with 16 colors and tty-friendly graph symbols.-p <id>- Start with one of the saved presets, 0 through 9.--version- Print the installed version.
Short option names changed in btop 1.4.2, so prefer the long forms above when you write scripts or aliases that must work across distributions.
Reading the Dashboard
The screen is divided into four boxes. The top box graphs per-core CPU usage along with frequency, temperature (when sensors are available), load average, and uptime. The left box covers memory and disks: used, available, and cached memory, plus usage and I/O activity for each mounted filesystem. The right box graphs network download and upload per interface. The bottom box is the process list.
Everything is live and mouse-aware: you can click a process to select it, click column headers to change sorting, and scroll the list with the wheel. The same navigation works from the keyboard. Press 1 to toggle the CPU box, 2 for memory and disks, 3 for network, and 4 for processes.
In the process list, memory usage is based on resident memory. By default, CPU usage is shown as a share of the machine’s total CPU capacity. Press c to switch to per-core scaling, where 100% represents one fully used core and a multithreaded process can exceed 100%. For more detail on the underlying numbers, see the free
command for memory and the load discussion in our top command guide
.
Working with the Process List
The process list supports keyboard and mouse navigation. These keys cover the most common tasks:
- Up and Down arrows select a process; Enter opens a detail view with its own CPU and memory graphs for the selected process.
for/starts a filter. Type part of a process name and press Enter to keep only matching rows. Press Delete after leaving the filter editor to clear the active filter; Esc cancels an edit and restores the previous filter.etoggles tree view, showing parent-child relationships so you can see what started a process.- Left and Right arrows change the sort column (CPU, memory, PID, and so on), and
rreverses the order.
Filtering plus the detail view covers the “what is eating this machine” workflow: filter to the suspect, Enter to watch its graphs, and you have a per-process monitor without leaving the dashboard.
Managing Processes
With a process selected, three keys open signal actions:
topens a confirmation prompt forSIGTERM, the normal termination request.kopens a confirmation prompt forSIGKILL, which stops the process immediately.sopens a menu of all signals, for cases likeSIGHUPorSIGSTOP.
SIGTERM first and wait for the process to exit. SIGKILL does not let the process save data or run cleanup handlers, so use it only when the process ignores SIGTERM.You can signal processes owned by your user. Run sudo btop only when you need to manage a process owned by another account, and confirm the selected PID before sending a signal.
Options and Themes
Press F2 or o to open the options screen directly. You can change the update interval, visible boxes, temperature units, network interface, and color theme from this menu. Press Esc for the main menu or q to quit.
When $XDG_CONFIG_HOME is set, btop stores its settings in $XDG_CONFIG_HOME/btop/btop.conf. Otherwise, it uses ~/.config/btop/btop.conf. The file is plain text and can also be edited directly:
color_theme = "tokyo-night"
theme_background = False
update_ms = 2000
shown_boxes = "cpu mem net proc"Setting theme_background = False makes btop use your terminal’s background. The 2000 ms update interval is the upstream default and provides steadier graph samples than a very short interval.
Distribution packages usually place system themes in /usr/share/btop/themes, while source installations may use /usr/local/share/btop/themes. Put additional themes in $XDG_CONFIG_HOME/btop/themes or ~/.config/btop/themes to make them available in the picker.
GPU panels appear only when the btop binary was built with GPU support and the required driver libraries are available. On Linux x86_64, upstream supports NVIDIA and AMD GPUs and Intel integrated GPUs, but the exact support depends on how your distribution packaged btop.
Quick Reference
| Key or Command | Action |
|---|---|
btop | Open the resource dashboard |
btop --help | Show options supported by the installed version |
btop --version | Show the installed version |
btop -p 1 | Start with preset 1 |
btop -t | Start in 16-color TTY mode |
btop --low-color | Start in 256-color mode |
1 / 2 / 3 / 4 | Toggle the CPU, memory, network, or process box |
| Up / Down | Select a process |
| Enter | Open or close details for the selected process |
| Space | Expand or collapse the selected process in tree view |
f or / | Edit the process filter |
| Delete | Clear the active process filter |
| Left / Right | Change the process sort column |
r | Reverse the process sort order |
e | Toggle process tree view |
c | Toggle per-core process CPU percentages |
t / k / s | Open SIGTERM, SIGKILL, or signal selection actions |
+ / - | Add or subtract 100 ms from the update timer |
F2 or o | Open options |
h | Show the help window |
| Esc | Toggle the main menu |
q | Quit btop |
Troubleshooting
The interface renders as broken boxes or stray charactersbtop needs a UTF-8 locale and a font with Braille, geometric shape, and box-drawing characters. Fix the locale or font first. The flag that bypasses locale detection was renamed in btop 1.4.2. Version 1.4.2 and newer accept btop --force-utf, while 1.4.1 and earlier, including the packages in Ubuntu 24.04 and Debian 13, accept btop --utf-force. Run btop --help to confirm which form your version accepts. TTY mode is another fallback for limited terminals:
btop -tNo temperatures are shown
On Linux, btop reads sensor data through the kernel’s hwmon interface. Check whether the sensors command reports a CPU temperature, then select the correct sensor under Options > CPU if automatic detection chose the wrong one. If the kernel module for your hardware is missing, install lm-sensors and run sudo sensors-detect. Virtual machines usually do not expose hardware temperature sensors.
Colors look wrong or washed out
Try 256-color mode when the terminal does not render truecolor correctly:
btop --low-colorFor a basic console or a terminal with limited character support, use btop -t instead.
Sending a signal returns an insufficient permissions error
Your user can normally signal only its own processes. Exit and restart with sudo btop if you must manage a system process, then verify the process name and PID before confirming the signal.
Conclusion
btop combines CPU, memory, disk, network, and process monitoring in one interactive terminal view. Keep top
as the widely available fallback, or use htop
when you want a process-focused interface with fewer system-wide graphs.
Tags
Linuxize Weekly Newsletter
A quick weekly roundup of new tutorials, news, and tips.
About the authors

Dejan Panovski
Dejan Panovski is the founder of Linuxize, an RHCSA-certified Linux system administrator and DevOps engineer based in Skopje, Macedonia. Author of 1000+ Linux tutorials with 20+ years of experience turning complex Linux tasks into clear, reliable guides.
View author page