October 9th, 2024

Command Line Tools I Like (2022)

The article highlights command line tools favored by an iOS developer, including neovim, fzf, bat, exa, and others, appreciated for their speed, usability, and modern features over traditional commands.

Read original articleLink Icon
Command Line Tools I Like (2022)

The article discusses various command line tools favored by the author, who is primarily an iOS developer but has a strong affinity for command line usage. The tools highlighted include neovim, a modern version of vim with enhanced features; fzf, a fuzzy finder for searching through input; bat, which enhances the functionality of the traditional cat command with syntax highlighting; exa, a colorful replacement for ls; and ripgrep (rg), a fast search tool for file contents. Other tools mentioned are fd, a user-friendly alternative to find; delta, which beautifies git diff outputs; tldr, a simplified help utility for command line tools; zoxide, a smart directory navigation tool; and HTTPie, which simplifies making HTTP requests. The author appreciates these tools for their speed, improved interfaces, and modern features, often opting for them over traditional Unix commands.

- The author is an iOS developer with a strong command line background.

- Tools discussed include neovim, fzf, bat, exa, rg, fd, delta, tldr, zoxide, and HTTPie.

- Many of the tools are written in Rust and offer enhanced functionality over traditional Unix commands.

- The tools are appreciated for their speed, usability, and modern features.

- The author provides personal aliases for several tools to streamline their workflow.

Link Icon 19 comments
By @terminaltrove - 7 months
If you're looking for more or new tools, we have lots at Terminal Trove and continuously add new ones.

https://terminaltrove.com/new/

https://terminaltrove.com/tool-of-the-week/

Every tool added has images/gifs and a quick way to install it.

We love this list and sponsored the development of fd which we heavily use ourselves!

By @donatj - 7 months
Eternal Terminal `et` when we worked from an office where our connection would drop regularly was a life saver. It's like Mosh but less opinionated and doesn't interfere with scrollback.

https://eternalterminal.dev/

Probably goes without saying, but for anyone who doesn't know about it, `jq` is life changing, was kind of surprised not to see it. It's a sort of query language for querying JSON blobs. I use it almost every single day. It's indispensable.

https://jqlang.github.io/jq/

By @defrost - 7 months
Whether you're a black or white hat or more simply just a grunt pushing stuff out; Pillager (or Gitleaks) is worth having on the sanity checklist

https://github.com/brittonhayes/pillager

https://terminaltrove.com/pillager/

    powerful rules functionality to recursively search directories for sensitive information in files. 

    At it's core, Pillager is designed to assist you in determining if a system is affected by common sources of credential leakage as documented by the MITRE ATT&CK framework.
Good for catching those Oops I deployed the company password list again SNAFU's.
By @KneeAwn - 7 months
I love these tools. A few more I like are: eget - good for getting these little tools (https://github.com/zyedidia/eget) dust - fd is to find as dust is to du (https://github.com/bootandy/dust) yank - nice to quickly copy things from the command line (https://github.com/mptre/yank)
By @netol - 7 months
exa is abandoned. There is now a maintained fork called eza: https://github.com/eza-community/eza
By @jasonpeacock - 7 months
I really enjoy `glow`, it makes me smile when I use it:

https://github.com/charmbracelet/glow

It's a commandline markdown viewer/renderer.

By @joemi - 7 months
Do the creators/maintainers of these tools ever try to get their improvements merged into the tools they aim to replace? And does it ever happen? For a while I've heard about things like ripgrep and such that seem to be so much better and faster than grep, so why wouldn't those kinds of improvements get brought into grep?

(Note: I'm not asking this from a "down with the old ways!" perspective, but just out of curiosity. I assume there's a reason people are making separate tools instead of improving the existing ones, I just don't know what that reason is.)

By @skdd8 - 7 months
I love ranger: https://github.com/ranger/ranger It is a file manager inspired by vim and midnight-commander.
By @sandreas - 7 months
Herr is mine..

  # dra - download releases from gh
  devmatteini/dra

  # bat - modern cat replacement
  sharkdp/bat
  
  # btop - process explorer
  aristocratos/btop
  
  # difftastic - better diff
  difft;Wilfred/difftastic

  # eza - modern ls replacement
  eza-community/eza

  # fd - find replacement
  sharkdp/fd
  
  # fzf - fuzzy finder
  junegunn/fzf

  # gdu - disk usage analyzer similar to ncdu but faster
  dundee/gdu

  # jless - json viewer
  PaulJuliusMartinez/jless

  # jq - json query tool
  jqlang/jq

  # lazydocker - terminal docker management ui
  jesseduffield/lazydocker

  # pandoc - document conversion tool
  jgm/pandoc

  # pandoc dependency
  typst/typst

  # restic - repository based backup tool
  restic/restic

  # rg - ripgrep, better grep tool
  rg;BurntSushi/ripgrep

  # rga - ripgrep-all, grep for PDF
  rga;phiresky/ripgrep-all

  # starship - powerlevel10k replacement
  starship/starship

  # tone - audio tagger
  sandreas/tone

  # yazi - terminal file manager
  sxyazi/yazi

  # zellij - terminal multiplexer
  zellij-org/zellij

  # zoxide - modern cd replacement
  ajeetdsouza/zoxide
By @umvi - 7 months
The problem (for me) with using non standard CLI is that whenever I'm using some other computer (i.e. a VM I spun up, server I'm ssh'd into, etc) said custom tools are no longer available unless I go out of my way to install them and I have to fall back on standard coreutils. So for me it only seems worth custom CLI tooling if you are relatively stable in your work environment.
By @steph-123 - 7 months
I really enjoy `x-cmd`

https://github.com/x-cmd/x-cmd

A vast and interesting collection of CLI that can then bootstrap lots of other programs / functions in a consistent and structured way (X bootstrap 1000+ tools and your scripts)

By @petepete - 7 months
xh is a clone of httpie written in Go, it's a little snappier if that's important to you.
By @thiht - 7 months
One rarely mentioned tool I absolutely love is hyperfine: https://github.com/sharkdp/hyperfine

It’s a benchmarking CLI tool that can be used as an alternative to `time`. I often use it to detect flacky tests, I run something like `hyperfine —show-output -n=100 'go test ./… -count=1' and it helps me catch tests that fail unreliably

By @jftuga - 7 months
I've recently made a new command line tool:

https://github.com/jftuga/DateTimeMate

Golang package and CLI to compute the difference between date, time or duration

Here is a more detailed announcement:

https://news.ycombinator.com/item?id=41058826

By @grakker - 7 months
I've never been a fan of aliasing new commands to coreutils commands. Just use the new name, or make a unique alias.
By @ibash - 7 months
duckdb

It’s a cli that lets you query anything table-like with sql. csv, excel, parquet, and other dbs all in one comfy sql interface.

By @gigatexal - 7 months
Zoxide looks really cool
By @AtlasBarfed - 7 months
IS EXA PARSEABLE????!!!???

It's a slowly developing trend, but I also wish that a --json output flag was a part of all cli utility output.

Tldr sounds interesting. Man pages are awful for quick reference. At this point it should be possible to collect the statistically ranked most common example usages of commands and provide them, especially if there are very very common associated commands that are piped with them.

By @Twelveday - 7 months
I always try to predict what tools are mentioned in these posts and this time I was pretty close to get them all :)

I recently started using forgit and find it really usefull without having to change my workflow too much.

And instead of tldr i just do `curl cheat.sh/tar`