All posts
productivityterminaldeveloper-toolsshell

Terminal Productivity: Shell Tools That Will Change How You Code

The terminal tools and shell tricks that cut hours from my weekly workflow - fzf, ripgrep, aliases, and more.

Charles Agboh

Charles Agboh

May 25, 2026·5 min read

Most developers spend 30-40% of their day in the terminal. Yet most of us are still using it exactly the same way we did when we first learned to code - typing full paths, repeating long commands, running ls fifty times a day.

The terminal is one of the highest-leverage places to invest in your workflow. A few hours of setup can save you minutes every single day, and those minutes compound.

Here are the tools and tricks that actually made a difference for me.

Developer working on code in a terminal window
Your terminal is already powerful - most developers just never unlock it.

fzf: The Fuzzy Finder That Changes Everything

If you install only one tool from this post, make it fzf. It's a command-line fuzzy finder that integrates with your shell history, file navigation, and almost anything else you can pipe into it.

Once installed, pressing Ctrl+R to search your command history goes from this:

# Old: scroll back through history hoping to find it
# or: history | grep docker | grep -v grep | tail -20

To this: a live, fuzzy-searchable list of every command you've ever run. Type a few characters, and it narrows instantly.

You also get Ctrl+T to fuzzy-find files in your current directory, and Alt+C to fuzzy-cd into subdirectories. The time savings here are real.

# Install on Mac
brew install fzf
$(brew --prefix)/opt/fzf/install

# Install on Linux
sudo apt-get install fzf

🔥 Pro tip

Add this to your .zshrc or .bashrc to preview file contents while fuzzy-finding: export FZF_CTRL_T_OPTS="--preview 'cat {}'". Now you can see the file before opening it.

ripgrep: grep, But Fast and Sane

ripgrep (the rg command) does what grep does, but it respects your .gitignore, skips binary files automatically, and is significantly faster on large codebases.

# Old grep usage that gets painful in big projects
grep -r "useEffect" ./src --include="*.tsx"

# ripgrep equivalent - faster, cleaner output, ignores node_modules automatically
rg "useEffect" --type tsx

The default output is colored and includes filename, line number, and the matching line. You don't need to add a dozen flags to get useful output.

# Find all TODO comments across your project
rg "TODO|FIXME|HACK" --type ts

# Case-insensitive search with context lines
rg -i "api_key" -C 3

⚠️ Watch out

ripgrep respects .gitignore by default, which is great for most searches. But if you need to search inside ignored files (like build output or logs), use the -u flag to unrestrict it.

Shell Aliases That Pay Off Daily

The ROI on aliases is absurd. You spend 5 minutes writing them once, and they save keystrokes for years.

# Add these to your ~/.zshrc or ~/.bashrc

# Navigation
alias ..="cd .."
alias ...="cd ../.."
alias ~="cd ~"
alias desk="cd ~/Desktop"

# Git shortcuts (these save the most time)
alias gs="git status"
alias ga="git add ."
alias gc="git commit -m"
alias gp="git push"
alias gpl="git pull"
alias gb="git branch"
alias gco="git checkout"
alias gl="git log --oneline --graph --decorate -20"

# npm/node
alias ni="npm install"
alias nr="npm run"
alias ns="npm start"
alias nd="npm run dev"

# Safer defaults
alias rm="rm -i"       # prompt before deleting
alias cp="cp -i"       # prompt before overwriting
alias mv="mv -i"       # same for move

Reload your shell after saving: source ~/.zshrc

Tip

Group your aliases by category and add a comment header above each group. When you come back to edit them six months later, you'll thank yourself.

z: Jump to Directories You've Been Before

The z command (or zoxide for a Rust-based version) tracks your most-visited directories and lets you jump to them with a partial name.

# Instead of:
cd /Users/charlie/projects/clients/acme-corp/frontend/src/components

# After you've visited it once, just:
z components
# or even:
z acme comp

It learns your patterns over time. After a week of use, navigating your project structure gets dramatically faster.

# Install zoxide (faster, more modern version)
brew install zoxide

# Add to .zshrc
eval "$(zoxide init zsh)"
Productivity setup with multiple monitors showing terminal and code editor
A well-configured terminal setup multiplies your output without adding noise.

A Few More Worth Knowing

bat - a cat replacement with syntax highlighting and git integration. Reading a file in the terminal no longer means squinting at monochrome text.

tldr - simplified man pages written by the community. Instead of reading through 300 lines of man git, tldr git gives you the 10 commands you actually use.

httpie - a friendlier alternative to curl for API testing. http GET api.example.com/users beats curling with flags every time.

brew install bat tldr httpie
Developer Productivity Tips for Your Terminal Workflow

The Setup Investment Is Worth It

None of this is complicated. Most of it is an afternoon of reading and installing, then a few weeks of muscle memory building. But developers who invest in their tooling consistently outperform those who don't - not because they're smarter, but because they spend more time thinking and less time fighting their environment.

Pick one tool from this list, install it today, and use it for a week. Then come back for the next one.

productivityterminaldeveloper-toolsshell

Found this helpful? Share it.

Charles Agboh

Written by

Charles Agboh

Builder, automator, and developer. Charlie writes about AI automation, Claude Code, n8n workflows, and the tools that actually move the needle for developers right now.

📬

Enjoyed this post?

Subscribe to get new posts straight to your inbox - no spam, just bytes.

Related Articles

Discussion

Loading...

Chat on WhatsApp