The classic Unix tools - cat, grep, find, du, ps, cd, ls - are reliable, available everywhere, and haven't changed meaningfully in decades. The modern replacements are faster, produce better output, and have sane defaults that make them more useful in a development workflow. None of them require you to abandon the originals - they install alongside them and you alias as needed.
Modern Unix Tools: The 2026 Replacements for cat, grep, find, and More
bat, ripgrep, fd, delta, dust, procs, zoxide, and eza replace the classic Unix tools with better output, faster performance, and sensible defaults.
Mahmudul Haque Qudrati
CEO & ML Engineer
One AI engineering post, weekly
LLM benchmarks, prompt techniques, and token-cost breakdowns — not another AI news roundup.
Beyond personal ergonomics, these tools matter for one practical reason: speed. ripgrep is 10 to 100 times faster than grep for searching codebases. When you're searching a 50,000-file monorepo, the difference between 200ms and 15 seconds is not academic. More relevantly, AI coding tools like Claude Code and Cursor use ripgrep internally for codebase search. Understanding the tool helps you understand why codebase search behaves the way it does.
bat: Better cat
bat is cat with syntax highlighting, line numbers, and git integration showing changed lines.
Install:
brew install bat # macOS
sudo apt install bat # Ubuntu/Debian (installs as batcat)
cargo install bat # Any platform with Rust
What it adds over cat:
- Syntax highlighting for every major language
- Line numbers by default
- Git diff markers showing added/modified lines
- Automatic paging for long files (
less-style navigation) - Works as a drop-in for
catin pipelines with--plainflag
bat src/auth/middleware.ts # Highlighted TypeScript
bat -n src/config.json # Just line numbers, no paging
cat file.ts | bat -l typescript # Syntax hint in a pipeline
Configure bat in ~/.config/bat/config:
--theme="Catppuccin-mocha"
--style="numbers,changes,header"
Team workspace
Ship faster with chat, meetings, and projects in one place — Zlyqor.
ripgrep: Better grep
ripgrep (command: rg) searches file contents. It is faster than grep in virtually every practical scenario, respects .gitignore by default, and produces color-coded output with filename and line number context.
Install:
brew install ripgrep
sudo apt install ripgrep
cargo install ripgrep
Usage:
rg "getUserById" # Search current directory recursively
rg "getUserById" src/ # Search specific directory
rg -t ts "getUserById" # Search only TypeScript files
rg -l "TODO" # List files containing match (not lines)
rg -i "error" # Case-insensitive
rg --no-ignore "node_modules" # Search ignored directories too
rg -A 3 -B 3 "throw new Error" # Show 3 lines before and after
Why it's faster than grep: ripgrep uses SIMD instructions, processes multiple files in parallel threads, and skips binary files and version control directories automatically. On a large codebase, rg completes in under a second where grep -r takes 30+ seconds.
fd: Better find
fd finds files. It's simpler to use than find, faster, and respects .gitignore.
Install:
brew install fd
sudo apt install fd-find # Ubuntu (command is fdfind, alias to fd)
cargo install fd-find
Usage:
fd middleware # Find files with "middleware" in name
fd -e ts # Find all TypeScript files
fd -e ts -x bat {} # Find all .ts files and display with bat
fd "route.ts" src/ # Search in specific directory
fd -H ".env" # Include hidden files
fd --changed-within 1d # Files changed in the last day
Compare with the find equivalent for the last one: find . -mtime -1 -name "*.ts". fd is consistently less verbose for common operations.
delta: Better git diff
delta is a pager for git diff, git log, and git show. It adds syntax highlighting, side-by-side diffs, and line numbers.
Install:
brew install git-delta
cargo install git-delta
Configure git to use delta:
git config --global core.pager delta
git config --global interactive.diffFilter "delta --color-only"
git config --global delta.navigate true
git config --global delta.light false
git config --global delta.side-by-side true
After configuring, git diff, git log -p, and git show all use delta automatically. The side-by-side view is particularly useful for reviewing what changed in a file - removed lines on the left, new lines on the right, both syntax-highlighted.
dust: Better du
dust shows disk usage as a tree with a bar chart. Where du -sh * produces a flat list, dust shows the tree structure so you can see which subdirectory is actually consuming space.
Install:
brew install dust
cargo install du-dust
Usage:
dust # Current directory
dust -n 20 # Show top 20 entries
dust /var/log # Specific path
procs: Better ps
procs lists running processes with color, sorted by CPU or memory, and makes process names readable.
Install:
brew install procs
cargo install procs
Usage:
procs # All processes, sorted by CPU
procs node # Filter by name
procs --sortd cpu # Sort by CPU descending
zoxide: Better cd
zoxide learns which directories you visit and lets you jump to them by partial name from anywhere.
Install:
brew install zoxide
cargo install zoxide
Shell integration (add to ~/.zshrc or ~/.bashrc):
eval "$(zoxide init zsh)" # or bash, fish
Usage:
z projects # Jump to a directory with "projects" in path
z web # Jump to the most-visited directory matching "web"
zi # Interactive selection with fzf
After a few days, z proj gets you to /Users/you/code/mycompany/projects/main-app without typing the full path.
eza: Better ls
eza (fork of the abandoned exa) is a modern ls with color, git integration, and tree view.
Install:
brew install eza
cargo install eza
Useful aliases for ~/.zshrc:
alias ls="eza"
alias ll="eza -l --git"
alias la="eza -la --git"
alias lt="eza --tree --level=2"
eza -l --git shows file permissions, owner, size, date, and git status (new, modified, ignored) in one clean column output.
Install Everything at Once
macOS (Homebrew):
brew install bat ripgrep fd git-delta dust procs zoxide eza
Cargo (any platform with Rust):
cargo install bat ripgrep fd-find git-delta du-dust procs zoxide eza
Add aliases to ~/.zshrc:
alias cat="bat"
alias grep="rg"
alias find="fd"
alias ls="eza"
alias ll="eza -l --git"
alias cd="z"
The aliases are optional - you can run both the old and new tools side by side and alias gradually.
Keep Reading
- LazyGit Git Workflow Guide -
deltapairs with LazyGit for better diffs - Warp Terminal Review 2026 - A terminal that makes all of these tools more ergonomic
- Docker for Developers Guide - Where these tools help inside container workflows
Pristren builds AI-powered software for teams. Zlyqor is our all-in-one workspace - chat, projects, time tracking, AI meeting summaries, and invoicing - in one tool. Try it free.

Mahmudul Haque Qudrati
CEO & ML Engineer
Visionary technologist, software engineer, and machine learning specialist. Founder and CEO of Pristren, directing engineering teams that ship production-grade AI/ML pipelines, mission-critical full-stack applications, and developer tooling. Creator of Zlyqor, the unified team workspace platform. Author of 540+ technical guides and benchmark research reports on large language models, agentic workflows, Model Context Protocol (MCP), and modern web stacks.
More from Mahmudul
Related Articles
How to Use Claude to Make Videos Like Vox and Others
Claude can help you make Vox-style videos by generating scripts, editing with code, and automating animation. Here's a practical guide with real workflows and costs.
OpenAI Ends Cursor Model Access on Nov 12, 2026: What Developers Need to Know
OpenAI will terminate Cursor's access to its models on November 12, 2026, following SpaceX's acquisition. This guide explains the timeline, why it happened, and practical steps to migrate your workflow.
What Is GPT-5.6 Sol Ultra Will Be in Codex? A Practical Overview
GPT-5.6 Sol Ultra is a rumored model optimized for code generation, integrated into Codex. We analyze the claims, potential capabilities, and what developers should expect.
// discussion
Comments