Beneath the surface of the well-known Linux commands lies a treasure trove of lesser-known utilities that can make your life easier, enhance your productivity, and even impress your fellow Linux users. Let’s explore some of the most powerful but overlooked commands that deserve more attention.

1rsync - The Smarter Alternative to cp and scp

Most people rely on cp to copy files, but rsync does the same job better. It’s faster, supports resume functionality, and can synchronize files across systems efficiently. It can also preserve file and directory attributes such as timestamps, permissions, and symlinks. It works great for everything from copying one file to backing up an entire file system.

rsync is installed on virtually all Linux systems by default. If it happens that it is not on your system, install with the following command:

A screenshot of the man page for the rsync utility.

Basic usage:

2bat - A Better cat

One of the first Linux command line tools most users learn about is cat. It’s often used to print text files to the screen in a terminal. It is effective, but provides only very basic and mostly WYSIWYG output. bat is a powerful alternative that, among other things, provides syntax coloring for code, paging functionality, forward and backward scrolling, and much more.

Install with:

With bat open, you can maneuver easily using the arrow or page keys. Press H to see the full help and Q to quit back to a command prompt.

3fd - A Faster, Smarter find

The find command is powerful but can quickly become overly-complicated if you want to go beyond fairly basic searches. The fd command is both faster and more intuitive, making it a great alternative.

fd does a good job of combining powerful features and ease of use. If you’re not very tech savvy, the –glob switch is most likely what you’ll be looking for. For more advanced users, the ability to use regular expressions will allow you to find just about anything.

Sample output from the bat command in the Linux terminal

4ncdu - A Better Disk Usage Analyzer

Most users go to the du command to check the condition of the overall disk usage on their system. It works fine if you just want to see how much space you have available but if you want to get into exactly what is using up that space, things become more difficult. That’s where ncdu really shines.

It will take a few moments for ncdu to scan your directory tree and set itself up the first time you run it. Subsequent runs will load significantly faster. you may hit the question mark key for help if you need it, but the interface is very intuitive. You’ll quickly see what directories and files are taking up the most space on your system and can drill down as far as the tree goes.

Output from the fd command in a Linux terminal.

5htop - A Better top

Most Linux users are quite familiar with the process viewer command top and there’s a reason for that—it does what it does very well. There is, however, an alternative that improves on top both cosmetically and functionally. Let me introduce you to htop.

As you can see, htop adds color to its output, making it a bit easier to pick out the elements that interest you quickly. It also shows a bit more detail about your hardware by default. CPU, memory, and swap conditions are displayed by default. You can get a great idea of what’s happening on your system with just a quick glance. Use the function keys to change settings, kill processes, and more.

Output from the ncdu command in a Linux terminal

6column - Print Data in Neat, Aligned Columns

Have you ever found yourself looking at a file of comma, space, or semicolon-separated values, wishing there was a quick and easy way to organize it on the screen and make it easier to read? This is where column comes in. When you just need to get some quick information out of a file and don’t want to actually process the data, column transforms your file into organized, easy-to-read tables right in the terminal.

This command should be available on virtually all Linux distributions with no need to install anything.

Output from the htop command in a Linux terminal

Here is an example of viewing a CSV file in the terminal with no extra formatting:

And here is how it looks when run through column:

You can get more out of column by piping its output into other tools or files. You can save the output as a new file or pipe it into more for the ability to move backward and forward through the data.

7watch - Monitor Any Command in Real Time

The watch command will let you run any other command at specific time intervals (default of two seconds) and keep an eye on the output. It’s perfect when you need to monitor some part of your system for changes.

The watch command should be available on all Linux distributions by default.

Viewing an example CSV file in a Linux terminal

Whether you’re looking for a runaway process or trying to verify that desired changes are happening, the watch utility can give you insights into things you might now be able to see otherwise.

8pv - A Progress Bar For Long-Running Commands

There are many Linux commands, such as cp and mv, that don’t give any kind of useful output about their progress. If you’re trying to manipulate large files or need to run other commands that can take some time to complete, you’ve undoubtedly found yourself in the “Is it actually doing anything?” situation. This is where pv comes in.

The pv command provides a progress bar complete with percentage and time estimates of job completion. You no longer have to scratch your head wondering if you should let the process go or kill it and try something else.

Output of the column command in a Linux terminal

9tldr - Simplified Manual Pages For Common Commands

The man pages built into Linux are a great resource when you need a detailed description of how something works and can be used. Sometimes, however, the information gets so detailed and complex that you end up more confused than when you started reading. That’s where tldr comes in.

The tldr command works similar to man but it will give you simplified and more straightforward explanations. For most commands it also provides easy-to-understand command line examples to help you get through the most common tasks quickly.

Output from the watch df command in a Linux terminal

10eza - A Modernized ls Replacement

The directory listing command ls is probably the single most used command on any Linux system—and the oldest. eza gives the same basic functionality but adds many extras that enhance the experience of today’s hyper productive power users.

For developers, analysts, and other power users, eza can quickly become an indispensable tool. It provides more meaningful information than its older counterpart and the color-coded output makes it easy to focus on exactly what you are looking for.

Example of pv output in a Linux terminal

Sample output from the tldr command in a Linux terminal