How to Use the bottom (btm) Command in Linux for a Customisable Process and System Monitor

Tracking system resource consumption on Linux servers and developer workstations commonly relies on utilities like top, htop, or glances. While functional, traditional monitors can feel rigid or resource-heavy. bottom (invoked via the binary btm) is a modern, terminal-based graphical resource monitor written in Rust that provides a highly responsive, customisable dashboard displaying CPU, memory, disks, temperature sensors, and process graphs.

Why Choose bottom Over Standard Process Monitors

Written from the ground up for terminal performance, bottom brings distinct benefits to system administration:

  • Dynamic Time-Series Charts: Renders real-time line graphs showing historical trends for CPU cores, RAM, swap space, and network input/output.
  • Cross-Platform Hardware Telemetry: Detects storage volume read/write bandwidth, filesystem mount percentages, and hardware thermal sensors out of the box.
  • Modular Widget Layout: Customise which panels appear, their proportional sizing, refresh frequencies, and colour palettes using a simple TOML configuration file.
  • Low Overhead: Compiles to an efficient native binary with minimal memory footprint, making it ideal for monitoring constrained virtual machines.

Installing bottom on Linux Distributions

The bottom package is maintained across primary package repositories and package management systems:

  • Ubuntu, Debian, and Derivatives:
    sudo apt install bottom
    Note: On older Debian or Ubuntu distributions, download the pre-built .deb package from GitHub releases or install via Cargo.
  • Fedora, RHEL, and CentOS:
    sudo dnf install bottom
  • Arch Linux and Manjaro:
    sudo pacman -S bottom
  • Snap Package:
    sudo snap install bottom
  • Cargo (Universal Rust Installation):
    cargo install bottom --locked

Launching and Navigating the btm Terminal Interface

Once installed, launch the utility by executing:

btm

The interface divides your terminal screen into six interconnected widgets: CPU history, Memory and Swap charts, Network bandwidth, Storage disks, Thermal temperatures, and an interactive Process table.

Keyboard Controls and Navigation

  • Navigating Widgets: Press Tab or Shift + Tab to cycle focus through individual widgets. You can also use Vim-style movement keys (h, j, k, l) or the arrow keys.
  • Zooming into Widgets: Press e to expand the active focused widget to fullscreen mode; press e again to return to the full dashboard.
  • Searching Processes: Focus the process table and press / to enter search mode. Type the application name (e.g. nginx or python) to filter the list dynamically.
  • Terminating Processes: Highlight an unresponsive task and press dd to trigger an interactive kill signal prompt (SIGTERM or SIGKILL).
  • Time Scaling: Press + or - to zoom in or out on historical chart time scales, adjusting the displayed time window from seconds to minutes.
  • Help & Exit: Press ? to open the in-app shortcut guide; press q or Ctrl + C to exit.

Useful Command-Line Flags and Battery Monitoring

You can adjust bottom‘s behaviour on launch using practical CLI arguments:

  • Basic Mode: Run btm -b to strip chart graphics and render a compact text-only layout suitable for low-bandwidth SSH sessions.
  • Show Battery Status: Run btm --battery on laptops to display a dedicated battery charge level and discharge rate panel.
  • Custom Refresh Rate: Run btm -r 500 to set data polling to every 500 milliseconds for fine-grained performance profiling.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.