btop Command in Linux: Monitor System Resources

By 

Published on

7 min read

btop terminal dashboard with CPU, memory, disk, network, and process monitoring panels

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:

Terminal
sudo apt install btop

On Fedora, RHEL, and Derivatives, use dnf. Fedora provides the package directly:

Terminal
sudo dnf install btop

On RHEL, Rocky Linux, and AlmaLinux, enable the EPEL repository before installing btop:

Terminal
sudo dnf install epel-release
sudo dnf install btop

On Arch Linux, install the package with pacman:

Terminal
sudo pacman -S btop

Verify the installation with the version option:

Terminal
btop --version

btop Syntax

The btop command accepts the following general syntax:

txt
btop [OPTIONS]

Run it without options to open the interactive dashboard:

Terminal
btop

Use the built-in help to see the options supported by your installed version:

Terminal
btop --help

The 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.
  • f or / 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.
  • e toggles 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 r reverses 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:

  • t opens a confirmation prompt for SIGTERM, the normal termination request.
  • k opens a confirmation prompt for SIGKILL, which stops the process immediately.
  • s opens a menu of all signals, for cases like SIGHUP or SIGSTOP.
Warning
Try 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:

~/.config/btop/btop.conftxt
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 CommandAction
btopOpen the resource dashboard
btop --helpShow options supported by the installed version
btop --versionShow the installed version
btop -p 1Start with preset 1
btop -tStart in 16-color TTY mode
btop --low-colorStart in 256-color mode
1 / 2 / 3 / 4Toggle the CPU, memory, network, or process box
Up / DownSelect a process
EnterOpen or close details for the selected process
SpaceExpand or collapse the selected process in tree view
f or /Edit the process filter
DeleteClear the active process filter
Left / RightChange the process sort column
rReverse the process sort order
eToggle process tree view
cToggle per-core process CPU percentages
t / k / sOpen SIGTERM, SIGKILL, or signal selection actions
+ / -Add or subtract 100 ms from the update timer
F2 or oOpen options
hShow the help window
EscToggle the main menu
qQuit btop

Troubleshooting

The interface renders as broken boxes or stray characters
btop 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:

Terminal
btop -t

No 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:

Terminal
btop --low-color

For 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.

Linuxize Weekly Newsletter

A quick weekly roundup of new tutorials, news, and tips.

About the authors

Dejan Panovski

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