Cool CLI Applications


Learning how to use the terminal is a side effect I gained after switching to GNU/Linux. It is absolutely not necessary to know how to use it, but it makes you more productive (and look cooler?). These are some command line applications I use:

  • Chafa
    • Displays images and gifs in the terminal
  • Lf + lfimg
    • `lf` (list files) is a terminal file manager. I use `lf` with `lfimg` which allows you to preview the text files, render images/gifs and shows properties of binary files.
  • Neovim
    • Text editor. If you are too lazy to customize it with plugins you should use LunarVim. I use `neovim` whenever I need to make a small change to a file, I tend to use “VS Code” for actual heavy-duty programming.
  • Glow
    • Fast and simple markdown renderer. Definitely worth checking out charm.sh.
  • Cmus
    • fast and feature rich music player. Honestly I prefer `cmus` over any music player GUI or non-GUI.
  • Doas
    • `sudo` but less bloated and better security due to less surface attack. There is only one problem with `doas` and that is it currently does not work with `makepkg`.
  • Jdupes
    • A powerful duplicate file finder and an enhanced fork of `fdupes`. 
  • Optipng
    • Optimize and compress images.
  • Exiftool
    • Remove or manipulate metadata of files.
  • Trash-cli
    • I have `rm` aliased to this command (the documentation says not to). This can be the difference between life and death. `rm -rf` is a dangerous command to run. Its safer to trash the file/folder than permanently deleting it.
  • Chezmoi
    • Manages dotfiles and configurations of various programs (like the ones in this list).
  • Mosh
    • Alternative `ssh` which maintains connection after changing networks, running commands using it is faster than regular `ssh`. Use `screen` with `mosh` to maintain a connection after closing the client.
  • Pwgen
    • generates passwords or random strings.
  • Bat
    • `cat` but with syntax highlighting and integration with `git`. I have `bat —paging=never` aliased to this command.
  • Zoxide
    • `cd` but remembers previous directories.
  • Lsd
    • `ls` but deluxe. Its a rewrite of `ls` in rust. I have `ls` aliased to this command.
  • Tokei
    • Counts number of files, code written, comments, blank spaces, and lines of code used within a directory.  
  • Ripgrep
    • `grep` but modernized and faster. I have `grep` aliased to this command.
  • Pfetch
    • Minimal system information and shows OS’s logo. One can say its `neofetch` but with one less config file.
  • hostnamectl
    • Changes hostname and lists information about the host machine.
  • Inxi
    • Provides a ton of system information. 
  • Pipes.sh
    • Cool looking screensaver.
  • Unimatrix
    • Cool looking screensaver, inspired by “The Matrix” movie but better than `cmatrix`.
  • TTY-clock
    • Clock that displays the time.
  • Htop
    • Process viewer.
  • Gotop
    • Activity monitor.
  • Radeontop
    • Shows GPU usage. This program is aimed at AMD graphics based systems.
  • Powertop
    • Power consumption monitor and power saving tool.
  • Speedometer
    • Shows network usage. This program has a lot of configuration options!
  • Lolcat
    • Makes output of last command rainbow.
  • Pywal
    • Generates color schemes based of a provided images. I use `pywal` in a script to automatically choose a random image (or I can manually choose one) to use as my wallpaper and theme my desktop to match its colors.
  • Ansi2html
    • Command that converts text with ANSI colors to HTML or LaTeX.
  • Script
    • Linux kernel command which records commands ran by the user and their outputs (stdin/stdout) to a file.
  • Cheat
    • List common hard to remember terminal programs usage.
  • Fd
    • User-friendly alternative to `find`.
  • Ncdu
    • Disk usage analyzer with an ncurses interface.
  • Gdu
    • Disk usage analyzer but written in go.
  • shellcheck
  • konsave
  • nvtop