Useful Command Line Utilities

Recently I've been doing a little tuning of my shell environment, swapping old tools for new ones and tweaking various settings. I thought I'd highlight a few of them.

Ghostty

For years I used iTerm2 as a replacement for the default Mac OS Terminal app. Recently I've switched to Ghostty. It's just as configurable in the ways I care about as iTerm2, but much, much faster. I sometimes have reason to paste a decent amount of text into the terminal and Ghostty handles it much faster than iTerm2. Overall it just feels more modern and slicker than iTerm2.

Starship

terminal with starship, z, zi examples

In the screenshot above you can see a few shell prompts showing what Starship can do. For example, when you're in a folder containing a programming project, it will show you the language in use. For example in the "sshaws_rust" folder you can see "🦀 v1.97.1", which shows my current version of Rust installed. Similarly you can see "☕️ v17.0.8" for Java, "🆂 v3.8.4" for Scala, and "🐍 v3.12.12" for Python. It also shows you stats about your machine (e.g. free RAM), what directory you're currently in, or how long a command took to run.

In the screenshot below, you can see the "🌏 marzipan" which shows that this is a remote machine named "marzipan," which helps prevent confusion about what machine you're on.

terminal with remote starship

zoxide

I haven't been using this very long, and I'm still getting used to it, but zoxide is a handy way to navigate around your folder hierarchy. In the first screenshot above you can see that z core took me straight to that directory and zi opens an interactive search function.

fzf

Like most, I'm sure, I end up typing the same or very similar commands repeatedly. "Ctrl-r" is the standard way of searching for previous commands. fzf turbo-charges this and works very well.

bat

terminal with bat

The Unix/Linux command cat is over fifty years old, and I've been using it for almost thirty. bat replaces it and includes syntax highlighting and line numbers. Because I've been using cat for so long, and have muscle memory for cat, I've set an alias from cat to bat.

eza

terminal with eza

Combined with a Nerd Font (I use "Inconsolata Nerd Font Mono"), eza replaces the built in ls and ls -l with a much fancier directory listing. In the screenshot above you can see that each document type gets a little icon, and there are far more color codes than plain ls. The columns shown in the -l view can also be customized much more than vanilla ls.

ripgrep

terminal with ripgrep

Many years ago I started using grin which is (was?) a recursive grep utility. Being a Python 2 utility and Python 2 reached end-of-life in 2020, I switched to grin3. Now I'm getting used to using ripgrep, which A) is faster than grin3, and B) is maintained while grin3 is not.

oh my zsh

I've been using zsh for years, and oh my zsh helps configure it with all kinds of goodies.

Raycast

Raycast conversion

It's not a command line utilty, but Raycast has proven invaluable. It's a supercharged Spotlight replacement. It has many useful features, not least of which is the Clipboard History. The Calculator is great for quick math and unit conversion.

Confguration Files

If you want to see my configuration files, just drop me a line!