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`.