7 Great Terminal/CLI Tools Not Everyone Knows
Do you work frequently work with the CLI? Whether you use Windows, macOS, or Linux, in the video below, you'll learn 7 tools that I frequently use: exa, Clink, rg and rga, plocate, bat
, jq, and f**k.
What’s in the Video?
The video gives a short overview of how to use the tools mentioned above work. In order of appearance:
- exa is a modern replacement for the venerable file-listing command-line program
ls
that ships with Unix and Linux operating systems, giving it more features and better defaults. It uses colors to distinguish file types and metadata. It knows about symlinks, extended attributes, and Git. And it’s small, fast, and just one single binary - written in Rust. - Clink combines the native Windows shell cmd.exe with the powerful command line editing features of the GNU Readline library, which provides rich completion, history, and line-editing capabilities. Readline is best known for its use in the Unix shell Bash, the standard shell for Mac OS X, and many Linux distributions. You'll get context-sensitive auto-completion, a nice color scheme, keyboard shortcuts, from history search to undo, navigation shortcuts, and extensive scripting capabilities.
- ripgrep is a line-oriented search tool that recursively searches the current directory for a regex pattern. By default, ripgrep will respect gitignore rules and automatically skip hidden files/directories and binary files. ripgrep has first-class support on Windows, macOS, and Linux, with binary downloads available for every release. ripgrep is similar to other popular search tools like The Silver Searcher, ack, and grep. Even more, ripgrep comes with an addition called ripgrep-all, which allows you to grep for text in various filetypes, from PDF, to docx and even movies (if they have subtitles).
- plocate is a locate(1) based on posting lists, completely replacing mlocate with a much faster (and smaller) index. It is suitable as a default locate on your system. In short: Want to find your files in lightning speed? Use plocate.
bat
is acat
clone with syntax highlighting and Git integration. For example: Whenever you cat an .json file, cat gives you the output of said file, in black-and-white, without line numbers and without any pretty printing.Bat
, by default, does all of that for you, so you'll be able to look at a nice, pretty printed and colored JSON file.- jq is a lightweight and flexible command-line JSON processor. How can you use it? Think of quick one-off job on the command line. Say you want to quickly curl some data from an API endpoint and then "do something" with the resulting JSON. Of course, you could fire up an IDE and your favorite programming language to transform that JSON to something useful. Or, you use JQ, learn a bit of its syntax and do everything in a single command line.
- thef**k is a magnificent app inspired by an @liamosaur tweet that corrects errors in previous console commands. Say you mistype "git brnch:" thef**k will automatically suggest you to rerun the command as "git branch." This is the same for commands that need
sudo
, like installing packages through a package manager, and many other supported commands.