Skip to main content

The Shell.

·605 words·3 mins
Technology NixOS, Personal_Configuration
Xin
Author
Xin
Artist, Programmer, Expirementalist.
Table of Contents
Rethink,Refactor,Rebuild. - This article is part of a series.
Part : This Article

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.

./images/emacs-term.jpg

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.

Rethink,Refactor,Rebuild. - This article is part of a series.
Part : This Article