Terminal Tools Every Developer Needs in 2026

发布于:2026-03-15 · #cli

The terminal is where developers live. A well-configured terminal isn’t just faster — it changes how you think about problems. Here are the tools I use daily and can’t imagine working without.

File Navigation: Beyond cd and ls

zoxide — Smarter Directory Jumping

Stop typing full paths. zoxide learns your habits and jumps to directories by partial match:

Bash
UTF-8|5 Lines|
# Instead of: cd ~/projects/hexink-blog/src/content
z hexink content

# It learns from frequency and recency
z blog    # → jumps to your most-used "blog" directory

Install it once, alias it to cd, and never look back.

eza — ls But Better

eza (the maintained fork of exa) adds icons, git status, and tree views:

Bash
UTF-8|5 Lines|
# Beautiful file listing with git status
eza -la --git --icons

# Tree view with depth limit
eza --tree --level=2 --icons
plaintext
UTF-8|9 Lines|
 drwxr-xr-x  src
├──  components
│  ├──  Header.astro
│  ├──  Footer.astro    (modified)
│  └──  PostCard.astro  (staged)
├──  content
│  └──  blog
└──  lib
   └──  utils.ts

Git Workflow

lazygit — Git TUI That Actually Works

If you find yourself running git status, git add, git commit in a loop, lazygit replaces the entire cycle with a single interactive UI:

Bash
UTF-8|6 Lines|
lazygit
# Opens a full terminal UI:
# - Stage/unstage with spacebar
# - Commit with 'c'
# - Push with 'P'
# - Interactive rebase with drag-and-drop

The killer feature: interactive rebase without fear. You can reorder, squash, and edit commits visually, with undo at every step.

delta — Beautiful Git Diffs

Replace the default git diff output with syntax-highlighted, side-by-side diffs:

plaintext
UTF-8|8 Lines|
# ~/.gitconfig
[core]
    pager = delta

[delta]
    navigate = true
    side-by-side = true
    line-numbers = true

Once you see diffs with proper syntax highlighting, you can’t go back.

Text Processing

ripgrep (rg) — Faster Than grep

ripgrep respects .gitignore, uses smart case, and is absurdly fast:

Bash
UTF-8|5 Lines|
# Search for a pattern across your project
rg "useState" --type tsx

# Replace across files (with confirmation)
rg "oldFunction" --files-with-matches | xargs sed -i 's/oldFunction/newFunction/g'

On a large monorepo, rg returns results before grep finishes reading the directory tree.

fzf — Fuzzy Find Everything

The Swiss Army knife of CLI tools. fzf adds fuzzy search to any list:

Bash
UTF-8|8 Lines|
# Search files
fzf --preview 'bat --color=always {}'

# Search git branches
git branch | fzf | xargs git checkout

# Search command history
history | fzf

Combine fzf with rg for a search experience that rivals any IDE:

Bash
UTF-8|2 Lines|
# Interactive project-wide search with preview
rg --line-number . | fzf --delimiter ':' --preview 'bat --color=always --highlight-line {2} {1}'

Monitoring & System

btop — System Monitor

Forget htop. btop provides CPU, memory, disk, and network monitoring with a polished UI:

Bash
UTF-8|6 Lines|
btop
# Shows:
# - Per-core CPU usage with history graphs
# - Memory and swap with process breakdown
# - Disk I/O per device
# - Network up/down with history

dust — Disk Usage, Visualized

Find what’s eating your disk space:

Bash
UTF-8|3 Lines|
dust ~/projects
# Shows a bar chart of directory sizes, sorted by size
# Way more intuitive than du -sh

My Setup

Here’s the relevant section of my shell config:

Bash
UTF-8|11 Lines|
# ~/.zshrc (relevant aliases)
alias ls="eza --icons"
alias ll="eza -la --git --icons"
alias tree="eza --tree --icons"
alias cat="bat"
alias cd="z"
alias diff="delta"
alias top="btop"
alias du="dust"
alias find="fd"
alias grep="rg"

The theme: replace every default tool with a modern alternative that has better defaults, better output, and better performance.

The Compound Effect

No single tool here is life-changing. But together, they compound. You navigate faster, search faster, commit faster, and debug faster. Over a year, the time savings are measured in weeks.

Start with one — I’d recommend zoxide — and add others as you feel the friction.


This is part 2 of the Notion-Powered Blog series. Part 1 covers how to set up Notion as your blog’s CMS.