The absolute requirement is that these must be binaries that could go into /usr/bin one day. No python, ruby or js stuff. Not that dynamic languages are bad/evil, but I think system utilities should be binaries. I also think it's interesting that people are writing replacements in Go/Rust/Other that rethink some unix legacy. Replacement doesn't mean better in all cases. I just think it's an interesting time but also a good measure of what these compiled languages can handle/tackle/address. Will we see larger and more impressive CLIs? Or will the feature sets be about the same but the quality/stability/safety be better?
It's going to be reductive to explain some of these tools in one line.
- exa -
ls
replacement - caddy - HTTP server (better than
python -m SimpleHTTPServer
) - fzf - Grep replacement, can integrate with vim
- skim - Grep replacement, similar to fzf, see their README
- tokei -
wc -l
replacement - aria2 - scp replacement (fast)
- jq - json manipulator (tldr has examples)
- rq - a more general jq, does more than JSON
- tldr - quick documentation lookup, man replacement
- astaxie/bat - curl replacement, nice syntax, colors. I hope it gets closer to httpie one day.
- sharkdp/bat - The other bat. It's a cat replacement but works like a super less.
- restic - tar replacement (sort of, it's a total backup solution which is neat)
- lego - openssl replacement assuming you use Let's Encrypt
- boom - ab (Apache Bench) replacement, http load generator
- fd - replacement for find (nicer usage than
find -iname *incantation*
) - peep - interactive and dynamic less/more
- broot - interactive
du -sh
, this is reductive - check it the README - rnr - regex batch file renamer
- hexyl - way beyond xxd, this is a cli hex viewer with colors
- xsv - CSV toolkit, subcommands and built-in functions
- watchexec - file watcher