8 “hidden” terminal features that make Linux feel like a power-user OS

Along with the command line shell, Linux provides countless tools and programs to wield power over your system. But many of these features are hidden beneath the surface, waiting for you to discover them.
The following features will help you get the most out of Linux and they are all available for use locally or on remote servers.
Tab completion for less typing
Tab completion is one of those features we all take for granted. This seems like such an obvious basic feature, but try using a terminal without it, and you’ll curse the omission. If you’ve ever used DOS or any command line without finishing, the pain will be real.
Unix has always had excellent tab completion, and it’s an essential feature now that file names are longer and harder to type in their entirety. Just press Tab and your shell will complete a command or file name, provided the prefix you already typed is unambiguous. Otherwise you’ll get a list of ambiguous commands/file names, which is useful in itself.
But Linux tab completion is much more powerful than the rudimentary version that everyone learns from day one. Take the git command, for example:
In this case, you can see a complete list of supported subcommands simply by typing git and pressing Tab. Git has even more powerful completion and can use context to infer a filename that you need to pass in to commit, for example.
As a power user, you’ll be working with files in Terminal a lot, so the efficiency gain that tab completion provides is invaluable.
Interactive order history
Another big efficiency gain is the effective use of order history. Again, the simplest case is widely used, but more advanced features await testing.
Press Up in a terminal, and you will review previous commands, with Down moving in the opposite direction. Press Enter and you will re-execute the currently displayed command; this feature alone will save you a lot of time.
The real star here, however, is Ctrl+r. Press this shortcut and you will launch a powerful interactive search:
As you type, the most recent matching command in your history will appear. You can continue typing to refine the match or tap Ctrl+r to move to the previous match. Ctrl+s moves in the opposite direction.
If you find yourself typing often history | Good morning…consider using this interactive search instead.
Input and output redirection
At the heart of Linux is a concept called the “Unix philosophy.” This set of principles helps explain why certain commands don’t produce results when you run them and why Linux exposes things like processes and hardware devices as files.
One of the most central features of the Unix philosophy is redirection: passing data as a stream of text between programs. When you run a command, you typically provide input from your keyboard, which will generate output that appears on your screen. But both of these can be attached to data from another program or file:
$ < database.py grep -E '^\s*def\s+' | wc -l > numlines
The above command redirects the database.py file to grep, searching for the given pattern. It then redirects the output to wc, which counts the number of rows (i.e. the number of matches). Finally, it redirects the output to a file named numlines.
Full process control
What’s happening on your computer can often seem like magic, whether you’re using Windows, macOS, or Linux. But, ultimately, it’s just executing program code, and the standard unit of such code is the process.
The command line provides incredible visibility into processes, with tools like ps, top, and the /proc file system.
Using ps, for example, you can discover which processes you have started and view all running processes. You can use ps -e f to show the process hierarchy, which can explain which processes started which subprocesses. The unique identifier (PID) allows you to directly manipulate a process, using the kill command to stop its execution, for example.
Work is closely related to the concept of process. This is your shell’s view of an interactively started process. Using Tasks, you can control which tasks are running concurrently, pause long-running tasks, and bring to the forefront processes that you may need to interact with.
Multitasking with Windows
Although tmux is a superior choice, screen, its predecessor, is more widely available, so it’s a good idea to master it, even if you then move on to the alternative.
The GNU screen has two very different, but strongly related, main features:
-
It allows you to work on a remote machine, log out, and then resume the same session later, with the same programs running as before.
-
It allows you to run multiple shell sessions in a single terminal window, approximating a windowing layout.
All users will benefit from the first feature, but power users really get the most out of split panes, organizing similar tasks into groups they can easily navigate.
Mouse support in TUIs
Avoid embarrassment and scorn from Windows users with this simple trick! Just grab your mouse and start navigating the text interfaces as if they were GUIs all along.
The TUI publishing program is a great example; plug in a mouse and you can click buttons, tabs, and other interactive widgets so you can use it without even having to touch the keyboard.
OK, it might seem a little weird to use a mouse in your terminal, but the simple fact that you can do it is pretty impressive. And you’ll definitely feel like you have more power at your fingertips. Some programs, like Lazygit, even recognize the scroll wheel to move lists up and down.
Clickable hyperlinks
It’s easy to miss Linux updates that come after you’ve initially learned about it, especially command line features, because you might expect them to be more stable. Hyperlinks are not new, but shells haven’t always supported them by default.
On a recent Linux system, you should be able to click on a URL in your terminal to open it in your browser. Depending on your environment, you may see an indication that the URL is clickable, like the wavy underline my Kitty terminal displays on hover:
Modern terminals, including GNOME Terminal, iTerm2, and kitty, support more advanced hyperlinks using a specific escape sequence. To test them in your own terminal, run this command:
printf '\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'
You should see the text “This is a link” displayed as a clickable hyperlink in your terminal:
If you want to include sophisticated hyperlink support in your own scripts, you can find syntax details in this overview. But you can still feel like a power user without generating your own links, because programs continue to add support for this format in their output.
One command to stop everything
How to turn off your computer? Hobbyists press the power button, while power users politely power off using a menu in their GUI. But real power users rarely stray from the command line:
Yes, you can shut down your system by running a single command. Although with great power comes great responsibility, it certainly helps to shut down your machine simply by typing:
shutdown now
You may not often choose to quit using the command line, but when you do, you’ll probably feel more like a power user than ever!
You can use the shutdown command to restart, schedule a future shutdown, or even just put the machine to sleep. It is therefore quite flexible and particularly useful for multi-user systems, where it can send a message to all connected users, asking them to save their work.




