Modernized CLI Tooling
Below are brief summaries of the tools I have added to my shell. Each heading is a link to their source repo.
There is always a risk of incompatibility when using more modern replacements for the classic core utils. With that being said. I am not a professional systems admin, or programmer. Or in any sort of IT professional. So I don't think there is any reason to be worried about getting used to using tools that may not exist on other systems.
Realistically the closest I am going to get to system admin work will be a home lab, and it's fairly trivial to add these tools to any system managed with Nix. With that being said. I have tried to maintain the general workflows provided by the standard tools through alias'.
Zoxide
Billed as a smarter replacement for CD
, zoxide makes jumping to frequently used to directories a bit faster and easier with recency based filtering, and fuzzy matching. While not game changing on its own. When used in conjunction with some of the other tools. It makes a noticeable difference in jumping around the system.
R-Sync
This is largely a drop in replacement of cp
with the addition of a progress bar for larger files.
BAT
Prints the contents of a file in a pop up window, and support syntax highlighting. Similar to how man
pages work. Used as a replacement for cat
.
Trash-CLI & Shred
This replaces the normal rm
command. Moves files into a temporary storage location. Allowing them to be restored. I have it configured so that the trash container empties itself on shutdown. I also added a alias to the shred
utility to make it easier to use.
EZA
One of the larger upgrades. This is a much more configurable version of the ls
command. I have a total of four alias'. Each assigned to a slightly different output format. I really like this in particular as ls
is one of the most frequently used commands. The one complaint I have is that is seems to highlight files at random, and I wish I could disable that. Instead highlighting only directories.
FZF
This tool adds fuzzy completion to other tools like EZA
. And in conjunction with Zsh
makes navigating much easier. Can also be used with a ZSH
plugin as a complete replacement for normal shell completion.
RipGrep, FD, Entr
I have grouped these three tools together as they are wholly unfamiliar to me. With FD
allowing me to search a directory for a specific file name. RipGrep
allowing me to search a directories files for matching strings, and Entr
running arbitrary commands anytime a specific file is changed.
ZSH and DASH.
So to quickly get this out of the way. While I have installed it. I do not currently plan to switch to DASH
for my primary system shell. I don't understand the risks of BASH
incompatibility well enough to make that jump. Instead I am planning on using it to write, and test my own personal scripts against. Since DASH
is fully interoperable with BASH
.
ZSH
on the other hand has been a massive change. The level of customization that seems to be common with it is awesome, and I have really been investing in making the it work the way that feels best for me. Below I have posted some screen shots of it in use.
Final Thoughts
While I still have a lot of work to do before I can consider this revision finalized. I am much happier with how things flow now. The next big step…. Rebuilding my Emacs config.