Recommended Tools
Discover modern terminal tools that supercharge your workflow: fzf, ripgrep, bat, eza, and zoxide.
The classic Unix commands have served developers well for decades, but a wave of modern tools has emerged that are faster, more intuitive, and better-looking. These tools are drop-in replacements you can adopt one at a time. Here are five that are worth installing immediately.
fzf — Fuzzy Finder
Replaces: manually typing file paths, Ctrl+R history search
fzf is an interactive fuzzy finder that lets you search through any list — files, command history, git branches, processes — by typing a few characters. It matches fuzzily, so typing srcidx finds src/index.js. It hooks into Ctrl+R to give you a searchable, visual history browser instead of cycling through commands one at a time.# Install
brew install fzf # macOS
sudo apt install fzf # Ubuntu/Debian
# Usage examples
vim $(fzf) # fuzzy-find a file and open it
cd $(find . -type d | fzf) # fuzzy-find a directory and cd into it
export FZF_CTRL_R_OPTS="--preview 'echo {}'" # enhanced history searchripgrep (rg) — Search File Contents
Replaces:
grep -r, grep --includeripgrep is a line-oriented search tool that recursively searches directories for a regex pattern. It's significantly faster than grep — often 5-10x — because it respects .gitignore, skips binary files, and uses parallelism. The output is color-highlighted with file names and line numbers by default.# Install
brew install ripgrep # macOS
sudo apt install ripgrep # Ubuntu/Debian
# Usage examples
rg "TODO" # search all files for "TODO"
rg -i "error" --type js # case-insensitive search in .js files only
rg "function" -C 3 # show 3 lines of context around matchesbat — A Better cat
Replaces:
cat, lessbat is a cat clone with syntax highlighting, line numbers, git integration, and automatic paging. When you bat a file, code is highlighted in color based on the language, modified lines are marked, and long files automatically page. It makes reading files in the terminal genuinely pleasant.# Install
brew install bat # macOS
sudo apt install bat # Ubuntu/Debian (may need: batcat)
# Usage examples
bat index.js # syntax-highlighted file viewer
bat --diff README.md # show git changes
bat -l json data.txt # force JSON highlighting
# Set as default man page viewer
export MANPAGER="sh -c 'col -bx | bat -l man -p'"eza — A Modern ls
Replaces:
lseza (the maintained successor to exa) is a modern replacement for ls. It adds color-coded file types, git status indicators, tree views, icons, and better human-readable sizes. The output is immediately more scannable than plain ls.# Install
brew install eza # macOS
sudo apt install eza # Ubuntu/Debian
# Usage examples
eza -la # long listing, all files (like ls -la but prettier)
eza --tree --level=2 # tree view, 2 levels deep
eza --git --long # show git status for each file
eza --icons # show file-type icons (needs Nerd Font)
# Recommended alias
alias ls="eza --color=always --group-directories-first"zoxide — Smarter cd
Replaces:
cdzoxide learns which directories you visit most often and lets you jump to them by typing just a few characters. Instead of cd ~/Development/personal/terminalvelocity, you type z terminal and it takes you there. It builds a frequency database over time, getting smarter the more you use it.# Install
brew install zoxide # macOS
sudo apt install zoxide # Ubuntu/Debian
# Add to ~/.bashrc or ~/.zshrc
eval "$(zoxide init bash)" # for Bash
eval "$(zoxide init zsh)" # for Zsh
# Usage examples
z projects # jump to most-visited directory matching "projects"
z web src # jump to directory matching both "web" and "src"
zi # interactive selection with fzf integration●
You don't need to install all of these at once. Start with one — fzf or ripgrep tend to have the most immediate impact — and add others as you get comfortable. Each one is a small upgrade that compounds over time.
These tools share a philosophy: respect the conventions of the classic commands, but make the defaults smarter and the output more useful. They're all open-source, actively maintained, and widely adopted by professional developers.