8 Ubuntu Terminal Tools You Must Master in 2026

Table of Contents
Introduction
If you have been using Ubuntu for any length of time — whether on a desktop, a server, or a cloud instance — you already know that the terminal is where the real work happens. The graphical interface is convenient for browsing and casual tasks, but when it comes to server management, development workflows, remote administration, and system troubleshooting, the command line is where speed, precision, and control live.
This guide covers eight essential Ubuntu terminal tools — micro, Neovim, tmux, htop, fzf, ripgrep, bat, and eza — that collectively transform how you interact with the command line. Every tool in this list is free, open source, available in the Ubuntu package repositories, and installable with a single apt command. We cover what each tool does, why it is better than the default alternative, how to use it immediately, and how everything fits together into a cohesive productivity stack.
Category 1: Terminal Text Editors
1. micro — The Terminal Editor With Zero Learning Curve
| micro — Modern, intuitive terminal text editor | |
| Replaces / Improves | nano (for beginners), gedit (for simple file edits) |
| Install Command | sudo apt install micro -y |
The first barrier most new Ubuntu users hit is terminal text editing. nano is better than nothing, and vim/neovim are powerful but notoriously difficult to start with. Micro fills the gap between them perfectly: it is a terminal-based text editor that behaves exactly the way you expect a text editor to behave, using the same keyboard shortcuts that work everywhere else.
Ctrl+S saves your file. Ctrl+Q quits. Ctrl+Z undoes. Ctrl+F opens a search bar. Your mouse works for positioning the cursor and selecting text. There is no modal editing, no command mode to switch into, no : prompt to remember. If you can use Notepad or gedit, you can use micro in a terminal from the first second you open it.
Essential micro Commands
# Install micro
sudo apt install micro -y
# Open a file for editing
micro ~/.bashrc
# Edit a system configuration file with root privileges
sudo micro /etc/hostname
# Create and open a new file
micro newscript.sh
# Key shortcuts inside micro:
# Ctrl+S — Save file
# Ctrl+Q — Quit
# Ctrl+F — Find / search
# Ctrl+Z — Undo
# Ctrl+G — Help
2. Neovim — IDE-Level Terminal Editing When You Are Ready
| Neovim — Modern rebuild of Vim with Lua config, LSP, and IDE features | |
| Replaces / Improves | vim (for developers), VSCode (for terminal-native workflows) |
| Install Command | sudo apt install neovim -y |
Neovim is not the right starting point for Ubuntu beginners — but it is the destination that many serious terminal users eventually reach, and understanding what it offers helps you know when to make the switch. It is a complete rebuild of Vim, one of the most influential text editors in Unix history, with a modernized architecture: Lua-based configuration instead of Vim’s VimScript, native Language Server Protocol (LSP) support for real code completion and diagnostics, and an asynchronous job system that allows plugins to run without blocking the editor.
Essential Neovim Commands to Start With
# Install neovim
sudo apt install neovim -y
# Open a file
nvim ~/.bashrc
# The four modal editing basics to learn first:
# i — Enter insert mode (start typing)
# Esc — Return to normal mode
# :w — Write (save) the file
# :q — Quit (close the file)
# :wq — Save and quit in one command
# :q! — Quit without saving (force)
# Navigation in normal mode (no arrow keys needed)
# h/j/k/l — Left / Down / Up / Right
# gg — Go to top of file
# G — Go to bottom of file
# /pattern — Search forward for pattern
3. tmux — The Terminal Multiplexer That Saves Your Work
| tmux — Terminal multiplexer: sessions, panes, and SSH persistence | |
| Replaces / Improves | screen (legacy alternative), plain SSH sessions without persistence |
| Install Command | sudo apt install tmux -y |
Tmux is arguably the single most transformative tool for anyone who works with Ubuntu over SSH. Here is the scenario it solves: you SSH into a server, start a database migration that will take 45 minutes, and then your laptop lid closes, your WiFi drops, or your VPN disconnects. Without tmux, that SSH session terminates — and depending on the operation, your migration may fail mid-run, requiring a rollback and restart. With tmux, the session continues running on the server regardless of what happens to your connection. You reconnect via SSH, type one command to reattach, and you are back where you left off — watching the migration progress as if nothing happened.
Essential tmux Commands and Key Combinations
# Install tmux
sudo apt install tmux -y
# Start a new named session (always name your sessions)
tmux new -s production
# Detach from session (leaves everything running)
# Key combination: Ctrl+B then D
# List all running sessions
tmux ls
# Reattach to a named session after reconnecting
tmux attach -t production
# Pane management (all prefixed with Ctrl+B):
# Ctrl+B % — Split pane vertically (side by side)
# Ctrl+B " — Split pane horizontally (top and bottom)
# Ctrl+B → — Move to right pane
# Ctrl+B ← — Move to left pane
# Ctrl+B x — Close current pane
4. htop — Visual, Interactive System Monitoring in Real Time
| htop — Visual, interactive CPU/RAM/process monitor | |
| Replaces / Improves | top (built-in, harder to read and interact with) |
| Install Command | sudo apt install htop -y |
The built-in top command has been a part of Unix and Linux since the 1980s. It works — you can see running processes and their resource consumption — but it was not designed for interactive use. Sorting by a different column requires memorizing keyboard combinations. Killing a process requires noting its PID and running a separate kill command. The visual layout is dense and monochromatic, making it hard to quickly identify the information you need in a stressful situation.
Essential htop Usage
# Install htop
sudo apt install htop -y
# Launch htop
htop
# Key shortcuts (always visible at bottom of screen):
# F2 — Setup / configure display options
# F3 — Search for process by name
# F5 — Toggle tree view (shows process hierarchy)
# F6 — Sort by column (interactive menu)
# F9 — Kill selected process (signal selection)
# F10 / q — Quit htop
# Space — Tag a process (for batch operations)
# u — Filter by user
# Useful: run htop as root to see all user processes
sudo htop
5. fzf — Fuzzy Finding That Makes Everything Searchable
| fzf — Interactive fuzzy finder for files, history, processes, and any list | |
| Replaces / Improves | Ctrl+R history scroll (built-in), manual file path typing |
| Install Command | sudo apt install fzf -y |
fzf is one of those tools where the value is not fully apparent until the moment after you install it and press Ctrl+R in your terminal for the first time. That key combination, which previously scrolled through your command history one entry at a time in reverse order, now opens a live fuzzy search interface over your entire command history. You type any fragment of a command — any part of it, in any order — and fzf narrows the list in real time to matching entries. Find a complex command you ran three weeks ago in two keystrokes rather than pressing the up arrow forty times.
Essential fzf Commands and Integrations
# Install fzf
sudo apt install fzf -y
# The key binding that changes everything:
# Ctrl+R — Fuzzy search your entire command history
# Fuzzy-select a file and open it in micro
micro $(fzf)
# Navigate to a directory using fuzzy selection
cd $(find . -type d | fzf)
# Fuzzy-select a running process and kill it
kill $(ps aux | fzf | awk '{print $2}')
# Add to ~/.bashrc for ripgrep + fzf integration
export FZF_DEFAULT_COMMAND='rg --files'
export FZF_DEFAULT_OPTS='--height 40% --border'
# After adding to .bashrc, reload:
source ~/.bashrc
6. ripgrep — The grep Replacement Built for Speed and Intelligence
| ripgrep (rg) — Ultra-fast recursive content search with regex, gitignore-aware | |
| Replaces / Improves | grep (built-in), awk for content search, find | xargs grep pipelines |
| Install Command | sudo apt install ripgrep -y |
grep is one of the most fundamental Unix tools — it searches file contents using regular expressions, and it has been doing that reliably since 1974. The problem with grep for modern use is not correctness but performance and intelligence. When you run grep -r ‘search_term’ . on a large codebase or a directory tree containing thousands of files, grep searches everything: compiled binaries, version control metadata in .git/, minified JavaScript files, vendor libraries. It is thorough but indiscriminate and slow.
Essential ripgrep Commands
# Install ripgrep
sudo apt install ripgrep -y
# Basic search — searches all non-ignored files recursively
rg "search_term"
# Search in a specific directory
rg "error" /var/log/
# Case-insensitive search
rg -i "warning" /etc/
# Show 3 lines of context around each match
rg -C 3 "failed" /var/log/syslog
# List only files that contain matches (no content shown)
rg -l "TODO" .
# Count matches per file
rg -c "import" --type py .
# Search with regex — find lines with two consecutive digits
rg "[0-9]{2}" config.yaml
7. bat — Read Files Like a Developer, Not a Minimalist
| bat — cat with syntax highlighting, line numbers, Git change markers, and paging | |
| Replaces / Improves | cat (built-in file dumper), less for paging |
| Install Command | sudo apt install bat -y |
cat is perfectly adequate for quickly checking the contents of a small file. But ‘adequate’ understates how much it lacks when you are reading a configuration file, reviewing a shell script, or inspecting a Python module. cat dumps text without structure, without color, without line numbers, and without any indication of which lines have recently changed. Reading complex files in plain cat is like reading source code in Notepad — it works, but it does not help you understand.
Essential bat Commands and Setup
# Install bat
sudo apt install bat -y
# View a file (on Ubuntu the command is batcat)
batcat ~/.bashrc
# Add the alias to ~/.bashrc so you can type 'bat' instead
echo "alias bat='batcat'" >> ~/.bashrc
source ~/.bashrc
# After alias setup, use bat normally:
bat /etc/ssh/sshd_config
# Show only specific lines (e.g., lines 10 to 30)
bat -r 10:30 script.sh
# View multiple files in sequence
bat file1.py file2.py file3.py
# Force plain output (no decorations) for piping
bat -p config.yaml | grep 'database'
# List all supported languages and themes
bat --list-languages
bat --list-themes
8. eza — Directory Listings That Actually Tell You Something
| eza — Modern ls replacement with colors, icons, Git status, and tree view | |
| Replaces / Improves | ls (built-in), tree (for hierarchy views) |
| Install Command | sudo apt install eza -y |
The ls command is one of the most frequently run commands on any Linux system — it is how you see what is in a directory, which is something you do dozens of times in any active terminal session. Despite this frequency, the default ls output is deliberately minimal: filenames in a single color (with basic type coloring available via –color flag), no file sizes in human-readable format by default, no indication of Git status, and no tree view for exploring directory hierarchy.
Essential eza Commands and Setup
# Install eza
sudo apt install eza -y
# Detailed listing — replaces ls -l
eza -l
# Show hidden files (dotfiles)
eza -la
# Tree view — see entire directory hierarchy at once
eza --tree
# Tree view limited to 2 levels deep
eza --tree --level 2
# Git-aware listing (shows file status in Git repos)
eza -l --git
# Sort by modification time (newest first)
eza -l --sort=modified
# Replace ls permanently by adding alias to ~/.bashrc
echo "alias ls='eza'" >> ~/.bashrc
echo "alias ll='eza -l'" >> ~/.bashrc
echo "alias la='eza -la'" >> ~/.bashrc
source ~/.bashrc
All 8 Ubuntu Tools at a Glance
Use this as your quick-reference table for the complete productivity stack:
| Tool | Category | What it Does | Install command | Key Shortcut |
|---|---|---|---|---|
| micro | Editor | Terminal text editor — no modal commands, Ctrl+S saves | sudo apt install micro -y | Ctrl+S / Ctrl+Q |
| neovim | Editor | IDE-level terminal editor, Lua config, LSP code completion | sudo apt install neovim -y | :wq to save+quit |
| tmux | Multiplexer | Session manager — split panes, SSH persistence, detach | sudo apt install tmux -y | Ctrl+B then D |
| htop | Monitor | Visual CPU/RAM/process monitor, interactive sorting | sudo apt install htop -y | F9 kill / F3 find |
| fzf | Search | Fuzzy finder for history, files, any list of text | sudo apt install fzf -y | Ctrl+R (history) |
| ripgrep | Search | Ultra-fast recursive file content search, gitignore-aware | sudo apt install ripgrep -y | rg “term” . |
| bat | Viewer | cat replacement: syntax highlighting, Git markers, paging | sudo apt install bat -y | batcat filename |
| eza | Navigation | Modern ls: colors, icons, tree view, Git status columns | sudo apt install eza -y | eza -l –git |
Install All 8 Tools in One Command
Rather than installing each tool individually, this single operation installs the complete stack and wires everything together with useful aliases. Run this on any Ubuntu 22.04 LTS or 24.04 LTS system:
# Step 1: Update package index
sudo apt update
# Step 2: Install all 8 tools in one command
sudo apt install micro neovim tmux htop fzf ripgrep bat eza -y
# Step 3: Add aliases and configuration to ~/.bashrc
cat >> ~/.bashrc << 'EOF'
# Ubuntu productivity tool aliases
alias bat='batcat' # Use bat instead of batcat
alias ls='eza' # Modern ls with colors
alias ll='eza -l' # Detailed listing
alias la='eza -la' # Detailed with hidden files
alias lt='eza --tree --level 2' # Tree view
alias cat='batcat' # Syntax-highlighted cat
# fzf + ripgrep integration
export FZF_DEFAULT_COMMAND='rg --files'
export FZF_DEFAULT_OPTS='--height 40% --border --reverse'
EOF
# Step 4: Reload shell configuration
source ~/.bashrc
Conclusion
The gap between a default Ubuntu terminal setup and a genuinely productive one is smaller than most people realize — it is eight tools and three alias lines. The tools covered in this guide do not require learning new paradigms or spending weeks building new habits. Most of them work better immediately on first use: bat shows you syntax-highlighted files the moment you run it, htop gives you a clear view of your system resources in real time, eza shows you a more informative directory listing from the first ls.








