10 Modern Linux Tools That Replace Old Commands in 2026


If you have been using Linux for a while, you are probably very comfortable with commands like cat, ls, grep, find, and top. These are reliable, battle-tested tools - they have been running Linux systems for decades and they are not going anywhere. But here is the honest truth: they were designed for a time when terminals had no color, no Git, and codebases fit inside a single folder.

In this article, we will demonstrate how to replace 10 classic Linux commands with their modern equivalents. These new-generation tools - many of which are written in Rust or Go - offer syntax highlighting, Git awareness, smarter navigation, and much faster performance, without breaking a single one of your existing shell scripts. Terminal modernization is no longer optional for power users who want real command line efficiency. This guide covers the best Linux CLI tools 2026 has to offer and includes a full alias setup so you can start using them right away.

You can use the same guide on Ubuntu, Debian, Arch Linux, Fedora, and macOS with a few minor modifications.

Prerequisites

This tutorial assumes you are comfortable with the Linux terminal and have basic package manager knowledge. All 10 tools in this guide are open-source, actively maintained, and safe to install alongside your existing commands. Your old shell scripts using grep, cat, or ls will continue to work - aliases only affect your interactive terminal sessions.

Examples

♥ Quick Reference — Unix Command Replacements: Old vs Modern Tool
Old Command Modern Tool Install Name Key Improvement
cat bat bat / batcat Syntax highlighting, Git integration, line numbers
ls eza eza Colors, icons, Git status, tree view
grep rg ripgrep 10–100× faster, respects .gitignore automatically
find fd fd-find / fd Simpler syntax, faster, .gitignore aware
cd zoxide zoxide Learns your habits, jump by partial directory name
top / htop btop btop Beautiful UI, full mouse support, GPU monitoring
git diff delta git-delta Syntax highlighting in diffs, side-by-side view
man tldr tldr Practical examples instead of long manual pages
du dust du-dust Visual bar chart, sorted by size, human-readable
Ctrl+R / manual pipes fzf fzf Interactive fuzzy search for files, history, and anything

Now, let us go through each tool in detail, with install commands, real usage examples, and sample output so you know exactly what to expect before you install anything.

#01

bat — Replaces cat (bat vs cat)

Most of us use cat to quickly look inside a file. The result is a flat wall of plain text - no color, no line numbers, and no indication of what changed recently. bat is a direct, drop-in replacement for cat that is written in Rust. The moment you run it on any source file, the difference is immediately obvious. There is a reason why it is one of the most starred tools on GitHub today.

What makes bat better than cat? It provides syntax highlighting for over 150 languages - Python, JSON, YAML, Bash, C++, and many more. It also shows a Git integration sidebar that marks added, changed, and deleted lines, adds automatic line numbers, and handles smart paging for long files using less. Most importantly, it automatically falls back to plain text output when you pipe it into another command - so none of your existing scripts will break.

bash — Install bat
# Ubuntu / Debian

$ sudo apt install bat

# Arch Linux
$ pacman -S bat

# macOS (Homebrew)
$ brew install bat

Ubuntu / Debian Notice

On Ubuntu and Debian, the binary is installed as batcat, not bat. This is because a different package already owns the bat name. Simply add alias bat='batcat' to your ~/.bashrc or ~/.zshrc to fix this.

bash — Example usage
# View a Python file with syntax highlighting

$ bat script.py

# View without paging — behaves exactly like plain cat
$ bat --paging=never config.yaml

# Show line numbers and colors — useful inside fzf preview
$ bat -n --color=always main.go

Sample Output
───────┬────────────────────────────────────
│ File: script.py
───────┼────────────────────────────────────
1 │ import os
2 │ import sys
3 + │ print("Hello, World!") # + = new line (git)
───────┴────────────────────────────────────
Tip

Add alias cat='bat --paging=never' to your shell config. This replaces cat everywhere in your interactive terminal while keeping the same quick-output behaviour you are used to.

#02

eza — Replaces ls

The classic ls command gives you a basic list of files. No colors for different file types, no Git status, and no built-in tree view. eza is the modern, actively maintained successor to the now-deprecated exa project. It completely changes the experience of browsing directories - once you use it for a few days, going back to plain ls feels like going back to a black-and-white TV.

What makes eza better than ls? You get color-coded output for file types, directories, symlinks, and executables; Git status per file showing new, modified, and ignored files; a built-in --tree view that replaces the separate tree command; file icons with --icons; and automatic directories-first grouping. In my day-to-day work, I use it constantly.

bash — Install eza
# Ubuntu / Debian

$ sudo apt install eza

# Arch Linux
$ pacman -S eza

# macOS (Homebrew)
$ brew install eza

bash — Example usage
# List with icons, directories listed first

$ eza --icons --group-directories-first

# Long listing with Git status and icons
$ eza -lah --git --icons

# Tree view, 2 levels deep — replaces the tree command
$ eza --tree --level=2 --icons

Sample Output (eza -lah --git --icons)
Permissions Size Git Name
drwxr-xr-x - N src/
drwxr-xr-x - - node_modules/
.rw-r--r-- 1.2k M README.md # M = modified
.rw-r--r-- 843 N package.json # N = new file
.rw-r--r-- 4.5k - main.go
Tip — Recommended Aliases

Add these three lines to your ~/.bashrc or ~/.zshrc and you will never need plain ls again:

alias ls="eza --icons --group-directories-first"
alias ll="eza -lah --git --icons"
alias lt="eza --tree --level=2 --icons"

#03

ripgrep (rg) — Replaces grep (ripgrep vs grep)

grep is a powerful tool, but it searches absolutely everything by default — your .git folder, node_modules, build artifacts, and binary files — unless you carefully add exclusion flags every single time. ripgrep (command: rg) was built from scratch to solve this problem. It searches your code quickly and intelligently, automatically respecting your project's ignore rules. In every benchmark I have run, it consistently comes out as the fastest code-searching tool available.

bash — Install ripgrep
# Ubuntu / Debian

$ sudo apt install ripgrep

# Arch Linux
$ pacman -S ripgrep

# macOS (Homebrew)
$ brew install ripgrep

bash — Example usage
# Search for a function across your entire project

$ rg "function login"

# Case-insensitive search, Python files only
$ rg -i "error" --type py

# List only the filenames that contain a match
$ rg "TODO" -l

Sample Output
src/auth.py:42:def function_login(user, password):
src/api.py:87: return function_login(data["user"], data["pass"])
Tip

rg uses smart case by default — a lowercase query is case-insensitive, but the moment you add any capital letter it switches to exact matching automatically. No extra flags required.

#04

fd — Replaces find

The find command is notoriously difficult to remember. Want to list all .py files changed in the last three days? You will almost certainly have to look up the flags. fd solves this with a much cleaner, more intuitive design. The rule of thumb I follow is simple: use fd to find files by name and rg to search files by their contents. For a full reference on the classic tool, take a look at our guide on the find command in Linux.

bash — Install fd
# Ubuntu / Debian (binary is called fdfind)

$ sudo apt install fd-find

# Arch Linux
$ pacman -S fd

# macOS (Homebrew)
$ brew install fd

Ubuntu / Debian Notice

On Ubuntu and Debian, the binary is called fdfind, not fd. Add alias fd='fdfind' to your shell config so you can type fd like on every other platform.

bash — Example usage
# Find all Python files — replaces: find . -name "*.py"

$ fd -e py

# Find any file named "config" anywhere in the tree
$ fd config

# Find .log files changed within the last day
$ fd -e log --changed-within 1d

Sample Output (fd -e py)
src/main.py
src/auth.py
tests/test_auth.py
utils/helpers.py
Tip

Like rg, fd automatically respects your .gitignore file. It skips node_modules, virtual environments, and build folders with no extra flags — exactly the behaviour you actually want when working inside a project.

#05

zoxide — Replaces cd

How many times a day do you type out long directory paths that you have visited a hundred times before? zoxide keeps track of every directory you visit and builds a personal frequency database. After you have visited a directory once, you can jump back to it from anywhere on your system by typing only part of its name. It feels like a small change, but over a full working day it saves dozens of keystrokes every single hour.

bash — Install zoxide
# Ubuntu / Debian

$ sudo apt install zoxide

# Arch Linux
$ pacman -S zoxide

# macOS (Homebrew)
$ brew install zoxide

Required Setup — One Extra Step

After installing, you must add this line to your ~/.bashrc or ~/.zshrc and then restart your shell. Without this step, zoxide will not work:

eval "$(zoxide init bash)"  — replace bash with zsh or fish as needed.

bash — Example usage
# Jump to ~/projects/company/backend/auth — just type the partial name

$ z auth

# Jump to the last visited "back" directory
$ z back

# Interactive selection when multiple directories match
$ zi project

Tip

zoxide uses a frecency algorithm that combines how frequently and how recently you have visited a directory, always picking the most relevant match. You can still use z /full/path exactly like regular cd for directories you are visiting for the first time.

#06

btop — Replaces top and htop

The original top command was designed for terminals that had no color support at all. htop was a massive improvement, but it can still feel dated compared to what modern terminals are capable of. btop is a C++ system monitor that gives you a real-time dashboard of your entire machine — CPU, memory, disk, network, and processes — all from the terminal, with a UI that actually looks good.

What makes btop better than top and htop? A beautiful color-coded interface with real-time graphs; full mouse support so you can click and scroll through the process list; GPU monitoring for both NVIDIA and AMD cards; a process tree view; and the ability to sort, filter, and kill processes without memorizing a single flag. You can even switch themes.

bash — Install btop
# Ubuntu / Debian

$ sudo apt install btop

# Arch Linux
$ pacman -S btop

# macOS (Homebrew)
$ brew install btop

bash — Launch btop
# Simply launch the dashboard — no flags needed
$ btop
What you see inside btop
CPU Usage [████████░░░░░░░░] 52% 8 cores
Memory [█████░░░░░░░░░░░] 6.2 GB / 16 GB
Network ↑ 1.2 MB/s ↓ 4.8 MB/s
Disk Read: 12 MB/s Write: 3 MB/s

PID USER CPU% MEM% COMMAND
1234 ubuntu 12.4 3.1 node server.js
891 ubuntu 4.2 1.8 python manage.py

Tip

Press ? inside btop to open the full help menu. You can click directly on any process to inspect it, or press k to kill a selected process immediately — no flags, no memorization required.

#07

delta — Replaces git diff

If you have ever stared at raw git diff output trying to figure out what changed in a file, you know exactly how frustrating plain red and green text blocks can be. delta works as an automatic pager for Git, silently improving the output of every git diff, git log, git show, and git blame command — without any extra steps on your part. You configure it once and forget about it.

What makes delta better? Full syntax highlighting inside diffs that is language-aware rather than just red or green; a side-by-side view that lets you compare old and new code exactly like a proper code review tool; word-level highlighting that shows you precisely which words changed within a modified line; line numbers for both old and new versions; and shared colour themes with bat so your entire terminal stays consistent.

bash — Install delta
# Ubuntu / Debian

$ sudo apt install git-delta

# Arch Linux
$ pacman -S git-delta

# macOS (Homebrew)
$ brew install git-delta

bash — Configure Git to use delta
# Set delta as your default Git pager globally

$ git config --global core.pager delta

# Enable n/N key navigation between diff sections
$ git config --global delta.navigate true

# Enable side-by-side diff view
$ git config --global delta.side-by-side true

Tip

Once you have run these three config commands, just use git diff and git log -p as normal — delta takes over automatically. There are no new commands to learn and nothing else to change.

#08

tldr — Replaces man

Man pages are thorough and complete — but when you just need to remember how to extract a .tar.gz file, reading through 2,000 lines of documentation is overkill. tldr is a community-maintained collection of simplified cheat sheets that shows you only the most common real-world use cases for each command. Think of it this way: use tldr for quick reminders and use man when you need to understand the complete details of a command.

bash — Install tldr
# Ubuntu / Debian

$ sudo apt install tldr

# Arch Linux
$ pacman -S tldr

# macOS (Homebrew)
$ brew install tldr

bash — Example usage
# Get practical examples for the tar command

$ tldr tar

# Get practical examples for rsync
$ tldr rsync

# Get the most common Git usage examples
$ tldr git

Sample Output (tldr tar)
tar
Archiving utility.

- Extract an archive:
tar xf archive.tar

- Create an archive from files:
tar cf archive.tar file1 file2

- Extract a .tar.gz archive:
tar xzf archive.tar.gz

Tip — Faster Offline Version

Install tealdeer via cargo install tealdeer for a Rust-powered tldr client that caches all pages locally and works completely offline. Run tldr --update once after installation to sync the latest pages.

#09

dust — Replaces du

Have you ever run du -sh * to find out what is eating your disk space, only to get back a list of numbers that are almost impossible to compare at a glance? dust solves this by rendering a visual bar chart next to each directory so you can instantly see which ones are taking up the most space. For a full reference on the classic tool, visit our guide on the du command in Linux.

bash — Install dust
# All platforms via Rust — recommended method

$ cargo install du-dust

# macOS (Homebrew)
$ brew install dust

# Ubuntu/Debian: download the binary from GitHub releases
# https://github.com/bootandy/dust/releases

bash — Example usage
# Show disk usage for the current directory

$ dust

# Limit the output to 2 directory levels deep
$ dust -d 2

# Check a specific directory — useful for /var/log troubleshooting
$ dust /var/log

Sample Output (dust)
4.5G node_modules ██████████████████ 72%
890M .git ████ 14%
220M dist 4%
45M src 1%
Tip

Run dust in any project folder to immediately identify the space culprit. The visual bars make it significantly faster to diagnose disk usage than sorting through a plain du list — especially on production servers where time matters.

#10

fzf — The Fuzzy Finder for Everything

fzf is different from all nine tools above because it does not replace a single specific command. Instead, it adds interactive fuzzy search to almost everything in your terminal — command history, file search, directory navigation, Git branches, process lists, and anything else you can pipe into it. If the other tools on this list are individual upgrades, fzf is the glue that holds your entire modernised terminal workflow together.

What makes fzf so powerful? Ctrl+R now opens your full command history in a searchable, filterable list. Ctrl+T lets you fuzzy-search for files instantly with a bat preview panel on the right. Alt+C lets you jump between directories interactively. And because fzf exposes a scriptable API, you can pipe any list of items into it and get interactive selection back — making it one of the most versatile terminal tools ever written.

bash — Install fzf
# Ubuntu / Debian

$ sudo apt install fzf

# Arch Linux
$ pacman -S fzf

# macOS (Homebrew)
$ brew install fzf

bash — Power combo: fzf + bat + eza preview
# Add to ~/.bashrc or ~/.zshrc for beautiful file previews inside fzf
$ export FZF_CTRL_T_OPTS="--preview 'bat -n --color=always {}'"
$ export FZF_ALT_C_OPTS="--preview 'eza --tree --color=always {} | head -200'"
Power Tip — The Best Three-Tool Combo

The most powerful combination in this entire guide is: fzf for searching → bat for previewing file content → zoxide for jumping to directories. Together, these three tools eliminate the majority of friction in day-to-day terminal navigation.

SETUP

How to Get Started With Modern Linux Tools

You do not have to install all ten tools at the same time. Start with two or three that solve problems you already feel every day. That said, if you are ready to fully upgrade your terminal, here are the one-line install commands for each major platform. These open source CLI tools are among the best Linux tools to improve productivity in 2026 — and they are exactly the kind of Linux power user tools that will genuinely transform how you work every day.

bash — Ubuntu / Debian
$ sudo apt install bat fd-find ripgrep eza fzf btop tldr git-delta zoxide
# Required aliases on Ubuntu/Debian — add these to ~/.bashrc:
alias bat='batcat'
alias fd='fdfind'
bash — Arch Linux
$ sudo pacman -S bat fd ripgrep eza fzf btop tldr git-delta zoxide
bash — macOS (Homebrew)
$ brew install bat fd ripgrep eza fzf btop tldr git-delta zoxide
bash — Install dust (all platforms via Rust)
$ cargo install du-dust

ALIASES

Suggested Shell Aliases

To make these modern tools work seamlessly as drop-in replacements, add the following lines to your ~/.bashrc or ~/.zshrc file and then run source ~/.bashrc to apply. Remember — aliases only apply in interactive terminal sessions, so none of your existing shell scripts will be affected.

bash — ~/.bashrc or ~/.zshrc
# Modern Linux tool aliases

alias cat="bat --paging=never"
alias ls="eza --icons --group-directories-first"
alias ll="eza -lah --git --icons"
alias lt="eza --tree --level=2 --icons"
alias grep="rg"
alias find="fd"
alias top="btop"

# Ubuntu/Debian only — fix binary names
alias bat="batcat"
alias fd="fdfind"

# Enable zoxide (smart cd)
eval "$(zoxide init bash)" # change bash → zsh if needed

# fzf power previews
export FZF_CTRL_T_OPTS="--preview 'bat -n --color=always {}'"
export FZF_ALT_C_OPTS="--preview 'eza --tree --color=always {} | head -200'"

Important Note

Remove the Ubuntu/Debian alias lines (alias bat="batcat" and alias fd="fdfind") if you are on Arch Linux or macOS — on those platforms the binaries are already named correctly and these aliases are not needed.

FAQ

People Also Ask

Are these modern Linux tools safe to install alongside old commands?

Yes, absolutely. All 10 tools install next to your existing commands — they do not touch or replace the originals at the system level. Your shell scripts that use grep, cat, or ls will continue to work exactly as before. If you ever want to remove a tool or an alias, you can do so at any time without affecting your system in any way.

Do these tools work on all Linux distributions?

Most of them are available in the package managers of all major Linux distributions — Ubuntu, Debian, Arch, Fedora, and openSUSE. On some distros, you may need to install tools like dust using Cargo (cargo install du-dust). If you are on macOS, Homebrew gives you access to all 10 tools with a single install command.

Which tool should a Linux beginner install first?

I recommend starting with bat and eza — they are the easiest to appreciate because the improvement is visual and immediate. Install them, add the aliases, and you will notice the difference within minutes. Once those feel natural, add zoxide for navigation and ripgrep for searching and you will have covered the four most impactful upgrades.

Why are so many of these tools written in Rust?

Rust allows developers to write systems-level code that is as fast as C while being much safer with memory management. Tools like bat, eza, ripgrep, fd, zoxide, and dust all benefit from this combination of speed and safety. It is why ripgrep can be 10 to 100 times faster than grep on real codebases without sacrificing reliability.

Will these tools slow down my shell startup time?

Only zoxide requires a small initialisation line in your shell config (eval "$(zoxide init bash)"), and in practice this adds only a few milliseconds. All the other tools are simply binary replacements — they have zero effect on shell startup time. fzf can optionally set up key bindings, which is equally fast.

What is the best combination of these tools for developers?

For day-to-day development work, I personally use ripgrep for searching code, fd for finding files, bat for reading files, delta for reviewing Git changes, and fzf for interactive selection. Add zoxide for smart directory navigation and your terminal is fully equipped for modern development work in 2026.

Conclusion

That's it! We have successfully covered 10 modern Linux tools that replace the classic commands you use every day. These are not just cosmetic upgrades — they are genuine productivity improvements backed by faster runtimes, smarter defaults, and better UX. If you are just getting started, install bat, eza, and zoxide first and add the aliases to your shell config. Once those feel natural, layer in ripgrep, fd, and fzf to complete your terminal transformation. The best part is that none of these tools break your existing workflow — your old scripts keep running exactly as before, while your interactive terminal becomes something you actually enjoy using every day.

Thank you for taking the time to read! We hope this article has helped you understand how these modern Linux CLI tools work and how to get started with them. Drop your feedback or questions in the comments below. Feel free to share this article with others if you found it useful.

LinuxTeck — A Complete Linux Learning Blog
From your first terminal command to advanced sysadmin skills — every guide here is written in plain English with real examples you can run right now.



About Sharon J

Sharon J is a Linux System Administrator with strong expertise in server and system management. She turns real-world experience into practical Linux guides on Linux Teck.

View all posts by Sharon J →

Leave a Reply

Your email address will not be published.

L