When many of us think of the core utils in Linux, we think of the commands like
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.
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
more, just by piping output into
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
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
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
zsh Prompt with Git Integration
starship is a
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
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
The Whole List (for ease of copying)
sudo apt install \
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.