moderntools/README.md
2023-06-15 09:24:04 -04:00

79 lines
5.3 KiB
Markdown

# Modern Unix Tools
Modern problems require modern solutions.
This is a collection of very useful utilities that I've collected by asking the internet "What modern utilities should be a standard part of a modern unixy distro and why?"
Additions and corrections via raised issue or pull requests are welcome.
# Utilities
## System use and management
* [htop](https://htop.dev/), "a cross-platform interactive process viewer".
* An [htop-like utility called bottom](https://github.com/clementtsang/bottom) also got some votes.
* [tmux](https://github.com/tmux/tmux/wiki), a terminal multiplexer.
* Some people mentioned [screen](https://www.gnu.org/software/screen/manual/screen.html), the classic tool in this space, but noted that it's getting pretty long in the tooth and tmux is a pure improvement.
* [HTTPie](https://httpie.io/), a CURL-adjacentish command-line HTTP client for testing and debugging web APIs.
* [Xh](https://github.com/ducaale/xh) is related, described as reimplementing a subset of HTTPie's interface with an emphasis on simplicity and speed.
* [glow](https://github.com/charmbracelet/glow), a markdown-on-the-command-line tool.
* [Lowdown](https://github.com/kristapsdz/lowdown), also a markdown tool, also interesting.
* [fzf](https://github.com/junegunn/fzf), a command-line "fuzzy finder".
* [tldr](https://tldr.sh/) - simplified man pages with practical examples. The world has needed this for a long time.
* [zsh](https://en.wikipedia.org/wiki/Z_shell): A modernized, modular update to Bash with a lot of new utility built in.
** [OhMyZsh](https://github.com/ohmyzsh/ohmyzsh/) + [Alacritty](https://github.com/alacritty/alacritty): this trifecta of terminal emulator, shell and shell extensions turns out to be a powerful combination.
* [Tree](https://linuxhandbook.com/tree-command/): show you the tree structure of directories, a bit like microdosing on Midnight Commander from back in the day.
* [Broot](https://github.com/Canop/broot): better navigation of directory trees.
* [atool](https://linux.die.net/man/1/atool), a set of scripts that wrap common compressed-file-format handlers.
* [mcfly](https://github.com/cantino/mcfly): replaces the usual ctrl-r shell-history search handler with a more powerful tool, super cool.
* [ncdu](https://dev.yorhel.nl/ncdu), friend of htop and a nice disk usage display for the terminal.
* [LazyDocker](https://github.com/jesseduffield/lazydocker) and [LazyGit](https://github.com/jesseduffield/lazygit), CLI improvements for Docker and Git respectively.
## Data management
A collection of modern data migration, conversion and management tools.
* [Gron](https://github.com/tomnomnom/gron), a tool for making JSON greppable.
* [VisiData](https://www.visidata.org/): a tabular data visualization multitool.
* [jq](https://stedolan.github.io/jq/) and [jid](https://github.com/simeji/jid) are both fantastic tools for inspecting and manipulating JSON.
* [duc](https://duc.zevv.nl/), also a nice drive-use visualizer.
* [rclone](https://rclone.org/), a cloud-storage data-moving multitool.
* [csvkit](https://github.com/wireservice/csvkit): if you spend a lot of time working with comma-separated values, accept no substitutes.
* [matplotlib](https://matplotlib.org/): the upgrade over gnuplot you've been waiting for.
* [xidel](https://github.com/benibela/xidel): this looks like jq-for-html, and I'm intrigued.
* [nushell](https://www.nushell.sh/): A structured-data pipeline-building _shell_.
* [miller](https://github.com/johnkerl/miller), a CSV multitool.
* [st](https://github.com/nferraz/st), "Simple Statistics", a command-line app that calculates the sum, mean, standard deviation, and a few other things about a set of numbers.
* [ijq](https://sr.ht/~gpanders/ijq/), an "interactive jq".
* [Datamash](https://www.gnu.org/software/datamash/): Gnu, I know, but an interesting command-line-math tool.
## Specialized Tools
"Do one thing and do it well."
* [LatexDiff](https://github.com/ftilmann/latexdiff/): Like it says on the tin, Diff for Latex.
* [dyff](https://github.com/homeport/dyff): diff for yaml.
## Revisiting The Classics
A collection of tools best described as "A better $X"
* [duf](https://github.com/muesli/duf) a better df.
* [ripgrep](https://github.com/BurntSushi/ripgrep), a line-oriented search tool, described as a better grep.
* [sd](https://github.com/chmln/sd), a better sed.
* [fd](https://crates.io/crates/fd-find), a better find
* [bat](https://github.com/sharkdp/bat), a better cat.
* [dust](https://github.com/bootandy/dust), a better du.
* [lsd](https://github.com/Peltoche/lsd) and [exa](https://the.exa.website/), new takes on the venerable ls.
* There's also [zoxide](https://github.com/ajeetdsouza/zoxide): an interesting update to, of all things, cd!
* [ag](https://github.com/ggreer/the_silver_searcher): the Silver Searcher, a better ack (which was in turn born "a better grep").
* [just](https://github.com/casey/just): Just, a modernization of the venerable Make.
## Quality-Of-Life command line improvements.
* [the "ducks" alias.](https://gist.github.com/thebouv/8657674)
* Re-upping [OhMyZsh](https://github.com/ohmyzsh/ohmyzsh/) here for its [remarkable collection of plugins](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins)
## Other collections
* The [moreutils](https://joeyh.name/code/moreutils/) collection.