Most of these tools do not feel very unixy (as in “meant to be part of a pipeline”) to me, although they are all cool CLI apps with good ergonomics and in line with modern “terminal aesthetics” (is that a term?).
To me the real modern unix tools are Joey’s moreutils tools:
chronic: runs a command quietly unless it fails
combine: combine the lines in two files using boolean operations
errno: look up errno names and descriptions
ifdata: get network interface info without parsing ifconfig output
ifne: run a program if the standard input is not empty
isutf8: check if a file or standard input is utf-8
lckdo: execute a program with a lock held
mispipe: pipe two commands, returning the exit status of the first
parallel: run multiple jobs at once
pee: tee standard input to pipes
sponge: soak up standard input and write to a file
ts: timestamp standard input
vidir: edit a directory in your text editor
vipe: insert a text editor into a pipe
zrun: automatically uncompress arguments to command
Most of them are made to piped, they just use fancy formatting when they’re output to a terminal.
You are right: moreutils’s tools are the real modern UNIX tools, in my opinion as well.
In the same category, I also think it is worth to mention @johnaj’s xutil, which I was in awe with the code (as weel as functionality) of ep.
moreutils is a must-have for sponge alone. I need to remember ts, vipe, and pee more often.
sponge is such a beautiful util.
Big shout out to gron for making JSON grep-able, e.g.
% gron https://api.ols.wtf/whois | grep Latest.Toot
json.Latest.Toot = "Just got shat on by a seagull; they _do_ say life begins at 30";
Can be used to read a file, curl an endpoint, or in a pipeline
oooh, I have never seen gron before, it looks really nice!
Of these, exa and especially fzf have done a lot for the ergonomics of my setup.
A handful more:
sort | uniq -c | sort -rn | head
Visidata is amazing. The author told me it was approaching the flexibility of emacs, I was skeptical at first, but it really is. You gotta try it.
I’ve described Visidata as “vim for tabular data”.
What do you get out of exa that you don’t get out of ls? I tried using it once but it was just so colorful it was overwhelming.
Mostly I suppose I’m a sucker for the colors, but the builtin git status is quite nice.
I really want a button to fast-foward to the time when a) authors mostly slowed down writing those b) users figured out which ones are the most useful and c) they come by default with modern unixes. I’m fomoing real hard for not having energy to invest in acquainting myself with the new tools knowing that three quarters of them are going to be extinct in 5 years.
I can relate to this, but if nobody’s writing new stuff, the platform is defunct. The best trick I’ve found for dealing with the FOMO here is to take the long view, and mostly ignore stuff until it filters into the set of long-term tools, as defined by something like “can I get a decent version of this in a stable Debian”, or passes whatever else your personal threshold is for ease of access. “It’s already installed on my OS by default” is just an extreme version of this filter with a 15 to 50 year delay on it.
oh I totally meant “available in the repos” when I said “come by default”!
Ah, yeah - mostly the same thing, at least if one is lucky. :)
I can never remember, does rsync use -P and scp use -p, or is it the other around? Looking forward to asking tldr, when they make this available with apt. I hope these tools play nice in an emacs shell buffer.