Title: Command-Line Tools
Slug: command-line-tools
Author: Kartones
Lang: en
Description: A curated list of useful command-line tools for Linux, with short notes on what each one does.


A small note before the list: I use Linux so I have only tested them there, not even looking at if they are cross-platform or not.


### General

- [ag (The Silver Searcher)](https://github.com/ggreer/the_silver_searcher): A better `grep` (really `ack`), really fast.
- [bat](https://github.com/sharkdp/bat): A better `cat`. I like it because highlights syntax of many file formats and shows non-printable characters if desired.
- [caffeine/caffeinate](https://www.imaginelinux.com/caffeine-for-ubuntu/): Prevent system from sleeping, optionally waiting for a pid to finish.
- [curl](https://curl.se/): The ultimate tool to perform all kind of calls via the command line (often HTTP-related).
- [fd](https://github.com/sharkdp/fd): A better `find`. Simplified syntax and also noticeably faster.
- [fzf](https://github.com/junegunn/fzf): A command-line fuzzy filter. Improves reverse searches (history) searches, processes outputs (displaying nice keyboard-navigable menus) and also provides a handy preview-window. Just for not having to exactly type every single character when doing reverse searches is worth it 😉
- [htop](https://htop.dev/): My favourite process viewer. Not too complex and fast.
- [ImageMagick](https://imagemagick.org/): The ultimate toolkit for image edition from the command-line. Not always easy to use, but [really powerful](https://gist.github.com/Kartones/457fda60da05bb55224d#imagemagick).
- [jq](https://stedolan.github.io/jq/): The best companion for `curl`, formats input JSON data.
- [MultiTail](https://www.vanheusden.com/multitail/): Self-explanatory, allows to `tail` multiple files at once, with many options.
- [vim](https://www.vim.org/): A text editor. Since I learned how to save changes and exit the program, it's the one I rely upon for quick editing from a terminal.
- [yt-dlp](https://github.com/yt-dlp/yt-dlp): An actively maintained Youtube-dl fork, because I'm a big fan of downloading when I find them, but watching them whenever and wherever I want.

### Terminal replacements

- [Cool retro term](https://github.com/Swordfish90/cool-retro-term): Nostalgic of either the 80s or Fallout 3-like terminals? Then this is your replacement.
- [mosh](https://github.com/mobile-shell/mosh): A "mobile shell", specially adapted for intermittent connectivity and high latency.
- [tmate](https://tmate.io/): A fork of `tmux` based on sharing the terminal. Perfect for interactive pair programming if you use command-line editors like `vim` or `emacs`.
- [tmux](https://github.com/tmux/tmux): Fine-grain control of multiple terminals in a single window.
