Useful Upgrades to Existing Linux Commands

A picture of a person using a computer.


When many of us think of the core utils in Linux, we think of the commands like cat, ls, and grep. These commands are the backbone of the Linux command line, and they are the first commands that most people learn when they start using Linux.

However, these commands are limited, as they have been around since the beginning, and are included on the slimmest of distributions. If you want a list of all of the standard upgrades that aren't built in, this is the guide for you.

The List

bat - A cat Clone with Syntax Highlighting

bat is a clone of cat with syntax highlighting. It's a great way to view files in the terminal, and it's a great way to get syntax highlighting for a file from within the terminal. You can even use it as a pager, like less or more, just by piping output into bat (e.g. ls | bat).

exa - A ls Clone with Colorful Output and Tree View

exa enhances ls with colorful output and a tree view for more intuitive directory navigation. It's a great way to view files in the terminal, and provides syntax highlighting in the terminal. You can also use it in place of the built-in tree command by doing ls -T.

fzf - A Fuzzy Finder for the Command Line

Often times, we know the name of something, but don't want to type in the entire path to it. This is where fzf comes in, an easy-to-use fuzzy finder. It's an easy way to find files, commands, etc. Several other CLI tools like bat and exa use fzf to provide fuzzy finding if you have it.

rg - A grep Clone with Better Defaults and Speed

rg is exactly like grep, but it was built with speed in mind using Rust. You can use it anywhere you would use grep, and it will be faster. It also has better defaults, so you don't have to use the -i flag to make it case insensitive, and it automatically ignores hidden files and directories. It's all just built in, exactly the way you would expect it to be.

tldr - A man Clone with Shorter, More Useful Output

man is the standard way to get help on the command line, but it's not always the most useful. It's typical to see 600+ lines of output for a command, and it's not always easy to find what you're looking for. tldr is a man clone that provides shorter, more useful output. It's a great way to get help on the command line quickly, to easily remember common syntax.

zoxide - A cd Clone with Smart Directory Tracking

zoxide is a cd clone that tracks your most used directories, and allows you to easily jump to them. You can just type z foo to jump to the directory that contains foo in its name. It's a great way to quickly jump to directories that you use often without thinking about it much, and it has a built-in fzf integration.

jq - A json Parser with Syntax Highlighting

jq is a very useful JSON parser. It's a great way to manipulate JSON data in the terminal, and get syntax highlighting in the terminal. This can be useful for things like parsing API responses, or just viewing JSON files in the terminal.

dust - A du Clone with a Better Interface

dust is a du clone with a better interface. It's a great way to view disk usage in the terminal, but it also shows a visual representation of the disk usage. It's a great way to get a quick overview of disk usage, and you don't have to remember all of the defaults for du that make it usable.

sd - A sed Clone with Better Regex Support

sd is a sed clone with better regex support. Use it like you would sed, but ignore all the weirdness that comes with sed. Instead of sed -i 's/foo/bar/g', you can just do sd foo bar. Much easier to remember, and much easier to use.

starship - A bash and zsh Prompt with Git Integration

starship is a bash and zsh prompt with Git integration. Easily customize your shell prompt to show Git info, current directory, user, sudo, etc. This is a lot more lightweight than alternatives like powerline, and it's a lot easier to customize.

fd - A find Clone, Without the Weirdness

fd is a find clone, without the weirdness. Don't worry about the archaic usage of find, and just use fd instead. It returns color coded output, you don't have to use weird flags to get the standard behavior, and it's faster. What's not to love?

btop - A htop Clone, But Better

btop is a htop clone, but better. It's a great way to view processes in the terminal, with a more customizable and beautiful interface. It's a great way to get a quick overview of processes, with some added features like a built-in kill command. I prefer this over even a System Monitor GUI.

procs - A ps Clone, With a Better Interface

procs is a ps clone, with a better interface. Color coded output, and easy to read and navigate in a terminal. Not much else to say about it, but it's a valuable tool to have in your toolbelt.

nvim - A vim Distribution with a Huge Community

Tons of plugins for just about any use-case, Lua support, and a huge community. If you're looking for a vim distribution, this is the one to use. It's probably the most customizable editor that has ever existed, and it's an extremely good learning experience.

micro - A nano Clone, But Better

If, for whatever reason, you love nano, but want something better, micro is the tool for you. All the functionality of nano, but with a better interface and some added features. While it's not my first option for text editing, it's not a bad option.

aria2 - A better option than wget and curl

If you ever wondered why downloads can't continue after they get interrupted, wanted to use multiple connections to download a file, or wanted to download a file from multiple sources, aria2 is the tool for you. It's faster, more reliable, and more feature rich than wget and curl.

The Whole List (for ease of copying)

sudo apt install \
    bat \
    exa \
    fzf \
    ripgrep \
    tldr \
    zoxide \
    jq \
    dust \
    sd \
    starship \
    fd-find \
    btop \
    procs \
    neovim \
    micro \


These are just a few of the many tools that are available to you on Linux that we can make use of every day. There are many more, and I encourage you to explore them.