Rewrites of GNU Utilities (2024-06-27)
There seems to be a modern trend of rewriting common GNU utilities, especially in Rust. The GNU utils have been rewritten before, most notably as BusyBox, the GNU core utils as a single binary meant to be used in extremely small embedded Linux environments. However, Rust seems to be a popular language used to write these newer ones, evidently because Rust is a new darling language. However it seems to have a newfound relevance as rust code was recently added to the Linux kernel.
These rewrites often offer improved functionality over their much older counterparts, have more human readable options, syntax, and outputs, and some even boast greater efficiency and speed. Now, if true, these improvements are likely never human detectable. No person will likely ever feel a difference in speed at a cli, but it is fun to note. Despite these improvements these rewrites will likely never gain widespread use these the originals are already installed and countless scripts and other tools already depend on their existence. But a poweruser who wants to have fun and utilize newer, more powerful and intuitive tools, should have at it. I'd actually recommend many of them, they're amazing. I'd just caution these users to not come too accustomed to using them as if they ever want to become a professional, they'll immediately encounter a situation where only GNU utils are at their disposal. I definitely have to keep this in mind when either using a rewrite or my own aliases.
In this post, I'm going list the ones I personally use and others I've never tried but am interested in.
bat
A cat
clone with syntax highlighting and Git integration.
exa
A modern replacement for ls
.
lsd
The next gen file listing command. Backwards compatible with ls
.
delta
A viewer for git
and diff
output
dust
A more intuitive version of du
written in rust.
duf
A better df
alternative
broot
A new way to see and navigate directory tree
s
fd
A simple, fast and user-friendly alternative to find
.
ripgrep
An extremely fast alternative to grep
that respects your gitignore
ag
A code searching tool similar to ack
, but faster.
fzf
A general purpose command-line fuzzy finder.
mcfly
Fly through your shell history
. Great Scott!
choose
A human-friendly and fast alternative to cut
and (sometimes) awk
jq
sed
for JSON data.
sd
An intuitive find & replace CLI (sed
alternative).
cheat
Create and view interactive cheatsheets on the command-line.
tldr
A community effort to simplify man
pages with practical examples.
bottom
Yet another cross-platform graphical process/system monitor.
glances
Glances an Eye on your system. A top
/htop
alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.
gtop
System monitoring dashboard for terminal.
hyperfine
A command-line benchmarking tool.
gping
ping
, but with a graph.
procs
A modern replacement for ps
written in Rust.
httpie
A modern, user-friendly command-line HTTP client for the API era.
curlie
The power of curl
, the ease of use of httpie
.
xh
A friendly and fast tool for sending HTTP requests. It reimplements as much as possible of HTTPie's excellent design, with a focus on improved performance.
zoxide
A smarter cd
command inspired by z
.
dog
A user-friendly command-line DNS client. dig
on steroids