Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 

Repository files navigation

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

  • There are enough new takes on the venerable top command that they're probably going to need their own category soon.
    • htop, "a cross-platform interactive process viewer".
    • bottom, an htop-like utility that also got some votes.
    • btop++, another 'better top' variant.
    • glances, "An eye on your system."
  • ncdu, friend of htop and a nice disk usage display for the terminal.
  • HTTPie, a CURL-adjacentish command-line HTTP client for testing and debugging web APIs.
  • Xh is related, described as reimplementing a subset of HTTPie's interface with an emphasis on simplicity and speed.
  • glow, a markdown-on-the-command-line tool.
  • Lowdown, also a markdown tool, also interesting.
  • fzf and skim are both interesting CLI "fuzzy finders" (but take a look at 'z' further down this list.)
  • tldr - simplified man pages with practical examples. The world has needed this for a long time.
  • Tree: show you the tree structure of directories, a bit like microdosing on Midnight Commander from back in the day.
  • Broot: better navigation of directory trees.
  • atool, a set of scripts that wrap common compressed-file-format handlers.
  • LazyDocker and LazyGit (or Tig for better diff), CLI improvements for Docker and Git respectively.
  • hwatch and viddy, two alternatives to the venerable and underappreciated "watch" command.
  • Zellij: Described as a "terminal workspace" with accessible defaults, unifying ideas in tmux and preconfigured environments. Repo here.
  • Chezmoi: Secure shared dotfile management between machines, encrypted and automated.

Data management and manipulation

A collection of modern data migration, conversion and management tools.

  • xidel: this looks like jq-for-html, and I'm intrigued.
  • csvkit: if you spend a lot of time working with comma-separated values, accept no substitutes.
  • miller, a CSV multitool.
  • VisiData: a tabular data visualization multitool.
  • duc, also a nice drive-use visualizer.
  • matplotlib: the upgrade over gnuplot you've been waiting for.
  • st, "Simple Statistics", a command-line app that calculates the sum, mean, standard deviation, and a few other things about a set of numbers.
  • Datamash: Gnu, I know, but an interesting command-line-math tool.
  • Dasel, short for Data Selector, like jq/yq but with more supported data formats.
  • nushell: A structured-data pipeline-building shell.
  • rclone, a cloud-storage data-moving multitool, similar to rsync.
  • unison: a file synchronizer, can keep two directories in sync bi-directionally.
  • sq: "jq-style access to structured data sources: SQL databases, or document formats like CSV or Excel. It is the lovechild of sql+jq."
  • xq: A "Command-line XML and HTML beautifier and content extractor", another in the line of tools jq has inspired.
  • trurl and wcurl: two utilities from the Curl project, command line tool that parses and manipulates URLs and a wget-like wrapper.
  • Numbat: A high-precision command line tool with physical unit support, very cool.

JSON specifically

  • JSONLines: The data format everything should be using for logging, pretty please. The sweet spot between machine parseable, human-readable and one-line-per-thing.
  • Gron, a tool for making JSON greppable.
  • jq and jid are both fantastic tools for inspecting and manipulating JSON.
  • ijq, an "interactive jq".
  • fx: An interesting, interactive command-line JSON processor.

Specialized tools

"Do one thing and do it well."

  • LatexDiff: Like it says on the tin, Diff for Latex.
  • dyff: diff for yaml.
  • axe-core, part of the NPM ecosystem, including the axe-cli command line tool for automatically testing the accessibility of web pages and HTML interfaces.

Revisiting The Classics

A collection of tools best described as "A better $X"

  • ply, described as "bpftrace without the drama."
  • duf a better df.
  • ripgrep, a line-oriented search tool, described as a better grep.
  • sd, a better sed.
  • fd, a better find
  • bat, a better cat.
  • dust, a better du.
  • lsd and eza, new takes on the venerable ls. (Note: this previously referred to exa, rather than eza, but exa has apparently been forked and abandoned.
  • zoxide: an interesting update to, of all things, cd!
  • z: another "better cd", but a very cool frecency-and-regex-matching "faster/smarter cd".
  • ag: the Silver Searcher, a better ack (which was in turn born "a better grep").
  • just: Just, a modernization of the venerable Make.
  • Meli email: An extensible terminal based mail client; a work in progress, but an elegant improvement on Mutt.
  • Aerc: Another email client for the terminal, described as highly efficient and extensible, perfect for the discerning hacker.

Shells, shell customizations and ergonomic improvements

  • fish: Finally, a command line shell for the 90s. Non-posix, but with nice defaults for interactive use right out of the box (very little need for custom configuration and plugins).
    • OhMyFish: Plugin system for fish, for those missing complexity.
    • Fisher: The other plugin manager for fish, compatible with oh-my-fish plugins.
  • zsh: A modernized, modular update to Bash with a lot of new utility built in, as well as its remarkable collection of plugins
    • OhMyZsh + Alacritty: this trifecta of terminal emulator, shell and shell extensions turns out to be a powerful combination.
  • Starship.rs: Cross-shell prompt customization that looks very pretty.
  • atuin: "magical shell history", storing shell history in an SQLite DB and offering fully-encrypted shell-history sync between devices.
  • mcfly: replaces the usual ctrl-r shell-history search handler with a more powerful tool, super cool.
  • 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.
  • vtm: a very interesting text-first user interface. Described as "vtm is to tmux what tmux is to screen".
  • Git-Town: A wrapper around the complexities (and pitfalls) of Git that helps you get more out of it with less of the agony.

Quality-Of-Life command line improvements.

Other collections

About

Modern problems require modern solutions.

Resources

Stars

340 stars

Watchers

17 watching

Forks

Releases

Packages

Contributors