My Ideal Linux/Unix Console Setup

I figured I'd do a quick listicle of all my favourite command-line utilities, for no other reason than to simply document it and share with people who might be looking for a way to spruce up their console.

My Ideal Linux/Unix Console Setup

I figured I'd do a quick listicle of all my favourite command-line utilities which have become part of standard installations for me, for no other reason than to simply document it and share with people who might be looking for a way to spruce up their console.

Antigen

I use ZSH as my shell, because I like the autocompletions and the flexibility it has vs. Bash. Antigen then, takes the concepts of projects like Vundle and Oh My ZSH, and mashes them together to make a ZSH plugin manager which is gloriously simple to setup, maintain and use.

Oh My VIM

Like Antigen, this is less a tool in and of itself, and more of a set of plugins or configurations for an existing tool (Vim) that I find particularly elegant, useful, and/or novel.

A couple of caveats about this one, however:

  1. It's remained largely unchanged since 2017.
  2. It DOES require some external binaries/tools/libraries in order to function properly. (tl;dr: If you're on a Ubuntu/Linux environment, make sure you have vim-nox, make, and build-essential installed. If you're on macOS, the repo contains a prepare_mac.sh script which should sort you out)

In spite of that though, it remains a fantastic drop-in set of plugins/configs for Vim that I always end up installing. I've thought about forking it, or building something which uses an alternate set of plugins/frameworks. Just haven't gotten around to it yet.

Pretty, user-friendly Vim config that's fall-off-a-log easy to set up. Honestly, it almost doesn't matter that it hasn't been updated in years...

Bat

There seems to have been a trend of late to re-engineer some standard Unix tools (cat, grep, ls, etc.). A large part of this trend seems to revolve around writing these "new generation" tools in Rust. Part of the conceit here being that Rust, being known for its remarkable efficiency, will improve the performance of things like processing large volumes of data, all while adding usability and whizzbang syntax highlighting among other features. Bat is one of these tools. It's meant to be a 1:1 clone of cat, but with lots of new bells and whistles, including git integration, really fantastic paging options, and even manpage support.

Example output from Bat's flashier, but honestly much improved output vs. its spiritual predecessor.

Exa

Continuing on with Rust-written "new generation" alternatives to standard Unix tools, we have Exa. A replacement for ls which honestly, why do you need to replace ls? Well, what if I told you that unlike ls, Exa speaks Git, uses human-readable file sizes by default, along with highlighting based on specific filetypes, and just a much more sane set of defaults in general. I dunno about you, but I'm pretty sold. Also, you can totally just alias ls=exa without breaking a damn thing.

Shiny, smart, and much more readable. If you thought ls wasn't worth replacing, Exa is here to prove you wrong.

Tealdeer

Tealdeer is a rust implementation of tldr-pages. Which is one of the best ideas I've seen in a while. Manpages, for as helpful as they are, can be A LOT sometimes. Sometimes, you just want a quick command-line option cheatsheet. And that's EXACTLY what tldr-pages is meant for.

Example tldr-page output; Consise, readable, no-nonsense, and on the whole much friendlier than a 10-ton monolithic manpage.

Final Thoughts/Summary

These are just a few of the tools I now include as part of my standard Unix/Linux environment setup. I'll probably post more of these kinds of articles in the future, so make sure you check in every so often. Hopefully you find these tools as useful as I do.