As of today, you can do almost everything on Linux through a graphical interface. You can install applications from an app center, change system settings, and search for files using a file manager, all without touching the terminal. For most users, this is more than enough.
However, throughout my Linux journey, I learned that some tasks become much faster when done through the terminal. It can significantly speed up your workflow and save a lot of time. One such task is searching for files or text using terminal-based tools, which are often quicker, more precise, and more powerful than their GUI alternatives.
6 Linux terminal habits I wish I learned years ago
These neat tricks make my Linux experiments a lot easier
Fd
A faster and simpler way to find files and directories
I honestly wonder why fd is not the default on every Linux system, because it is one of the first tools I install on a fresh setup. It is a modern alternative to find that can search files and directories insanely fast using a simple and intuitive syntax.
Most of the time, you just type a keyword and the results appear. For example, typing fd config instantly lists files and folders with config in their name, without extra flags or noisy output. Fd also provides color-coded results and highlights matches, which helps you scan results quickly and spot relevant files immediately.
Another useful feature is that it ignores hidden files and .gitignore patterns by default, keeping results clean. However, if you explicitly want to search through hidden files, fd supports that also with a simple -H (or --hidden) flag.
6 CLI tools I install before anything else on a new Linux machine
I've set up these terminal utilities on every Linux system in my arsenal
Ripgrep (rg)
Search inside any files at lightning speed
Ripgrep, or rg, is what I reach for when I need to search inside files. It is especially useful when I know a file exists but have no idea what I named it. All I remember is a specific line of code or a phrase inside it. Open a terminal and type something like rg localhost, and it scans the specified directory, showing exactly where that word appears, along with the filename and line number.
Like fd, it is extremely fast and smart enough to skip binary files and junk directories automatically. You can also pipe rg output into other commands and adjust the formatting to suit your workflow.
Fzf
Lets you fuzzy-search and select anything interactively
Fzf is a general-purpose command-line fuzzy finder that turns any list into an interactive search interface. It does not come installed by default on most distributions, but once you use it, it becomes hard to live without. You can pipe almost anything into it. For example, ls | fzf lets you pick a file instantly without scrolling through a long list. As you type, results are filtered in real time using fuzzy matching that tolerates typos and abbreviations.
When paired with tools like fd or rg, the terminal becomes an interactive control panel. You can switch Git branches, search files, recall commands, or even kill processes. The preview feature is especially powerful, allowing you to view file contents, directory trees, or command output as you navigate results.
Locate
Finds files instantly using a prebuilt index
Sometimes you know a filename but have no idea where it lives. That is where the locate family of tools, including mlocate and plocate, comes in. Instead of scanning the disk every time, locate searches a prebuilt database. For example, running locate nginx.conf can instantly tell you where that file exists. This makes it extremely fast.
The trade-off is that the database reflects the filesystem state from the last update, so recently created files may not appear until the next refresh. For most use cases, this delay does not matter. If you need real-time results, tools like fd or find are better choices.
Modern implementations like plocate use improved compression and indexing strategies, making searches faster while consuming less disk space. The locate command is often available by default, though some systems require installing mlocate or plocate.
Whereis
Shows where a command lives on your system
If you want more than just the executable path, whereis is your go-to tool. It searches standard system locations and returns the binary, related source files, and any installed manual pages. This makes it especially useful when multiple versions of a tool exist or when you're exploring how something is laid out on your system.
For example, running whereis python can instantly reveal whether Python is installed in multiple locations, where its documentation lives, or whether you're dealing with a system package versus a custom build. You can also use the which command when you only need to know which executable the shell will run. The whereis and which commands usually come preinstalled on nearly every Linux system.
Pgrep
Finds running processes by name
Searching isn't limited to static files. Sometimes you need to track down a running process that is eating up your CPU. While top and htop are excellent for monitoring system activity, pgrep is a great tool for locating a process by name or other attributes. If you know Firefox is acting up, pgrep firefox returns the relevant PIDs immediately, without any manual filtering or output parsing.
Once the culprit is identified, pkill lets you send a signal, usually to terminate the process, in a single step. This avoids the traditional two-step process of finding a PID and then invoking kill. Both pgrep and pkill come standard on most Linux distributions and support flexible pattern matching, making them especially useful during development or when restarting services that have locked ports or consumed excessive resources. As a safety measure, I always confirm matches with pgrep before using pkill, since overly broad patterns can affect multiple processes.
Broot
Helps you navigate directories visually in the terminal
Broot reimagines file navigation. Instead of blindly moving through directories with cd and ls, it presents a live, searchable tree view. You can use it when exploring unfamiliar directories or cleaning up cluttered folders. It provides context that plain listings lack, making it much easier for you to understand directory structure at a glance.
Typing filters the tree in real time, and selecting an entry lets you jump directly into directories or open files. It handles large directory trees efficiently by summarizing content instead of overwhelming you. With custom actions, broot can open files in your editor or launch viewers based on file type. It is not installed by default; however, you can configure it on your system by following the instructions given on its GitHub page.
Search like a desktop search engine
When filenames aren't enough, or when searches require understanding file contents beyond simple pattern matching. The Recoll desktop search tool indexes the actual content of documents, emails, PDFs, and countless other file types. It extracts text from complex formats, making everything searchable through a unified graphical interface. You can also define which directories to index, how often to update, and which file types matter. Once configured, Recoll runs quietly in the background, making your entire document collection instantly searchable. Recoll is not installed by default and needs to be set up.
