Here’s a slightly better list. Call out to nushell and fish, my two modern shell favourites.
Fish is overrated imo.
Nushell is better but not quite what I’m looking for.Fish is no longer overrated.
just 2 in the list were GPL licensed :/
Exa dev couldn't even spell license right…
licence is a word, commonly used in commonwealth countries.
english english is wrong. american english is good. jeff foxworthy told me in a dream.
"bat" seemed interesting, until I remembered that I'd just do a "git diff" if I wanted to see a diff. The rest do not strike me as substantially better than what they're trying to replace. Enjoy them all as you will, but I would recommend refraining from describing them as "modern unix" in the presence of any old-timers.
Bat also adds lots of stuff to the output. Is there a clean print functionality without the extra numbers?
Edit: but with the parameters its great!
Quite a few are just better, and others have the chance to get better because they're actively accepting new features contributions.
One I personally use:
- delta Provides a better diff for code than git's diff tool (even after trying all of git's diff algorithms)
- ripgrep So much faster than grep. Also had great include/exclude file filtering, easier to use than grep's
- jq Easy to exact json info. I tend to use rq too for yaml
- instead of mcfly I use atuin, which is another alternative bash history. I really didn't think I'd like it, but it's been a big productivity boon
- curlie/httpie A really nice alternative to something like postman when debugging HTTP connections. I use httpie rn but might switch because I'm so much more familiar with curl's flags, but like the formatted output. There's a few others I use that aren't on the list too.
It's totally fine to not want to change what's working for you, but if you do that too long you could miss out on something that just works better in your workflow. Give em a go and complain after you switch back.
Are these built to handle pipes? If I bat a file and redirect it to a file, does it work as expected or does it add in the escape sequences for the colors, for example?
bat foo | bar
behaves likecat foo | bar
same withand such.
Most of that stuff is MIT/Apache licensed unlike programs from GNU. Interesting.
It would be cool if the GNU project sponsored a new updated 'standard' set of tools though.
Why would they? The “old” tools work very well, are well known and are likely used in millions of scripts.
The new tools will have more bugs, unfamiliar options and unexpected behavior (due to them being new), and the improvements current “modern” alternatives bring to the table are often very minor.
I'd expect they'd 'adopt' the tools and redistribute them under the GPL, if they did.