If you’re still using the same Unix commands from the 1970s, you’re leaving serious productivity on the table. A new generation of CLI tools — written in Rust and Go — offer faster performance, better defaults, and human-friendly output that makes working in the terminal genuinely enjoyable. Here’s a curated list of 10 modern replacements for classic Linux commands, with installation guides and practical usage examples.
1. eza — A Better ls
eza (the maintained fork of exa) adds color-coded output, Git status integration, and tree views out of the box.
# Install
cargo install eza
# or on Ubuntu/Debian
sudo apt install eza
# Usage
eza -la --icons --git
eza --tree --level=2 --iconsThe --git flag shows file-level Git status (modified, staged, untracked) right in your listing — no more switching to git status constantly.
2. bat — A Better cat
bat gives you syntax highlighting, line numbers, and Git diff markers when viewing files.
# Install
sudo apt install bat
# Note: on Ubuntu, the binary is 'batcat' — alias it
alias cat='batcat --paging=never'
# Usage
bat server.py
bat --diff main.py # show git changes inlineIt also integrates with fzf for previewing files during fuzzy search — a killer combo.
3. ripgrep (rg) — A Better grep
ripgrep is the fastest grep alternative. It respects .gitignore, searches recursively by default, and uses smart case sensitivity.
# Install
sudo apt install ripgrep
# Search for a pattern in the current project
rg "async function" --type js
# Search with context lines
rg -C 3 "def train_model" --type py
# Count matches per file
rg -c "TODO" src/Benchmarks consistently show rg is 5-10x faster than grep -r on large codebases.
4. fd — A Better find
fd is a simple, fast alternative to find with sensible defaults like ignoring hidden files and .gitignore patterns.
# Install
sudo apt install fd-find
# Binary is 'fdfind' on Ubuntu — alias it
alias fd='fdfind'
# Find all Python files
fd -e py
# Find and delete all .pyc files
fd -e pyc -x rm {}
# Find files modified in the last 24 hours
fd --changed-within 1d5. zoxide — A Better cd
zoxide learns your most-used directories and lets you jump to them with fuzzy matching.
# Install
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
# Add to your .bashrc or .zshrc
eval "$(zoxide init bash)" # or zsh/fish
# Usage — just type fragments
z projects # jumps to ~/code/projects
z doc # jumps to ~/Documents
zi # interactive selection with fzfAfter a few days of use, z becomes muscle memory — you’ll never type long paths again.
6. dust — A Better du
dust gives you an instant visual breakdown of disk usage with a bar chart in your terminal.
# Install
cargo install du-dust
# Usage
dust # current directory
dust -r /var/log # reverse sort
dust -n 20 # top 20 entriesUnlike du -sh * | sort -h, dust shows a proportional bar graph so you can instantly spot the space hog.
7. btop — A Better top/htop
btop is a beautiful resource monitor with mouse support, per-core CPU graphs, and network/disk I/O tracking.
# Install
sudo apt install btop
# or
snap install btop
# Just run it
btopIt auto-detects your terminal theme, supports vim keybindings, and can show per-process GPU usage on supported systems.
8. tldr — A Better man
tldr provides community-maintained, example-driven cheat sheets instead of the dense man pages.
# Install (Rust client — fastest)
cargo install tealdeer
# Usage
tldr tar
tldr ffmpeg
tldr docker run
# Update the local cache
tldr --updateWhen you just need to remember how to use tar flags for the hundredth time, tldr tar gives you exactly what you need in 5 lines.
9. jq + jnv — A Better Way to Handle JSON
jq is the classic JSON processor, but jnv adds an interactive TUI for exploring JSON data live.
# Install jq
sudo apt install jq
# Install jnv (interactive JSON viewer)
cargo install jnv
# Pipe API responses
curl -s https://api.github.com/users/torvalds | jq '.name, .public_repos'
# Interactive exploration
curl -s https://api.github.com/users/torvalds | jnv
# Transform data
cat data.json | jq '[.items[] | {name: .title, done: .completed}]'10. delta — A Better diff
delta gives you side-by-side diffs with syntax highlighting, line numbers, and word-level change detection.
# Install
cargo install git-delta
# Configure as your default Git pager — add to ~/.gitconfig
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true
side-by-side = true
line-numbers = true
# Now all git diffs are beautiful
git diff
git log -pOnce you see delta‘s output, plain diff output looks like reading Assembly.
Bonus: Set Up All of Them at Once
Here’s a quick install script for Ubuntu/Debian systems:
#!/bin/bash
sudo apt update
sudo apt install -y eza bat ripgrep fd-find btop jq
# Rust-based tools
cargo install du-dust tealdeer git-delta zoxide jnv
# Shell aliases (~/.bashrc or ~/.zshrc)
cat << 'EOF' >> ~/.bashrc
alias ls='eza --icons'
alias ll='eza -la --icons --git'
alias cat='batcat --paging=never'
alias fd='fdfind'
alias grep='rg'
eval "$(zoxide init bash)"
EOF
source ~/.bashrcWrapping Up
These tools aren’t just cosmetic upgrades — they’re genuinely faster, smarter, and more ergonomic than their classic counterparts. Most are written in Rust, which means they’re blazingly fast and memory-safe. Start with ripgrep and bat (they have the biggest day-to-day impact), then gradually adopt the rest.
The Linux terminal has been the developer’s home for decades. It’s time we furnished it with modern tools.

Leave a Reply