CLI Applications

December 7, 2019 Application 4 minutes, 51 seconds

A brief overview of command line interface applications I use and higly recommend! See GUI Applications for more applications.

awless

  • AWS CLI wrapper
  • written in Go
  • intuitive set of (sub)commands
  • templating language
  • different terminal outputs

bat

  • cat alternative
  • written in Rust
  • syntax highlightning
  • Git integration
  • automatic paging

cheat.sh

  • cheatsheet interface
  • written in Python
  • 56 programming languages, several DBMSes, and more than 1000 UNIX/Linux commands
  • simple curl/browser interface
  • fast
  • CLI client cht.sh

cloc

  • count lines of code
  • written in Perl
  • autodetects languages
  • comments agnostic

diff-so-fancy

  • alternative for git diff
  • customizable and nice looking
  • written in Perl

In your git config:

[pager]
   diff = diff-so-fancy | less --tabs=1,5 -RFX
   show = diff-so-fancy | less --tabs=1,5 -RFX

exa

  • ls alternative
  • similar to lsd
  • written in Rust
  • fast
  • colored multi column output
  • respects git status
  • single binary

extract

  • oh-my-zsh plugin
  • written in bash
  • auto detects and extracts various compressed formats
  • simple and easy to use
  • required "backend" commands (like zip or tar) must be installed

fd

  • find alternative
  • written in Rust
  • fast
  • provides sane defaults
  • does not intend to fully replace find

figlet

  • ASCII letter generator
  • cross platform
  • customizable

fzf

  • command line fuzyy finder
  • written in Golang
  • endless use cases
  • portable
  • Integration in tmux, vim, bash, zsh, ...

See here for some of my tweaks

fasd

  • fast navigation in your shell
  • written in shell
  • quickaccess to files, directories
  • inspired by autojump, z, and v

glances

  • fancy top alternative
  • written in Python
  • similar to gotop and htop
  • including webserver
  • cross platform
  • remote monitoring

gotop

  • fancy top alternative
  • written in Go
  • similar to glances and htop
  • colorscheme support
  • includes network, temperatures and more

hledger

  • double entry accounting
  • written in Haskell
  • ledger compatible
  • Web UI, ncurses, API, reports, and more

htop is a enhanced version of top which comes preinstalled on most systems.

  • P → sort by CPU
  • M → sort by memory usage
  • F4 → filter processes by string
  • space → mark a single process

Settings are stored in $HOME/.config/htop/htoprc but overwritten by the application by pressing F10 save and exit.

Alternatives may be glances and gotop

iftop

  • top like interface for bandwidth usage
  • written in C

iotop

  • top like interface for ingoing/outgoing
  • written in python

isync

  • IMAP and MailDir synchronization
  • written in C
  • control every aspect of synchronization

khard

  • CardDAV client
  • written in Python
  • mutt integration
  • in combination with vdirsyncer

khal

  • calendar application
  • written in Python
  • reads and writes events/icalendars
  • in combination with vdirsyncer

lf

  • file manager
  • written in Go
  • three pane style
  • vim like keybindings
  • no dependencies
  • similar to ranger
  • alternatives: nnn, vifm, ranger

lsd

  • ls alternative
  • similar to exa
  • written in Rust
  • fast
  • colored multi column output
  • single binary
  • icons

msmtp

  • SMTP Client
  • written in C
  • sendmail compatible

mu-repo

  • manage multiple git repos
  • run git commands on multiple repos
  • discover git repos in your file system

mutt

  • full featured mail client
  • written in C
  • highly customizable and scriptable
  • vim like keybindings

ncdu

  • ncurses disk usage
  • written in C
  • fast and simple to use

ngrep

  • user friendly tcpdump alternative
  • written in C
  • PCAP based

Pandoc

  • text converter
  • written in Haskell
  • supports many many formats
  • md to pdf, html, ...

prettyping

  • wrapper around ping
  • written in bash
  • colorful and easy to read

procs

  • alternative to ps
  • written in Rust
  • open source
  • nice looking and handy functionality
  • customizable

ranger

  • file manager
  • written in Python
  • three pane or two pane style
  • highly customizable and scriptable
  • vim like keybindings
  • alternatives: vifm, nnn, mc, lf

ripgrep

  • grep alternative
  • written in Rust
  • fast
  • mostly grep compatible
  • sane default settings

Comprehensive comparison of grep alternatives.

spacemacs

  • Emacs distribution
  • combines Emacs and Vim
  • written in elisp

  • Vim distribution
  • like spacemacs for Vim
  • written in Vim script

ssh_scan

  • SSH configuration and policy scanner
  • written in Ruby
  • by Mozilla
  • portable and configurable

storm

  • ssh management wrapper
  • written in Python
  • add, edit, delete, and list your .ssh/config entries
  • various UIs

sxhkd

  • hotkey utility
  • written in C
  • works across all Distributions with x server

translate-shell

  • language translation in your shell
  • powered by Google Translate (default) , Bing Translator, Yandex.Translate, and Apertium
  • written in Awk
  • self contained executable

tig

  • modern text interface for git
  • written in C
  • ncurses GUI

tmux

  • terminal multiplexer
  • alternative to screen
  • written in C
  • basic intro

trash-cli

  • rm alternative with trashcan
  • written in Python
  • deleted files can be restored

urlview

  • extract URLs from text
  • written in C
  • mutt and tmux integration and more

vagrant

  • build your environments
  • VirtualBox, VMWare, KVM, Public Cloud, ...
  • written in Ruby
  • cross platform

vdirsyncer

  • synchronize calendars and contacts
  • written in Python
  • CardDAV / CalDAV support
  • fine control

vifm

  • file manager
  • written in C
  • MC look and feel
  • highly customizable and scriptable
  • vim like keybindings
  • alternatives: ranger, nnn, lf

w3m

  • text-based web browser
  • written in C
  • Vim like keybindings
  • renders html for other apps (like mutt)
  • alternatives: links2, Lynx, Elinks

xsv

  • CSV parsing and manipulation
  • written in Rust
  • indexing, slicing, analyzing, splitting and joining

Search by column and output specific columns

  xsv search -d ';' -s Role \
  data.csv  \
  | xsv select Name,Location \
  | xsv table

Join two csv tables and write in new csv

xsv join -d ';' Name data.csv Name status.csv | xsv fmt -t ';' > joined.csv

youtube-dl

  • download videos from video platforms
  • written in Python
  • by far not limited to youtube
  • convert videos to mp4