The Art of the Command Line: My Favorite Obscure CLI Tools
We all know the basics: ls, cd, grep, rm. They are the bread and butter of the command line. But the true power of the terminal lies in the vast ecosystem of tools that go beyond the defaults. These are the tools that can transform your workflow from a series of tedious commands into a fluid, efficient dance.
Today, I want to share a few of my favorite, lesser-known command-line tools that have had a huge impact on my productivity.
1. fzf - The Fuzzy Finder
fzf is a general-purpose command-line fuzzy finder. That might not sound exciting, but it's a game-changer. It reads a list of items from standard input, and then opens an interactive search prompt that allows you to filter the list in real-time.
Why it's great:
- Blazing fast: It's written in Go and it's incredibly fast.
- Versatile: You can pipe anything into it. I use it to search my command history (
ctrl+r), find files (ctrl+t), and even switch git branches. - Interactive: The interactive search is what makes it so powerful. You don't need to remember the exact name of what you're looking for.
2. ripgrep (rg) - The Better grep
grep is great, but ripgrep is better. It's a line-oriented search tool that recursively searches your current directory for a regex pattern.
Why it's great:
- Faster than
grep: It's built on Rust's regex engine and it's significantly faster thangrepand other similar tools. - Smarter defaults: It automatically ignores files listed in your
.gitignoreand skips hidden files and binary files by default. - More readable output: The output is color-coded and easy to read.
3. tldr - The Simplified man Pages
man pages are comprehensive, but they can also be overwhelming. tldr (Too Long; Didn't Read) is a community-driven project that provides simplified, practical examples for the most common command-line tools.
Why it's great:
- Practical examples: Instead of a wall of text, you get a few common use cases for the command.
- Easy to contribute: The pages are just markdown files in a GitHub repo, so it's easy to contribute new pages or improve existing ones.
- Saves time: When you just need a quick reminder of how to use a command,
tldris much faster thanman.
4. bat - The Cat with Wings
bat is a cat clone with syntax highlighting and Git integration. It's a simple tool, but it makes reading files in the terminal so much more pleasant.
Why it's great:
- Syntax highlighting: It supports a huge number of languages and file types.
- Git integration: It shows which lines have been modified since the last commit.
- Paging by default: It automatically pipes its output to a pager (like
less) if the file is too large to fit on one screen.
Conclusion
These are just a few of the many amazing command-line tools out there. Exploring and finding the tools that fit your workflow is part of the art of the command line. So, I encourage you to give these a try, and to go on your own journey of discovery. You might be surprised at how much more productive and enjoyable your time in the terminal can be.