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.
bat

exa

A modern replacement for ls.
exa

lsd

The next gen file listing command. Backwards compatible with ls.
lsd

delta

A viewer for git and diff output
delta

dust

A more intuitive version of du written in rust.
dust

duf

A better df alternative
duf

broot

A new way to see and navigate directory trees
broot

fd

A simple, fast and user-friendly alternative to find.
fd

ripgrep

An extremely fast alternative to grep that respects your gitignore
ripgrep

ag

A code searching tool similar to ack, but faster.
ag

fzf

A general purpose command-line fuzzy finder.
fzf

mcfly

Fly through your shell history. Great Scott!
mcfly

choose

A human-friendly and fast alternative to cut and (sometimes) awk
choose

jq

sed for JSON data.
jq

sd

An intuitive find & replace CLI (sed alternative).
sd

cheat

Create and view interactive cheatsheets on the command-line.
cheat

tldr

A community effort to simplify man pages with practical examples.
tldr

bottom

Yet another cross-platform graphical process/system monitor.
bottom

glances

Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.
glances

gtop

System monitoring dashboard for terminal.
gtop

hyperfine

A command-line benchmarking tool.
hyperfine

gping

ping, but with a graph.
gping

procs

A modern replacement for ps written in Rust.
procs

httpie

A modern, user-friendly command-line HTTP client for the API era.
httpie

curlie

The power of curl, the ease of use of httpie.
curlie

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.
xh

zoxide

A smarter cd command inspired by z.
zoxide

dog

A user-friendly command-line DNS client. dig on steroids
dog