Terminal GuideTerminal Guide
btop icon

btop

System Monitoring
macOSLinux
C++

Resource monitor with beautiful UI and customization.

Official Website

Features

Beautiful UIMouse SupportCustom ThemesNetwork/Disk I/O

Installation

Homebrew
brew install btop
APT (Debian/Ubuntu)
apt install btop
Pacman (Arch)
pacman -S btop

Why Use btop?

Beautiful Graphical UI

Display CPU usage history graphs, network bandwidth, disk I/O, and more in a visually beautiful way.

Per-Core CPU Display

Display each CPU core's usage individually in graph form. See multi-core system load balance at a glance.

Network and Disk Monitoring

Display network upload/download speeds and disk I/O in real-time graphs.

Mouse Support

Full mouse support. Click to select processes, drag to scroll, right-click for context menu.

Installation

installation
# macOS (Homebrew)
brew install btop

# Ubuntu/Debian (22.04 and later)
sudo apt install btop

# Ubuntu (older versions - snap)
sudo snap install btop

# Fedora
sudo dnf install btop

# Arch Linux
sudo pacman -S btop

# Build from source
git clone https://github.com/aristocratos/btop.git
cd btop
make
sudo make install

Basic Usage

basic-usage
# Launch btop
btop

# Launch in low color mode
btop --low-color

# Launch with specific theme
btop --theme gruvbox_dark

# Specify update interval (milliseconds)
btop --update 500

# Force UTF-8 mode
btop --utf-force

# Debug mode
btop --debug

Screen Display

┌─ CPU ─────────────────────────────────────────────────────────────┐ │ Core 0 [████████████████████░░░░░░░░░░] 67% 2.8GHz │ │ Core 1 [███████████████░░░░░░░░░░░░░░░] 51% 2.6GHz │ │ Core 2 [█████████████████████████░░░░░] 83% 3.2GHz │ │ Core 3 [██████████░░░░░░░░░░░░░░░░░░░░] 34% 2.1GHz │ │ │ │ Total: 58.7% User: 45.2% System: 13.5% Uptime: 3d 12:45 │ └────────────────────────────────────────────────────────────────────┘ ┌─ MEM ──────────────────────┐ ┌─ NET: eth0 ────────────────────────┐ │ ████████████████████░░░░░░ │ │ ▲ 1.2 MB/s ▼ 5.8 MB/s │ │ Used: 8.2G / 16G (51%) │ │ Upload Total: 2.3 GB │ │ Buffers: 512M │ │ Download Total: 45.6 GB │ │ Cached: 2.1G │ │ ───────────────────────────────── │ │ Free: 5.2G │ │ ▁▂▃▄▅▆▇█▇▆▅▄▃▂▁▂▃▄▅▆▇█▇▆▅▄ │ └────────────────────────────┘ └────────────────────────────────────┘ ┌─ PROC ─────────────────────────────────────────────────────────────┐ │ PID USER CPU% MEM% COMMAND │ │ 1234 root 25.0 3.2 node /app/server.js │ │ 5678 www-data 15.2 1.6 nginx: worker │ │ 9012 mysql 12.1 12.5 mysqld │ │ 3456 user 5.5 0.4 vim │ └────────────────────────────────────────────────────────────────────┘

Layout Components

CPUDisplay each core's usage, frequency, and temperature (if available) in graphs
MEMDisplay memory and swap usage with bars and graphs
NETNetwork interface send/receive speed and graphs
DISKDisk read/write speed and usage
PROCProcess list (sortable and filterable)

Keyboard Shortcuts

KeyFunction
h / ?Show help menu
Esc / mOpen main menu
qExit btop
1Focus CPU box
2Focus memory box
3Focus network box
4Focus process box
eToggle process tree view
pToggle sort order (ascending/descending)
fEnter process filter
kSend signal to selected process
+ / -Increase/decrease update interval
nSwitch network interface
bToggle network bandwidth unit
zReset network graph scale

Process Management

Process Sorting

Change sort order by pressing the following keys in the process box.

c
CPU%
m
MEM%
i
PID
o
Command name

Process Termination

Select a process and press k to display the signal selection menu.

signals
# Available signals in btop
SIGTERM (15) - Normal termination request
SIGKILL (9)  - Force kill
SIGINT (2)   - Interrupt
SIGSTOP (19) - Pause process
SIGCONT (18) - Resume paused process

Settings and Customization

Open the menu with Esc or m to change settings. Configuration files are saved at:

config-location
# Configuration file location
~/.config/btop/btop.conf

# Theme file location
~/.config/btop/themes/

# Check available themes
ls /usr/share/btop/themes/  # or ~/.config/btop/themes/

Main Settings

Theme

Many built-in themes including Default, TTY, gruvbox_dark, nord, onedark, and dracula.

Color Mode

Choose from True color (24-bit), 256 color, or Low color (basic 16 colors).

Graph Symbol

Choose from different graph styles like block, braille, and TTY.

Layout

Adjust visibility and placement of CPU, memory, network, disk, and process boxes.

Configuration File Example

btop.conf
# btop.conf example

# Theme
color_theme = "gruvbox_dark"

# Use 24-bit color
truecolor = True

# Update interval (milliseconds)
update_ms = 1000

# Graph symbol (braille, block, tty)
graph_symbol = "braille"

# Show per-core graphs in CPU box
shown_boxes = "cpu mem net proc"

# Process sort order
proc_sorting = "cpu lazy"

# Process tree view
proc_tree = False

# Show CPU temperature (supported hardware only)
check_temp = True
cpu_sensor = "Auto"

# Disk usage filter
disks_filter = ""

# Network auto-selection
net_auto = True

Tips

1. Remote Monitoring via SSH

Connect to a remote server via SSH and run btop to beautifully monitor the remote system. Combine with tmux or screen for added convenience.

2. Optimization for Low-Spec Environments

Use the --low-color option or increase the update interval to run comfortably on low-spec systems.

3. GPU Monitoring (NVIDIA)

If NVIDIA drivers are installed, you can monitor GPU usage, memory, and temperature. Enable GPU display in settings.

4. Preset Layouts

Switch between preset layouts with the p key. A compact layout is useful for narrow terminals.

5. Migration from bashtop

btop is the successor to bashtop by the same author. It's faster than bashtop (shell script) and has more features.

Written by Dai AokiPublished: 2026-01-20

Related Articles

Explore More