26 - Jul - 2026

I replaced 5 classic terminal commands and my shell feels much more efficient

My most repetitive terminal tasks are navigation and search, but for a long time, I kept using tools that felt like they belonged to a few decades ago. Eventually, typing out massive file paths and memorizing convoluted flags stopped feeling efficient. So I replaced five utilities, and my daily workflow became more efficient. While my shell isn’t fundamentally doing anything new, I’ve cut down on mindless keystrokes, and work is more enjoyable.


5 package managers that work on Windows, Mac, and Linux

If reinstalling software feels repetitive, these tools have some ideas.

Swap grep for ripgrep (rg)

I didn’t need faster search — I needed less friction to start searching

Installing rg
Afam Onyimadu / MUO

I’ve never found searching through code slow enough to warrant a complaint. However, the things that came before the actual search were the real problems.

I often had to pause just to remember the required flag. On some occasions, I found myself accidentally searching through massively ignored directories or binary files. I’ve often canceled grep runs because I forgot an option and had to retry. These were all elements that broke my flow even more than an actual performance issue would. Moving to rg was the fix.

In the past, I would use grep -R "functionName" ., but now I use rg functionName.

Switching to ripgrep (rg) totally removed the setup phase. By default, it performs a recursive search. It also respects .gitignore and automatically skips binary files. When I first learned grep, this was what I assumed it did.

Problem with grep

ripgrep fixes it

Needs recursion flags

Recursive by default

Searches ignored folders

Respects .gitignore

Hits binary files

Automatically skipped

When I work with minimal systems where ripgrep isn’t available, I still use grep. I also use it in scripts on minimal systems. However, I no longer reach for it for everyday work. This switch hasn’t just made me search faster, but has allowed me to stop preparing to search.

Installation command:

  • Windows 11: winget install BurntSushi.ripgrep.MSVC
  • Ubuntu / Debian: sudo apt update && sudo apt install -y ripgrep

Swap cd for zoxide

I stopped typing full project paths

Possible zoxide commands
Afam Onyimadu / MUO

In my daily workflow, navigation felt invisible until I paid attention to how often I repeated it. I was constantly typing the same long path, like this: cd ~/Projects/client-app/frontend. Then, throughout the day, I would repeat slight variations of it.

When I switched to zoxide, that long path became something like: z client.

In the background, zoxide learns your habits, so the more you visit or use a directory, the more this tool is likely to match your intent. Once installed on your system, it works perfectly without any special configuration. It allowed me to stop thinking about paths entirely.

Here is how it compares to cd:

cd

zoxide

Exact paths required

Fuzzy matching

Manual navigation

Learns usage patterns

Repetitive typing

Short queries

I’ve tried a few other tools, like autojump, fasd, and z.lua. While they all solve the same problem, zoxide still feels the most consistent and works without tuning.

However, zoxide needs a few days to learn your habits, so its suggestions may be imperfect at first. But once you’re past this phase, it’s by far the best of the lot.

Installation command:

  • Windows 11: winget install ajeetdsouza.zoxide
  • Ubuntu / Debian: sudo apt update && sudo apt install zoxide

Swap find for fd

File searches stopped feeling like syntax quizzes

Running the fd command
Afam Onyimadu / MUO

Even though the find command is powerful, in daily use, I often think of it as something I have to get right. I never found the syntax intuitive, and the flags always seemed to blur together. In the middle of a command, I would typically pause just to confirm that I was writing it correctly.

When I switched to fd, a command that used to look like this: find . -name "*.js"became: fd "*.js".

While the idea of file searching is central to fd, it eliminates a lot of the cognitive overhead. It comes with more predictable syntax and cleaner output.

Here is what fd looks like stacked against find:

find

fd

Complex syntax

Simple patterns

Many flags

Minimal options

Verbose output

Clean results

Find allows permissions, timestamps, ownership filters, and complex boolean logic, so for these special cases, I still use it; fd doesn’t give that level of control. But for my everyday workflow, fd eliminates the perfect amount of friction that makes me ignore alternatives. fd ensures I simply describe what I want rather than constructing queries.

Installation command:

  • Windows 11: winget install sharkdp.fd
  • Ubuntu / Debian: sudo apt update && sudo apt install fd-find

Swap cat for bat

Reading files became more informative instead of just displaying text

When I swapped cat for bat, the goal wasn’t speed but rather achieving better information presentation.

If the aim is simply to dump file contents, cat excels. But the moment files exceed a few lines, especially config files and source code, they become increasingly difficult to interpret as raw text. cat offers a flat, monochrome text wall with comments, strings, and logical functions all blended together.

bat brings visual structure, including syntax highlighting, line numbers, and Git change indicators. With longer files, you also get built-in paging.

Here is how both commands compare:

cat

bat

Raw output

Structured view

No context

Syntax highlighting

No navigation

Paging support

I only use cat when simplicity and universality should be prioritized over presentation. Outside of those cases, bat is my default.​​​​​​​

Installation command:

  • Windows 11: winget install sharkdp.bat
  • Ubuntu / Debian: sudo apt update && sudo apt install bat

Swap du for dust

Disk usage stopped being numbers and became visual maps

running dust on powershell
Afam Onyimadu / MUO

After using several disk usage tools, I can conclude they are generally accurate, but not always readable. When du gives you data, you need to interpret it yourself. It’s fine until you have to scan large directories, at which point interpretation becomes considerably slower.

Dust feels a lot like du, but it gives a more visual output. It shows hierarchy and lets the eye quickly see how files compare in size, making it easy to spot the largest directories.

du

dust

Outputs raw numbers

Gives visual layout

Forces manual comparison

Creates an instant hierarchy

Text-heavy output

Shows scan-friendly view

I also use ncdu for interactive cleanup and deeper exploration. However, dust has become my go-to when I quickly need to know what’s taking up space—those times when I know something is wrong but don’t want to investigate line by line.

Installation command:

  • Windows 11: winget install bootandy.dust
  • Ubuntu / Debian: sudo snap install dust or cargo install du-dust

The modern terminal tools that almost made the cut

I went with a list of five, but there are other excellent modern terminal tools; I just don’t use them as often in my daily workflow.

  • eza improves ls; however, I haven’t had a real bottleneck listing files.
  • procs improves ps, but I don’t deal with process inspection tasks often.
  • btop is one of the best system monitors; I just don’t need a full dashboard most of the time.
  • xh is the cleaner curl option, but curl has already become muscle memory for me.

These tools are excellent, but they haven’t impacted my daily workflow as much as the five I chose.

Btop logo 1

OS

Linux, macOS

Developer

Jakob P. Liljenberg

Price model

Free, Open-source

btop is a modern resource monitor for Linux and macOS that displays real-time CPU, memory, disk, and network usage in a clean, interactive terminal interface.


Leave a Reply

Your email address will not be published. Required fields are marked *