Over on Mastodon I asked: “What modern utilities should be a standard part of a modern unixy distro? Why? I’ve got jq, pandoc, tldr and a few others on my list, but I’d love to know others.”
Here’s what came back; I’ve roughly grouped them into two categories: new utilities and improvements on the classics.
In no particular order, the new kids on the block:
- htop, “a cross-platform interactive process viewer”. An htop-like utility called bottom also got some votes.
- tmux, a terminal multiplexer. Some people mentioned screen, the classic tool in this space, but noted that it’s getting pretty long in the tooth and tmux is a pure improvement.
- HTTPie, a CURL-adjacentish command-line HTTP client for testing and debugging web APIs.
- glow, a markdown-on-the-command-line tool that looks great. Lowdown is also interesting.
- fzf, a command-line “fuzzy finder” that a few people suggested.
- tldr – simplified man pages with practical examples. The world has needed this for a long time.
- Datamash: Gnu, I know, but an interesting command-line-math tool.
- zsh + OhMyZsh + Alacritty: this trifecta came up a lot and it looks pretty amazing.
- VisiData: a tabular data visualization multitool.
- jq and jid are both fantastic tools for inspecting and manipulating JSON.
- Tree: show you the tree structure of directories, a bit like microdosing on Midnight Commander from back in the day.
- Gron, a tool for making JSON greppable.
- ncdu, friend of htop and a nice disk usage display for the terminal.
- duc, also a nice drive-use visualizer.
- rclone, a cloud-storage data-moving multitool.
- csvkit: if you spend a lot of time working with comma-separated values, accept no substitutes.
- matplotlib: the upgrade over gnuplot you’ve been waiting for.
- xidel: this looks like jq-for-html, and I’m intrigued.
- The moreutils collection.
- nushell: A structured-data pipeline-building shell. This looks amazing.
As an aside, about htop: one commenter noted that they run HTOP on a non-interactive TTY, something like control-alt-F11; so do I, and it’s great, but you must not do this on sec-critical systems. You can kill processes through htop, and that gives you a choice of signals to issue, and on most machines running systemd “systemd init” responds to SIGTRMIN+1 by dropping back into rescue mode, and that’s a backstage pass to a root shell. I have used this to recover a personal device from an interrupted upgrade that broke PAM. You must never do this on a machine that matters.
Improvements on “classic” tools and utilities:
- duf a better df.
- ripgrep, a line-oriented search tool that recursively searches the current directory for a regex pattern described as a better grep.
- sd, a better sed.
- fd, a better find
- atool, a set of scripts that wrap common compressed-file-format handlers.
- bat, a “better cat”.
- lsd and exa, both new takes on the venerable ls.
- There’s also zoxide: an interesting update to, of all things, cd!
- Not really a new thing but a quality of life improvement: the “ducks” alias.
- ag, the “silver searcher”. “Fast ack”.
So, there you go. Life in the terminal is still improving here in 2023, it’s great to see.
Update, 22/Feb/2023:
- ijq, an “interactive jq”.
- Broot: better navigation of directory trees.
- dust: “du on steroids”.
- dyff: diff for yaml.
- miller, a CSV multitool.
- LazyDocker and LazyGit, CLI improvements for Docker and Git respectively.
- procs: a replacement for ps written in Rust.
- mcfly: replaces the usual ctrl-r shell-history search handler with a more powerful tool, super cool.