DEV Community

hacking C++
hacking C++

Posted on • Edited on

Useful Command Line Tools in 2023

These are some of the tools that have made my life in the terminal so much easier over the last years. Also, all of them work inside WSL2 without any hassle.

My other lists:


nnn

A super fast, fully-featured terminal file manager with a minimalistic interface and less/VIM-like keybindings (navigation with hjkl, search with /,...). Also offers some useful plugins like instant preview, "open with", "go to git main directory", etc. Can also be used as quick file system navigator (can change to last active dir on exit).
As an alternative to the usually pretty outdated versions in OS packages you can just donwload one of the statically linked executables on the GitHub release page.
nnn screenshot


broot

Fast file browser and manager that displays a tree that is automatically partially collapsed so it fits the terminal height. By default the primary mode of navigation is a super-fast search, but one can also switch to a VIM-like modal interface. Broot offers working with multiple panes and a staging area for operations on multiple files. The instant preview pane can also diplay images right out of the box.
Broot runs on Linux, Android, Windows 10+ and OSX. Binaries can be downloaded from here.

cargo install --locked --path .
pkgin install broot 
emerge broot
apk install broot
port install broot
Enter fullscreen mode Exit fullscreen mode

broot screenshot


exa

An improved file lister with more features and better defaults. It uses colors to distinguish file types and metadata. It knows about symlinks, extended attributes, and Git. And it's small, fast, and just one single binary.

apt install exa 
dnf install exa
emerge sys-apps/exa
nix-env -i exa
pacman -S exa
zypper install exa
brew install exa 
Enter fullscreen mode Exit fullscreen mode

exa screenshot


ncdu

A disk usage analyzer with an ncurses interface. It is designed to find space hogs on a remote server where you don't have an entire graphical setup available, but it is a useful tool even on regular desktop systems.
Packages are available for almost all operating systems.

apt install ncdu
Enter fullscreen mode Exit fullscreen mode

ncdu screenshot


duf

disk usage/free utility

apt install duf
nix-env -iA nixpkgs.duf
pacman -S duf
pkg install duf
pkg_add duf
xbps-install -S duf
brew install duf
choco install duf
scoop install duf
Enter fullscreen mode Exit fullscreen mode

duf screenshot


fasd

A command-line productivity booster. Fasd offers quick access to files and directories for POSIX shells. It is inspired by tools like autojump, z and v. Fasd keeps track of files and directories you have accessed, so that you can quickly reference them in the command line.

apt install fasd
dnf install fasd
pacman -S fasd
brew install fasd
Enter fullscreen mode Exit fullscreen mode

fasd screenshot


fd

A simple, fast and user-friendly alternative to find.

apt install fd-find
Enter fullscreen mode Exit fullscreen mode

fd screenshot


ripgrep

A line-oriented search tool that recursively searches the current directory for a regex pattern. Orders of magnitude faster than grep. By default, ripgrep will respect gitignore rules and automatically skip hidden files/directories and binary files.

apt install ripgrep
dnf install ripgrep
emerge sys-apps/ripgrep
pacman -S ripgrep
pkg install ripgrep
brew install ripgrep
choco install ripgrep
scoop install ripgrep
Enter fullscreen mode Exit fullscreen mode

ripgrep screenshot


fzf

A general-purpose command-line fuzzy finder. It's an interactive Unix filter for the command-line that can be used with any list; files, command history, processes, hostnames, bookmarks, git commits, etc.

apt install fzf
apk add fzf
dnf install fzf
nix-env -iA nixpkgs.fzf
pacman -S fzf
pkg install fzf
pkg_add fzf
pkgin install fzf
xbps-install -S fzf
zypper install fzf
brew install fzf
choco install fzf
scoop install fzf
conda install -c conda-forge fzf
Enter fullscreen mode Exit fullscreen mode

fzf screenshot


f2

A cross-platform command-line batch renaming tool. By default it does a "dry run" and previews the replacement. It supports regex, string case operations, indexing, special placeholder variables for path / dates / EXIF fields / Exiftool fields / ID3 fields and much more. It can even undo the last batch operation.

go install github.com/ayoisaiah/f2/cmd/f2@latest
Enter fullscreen mode Exit fullscreen mode

Image description


peco

Simplistic interactive tool for on-the-fly filtering. Useful for filtering stuff like logs, process stats.

apt install peco
pacman -S peco
brew install peco
choco install peco
Enter fullscreen mode Exit fullscreen mode

peco screenshot


bat

A 'cat' clone with syntax highlighting and Git integration.

apt install bat
apk add bat
pacman -S bat
dnf install bat
emerge sys-apps/bat
pkg install bat
pkg_add bat
nix-env -i bat
zypper install bat
port install bat
choco install bat
scoop install bat
Enter fullscreen mode Exit fullscreen mode

bat screenshot


multitail

Lets you view one or multiple files like 'tail'. The difference is that it creates multiple windows on your console (with ncurses). It can also monitor wildcards: if another file matching the wildcard has a more recent modification date, it will automatically switch to that file.

apt install multitail
brew install multitail
Enter fullscreen mode Exit fullscreen mode

multitail screenshot


colortail

Works like 'tail' but can optionally read one or more config files where it's specified which patterns results in which colors. Colortail uses regular expressions to determine which lines and parts of lines to print in which colors.

apt install colortail
brew install colortail
Enter fullscreen mode Exit fullscreen mode

colordiff

A wrapper for 'diff' that produces the same output but with pretty syntax highlighting. Colour schemes can be customized.

apt install colordiff
brew install colordiff
Enter fullscreen mode Exit fullscreen mode

colortail screenshot


tmux

A terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal.

apt install tmux 
dnf install tmux
pacman -S tmux
port install tmux
yum install tmux
zypper install tmux
brew install tmux 
Enter fullscreen mode Exit fullscreen mode

tmux screenshot


tldr

The tldr pages are a community effort to simplify the beloved man pages with practical examples. Support for multiple languages.

apt install tldr 
npm install -g tldr
Enter fullscreen mode Exit fullscreen mode

tldr screenshot


The Fuck

Corrects errors in previous console commands.

pip install thefuck
Enter fullscreen mode Exit fullscreen mode

thefuck screenshot


tig

An ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands.

apt install tig
nix-env -i tig
pkg install tig
brew install tig
tig is part of [git for windows](https://gitforwindows.org/)
Enter fullscreen mode Exit fullscreen mode

tig screenshot


cgdb

A lightweight curses (terminal-based) interface to GDB. It provides a split screen view that displays the source code as it executes. The keyboard interface is modeled after VIM.

apt install cgdb
Enter fullscreen mode Exit fullscreen mode

cgdb screenshot


hyperfine

Benchmarking of executables similar to the classic 'time' command but much more sophisticated.

  • statistical analysis across multiple runs
  • supports arbitrary shell commands
  • constant feedback
  • warmup run
  • cache-clearing commands
  • statistical outlier detection
  • export results to various formats
  • parameterized benchmarks
  • cross-platform
Ubuntu: 
  wget https://github.com/sharkdp/hyperfine/releases/download/v1.14.0/hyperfine_1.14.0_amd64.deb
  sudo dpkg -i hyperfine_1.14.0_amd64.deb
Other:
  dnf install hyperfine 
  pacman -S hyperfine 
  apk add hyperfine 
  nix-env -i hyperfine 
  brew install hyperfine 
Enter fullscreen mode Exit fullscreen mode

hyperfine screenshot


nvtop

htop-like performance monitor for GPUs
Works for GPUs from

  • NVIDIA (Kepler and newer)
  • AMD (requires kernel >= 5.14)
  • Intel (requires kernel >= 5.19)
  apt install nvtop
  pacman -S nvtop
Enter fullscreen mode Exit fullscreen mode

nvtop screenshot


bitwise

A multi base calculator supporting dynamic base conversion and bit manipulation. Also offers an interactive mode navigation. A handy tool for low level hackers.

apt install bitwise
snap install bitwise 
zypper install bitwise 
brew install bitwise 
port install bitwise 
Enter fullscreen mode Exit fullscreen mode

bitwise screenshot


fx

JSON viewer with less/VIM-like key mappings and mouse support.
Nice for browsing large JSON documents; key navigation, (recursive)
folding/unfolding, searching, etc.

pkg install fx
snap install fx
brew install fx
scoop install fx
Enter fullscreen mode Exit fullscreen mode

fx screenshot


jq

A lightweight and flexible command-line JSON processor.

apt install jq
dnf install jq
pacman -S jq
pkg install jq
pkgutil -i jq
zypper install jq
brew install jq
port install jq
chocolatey install jq
Enter fullscreen mode Exit fullscreen mode

jq screenshot


yq

A lightweight and portable command-line YAML, JSON and XML processor. yq uses jq like syntax but works with yaml files as well as json and xml. It doesn't yet support everything jq does - but it does support the most common operations and functions, and more is being added continuously.

snap install fx
brew install fx
Enter fullscreen mode Exit fullscreen mode

pandoc

Tool to convert between markup formats. Supports docx, epub, fb2, jira, latex, markdown, man, muse, odt, org, rtf, textile, asciidoc, html and more.

apt install pandoc
dnf install pandoc 
pacman -S pandoc
brew install pandoc 
choco install pandoc
winget install pandoc
Enter fullscreen mode Exit fullscreen mode

aiksaurus

A command-line thesaurus (English only).

apt install aiksaurus
Enter fullscreen mode Exit fullscreen mode

aiksaurus screenshot


grip

Previews GitHub flavored markdown files using GitHub's API. The styles and rendering come directly from GitHub, so you'll know exactly how it will appear. Changes you make to the file will be instantly reflected in the browser without requiring a page refresh.

brew install grip 
pip install grip
Enter fullscreen mode Exit fullscreen mode

pdf2svg

A simple PDF to SVG converter using the Poppler and Cairo libraries.

apt install pdf2svg
yum install pdf2svg
Enter fullscreen mode Exit fullscreen mode

Windows Binaries


imagemagick

Tool to create, edit, compose, or convert digital images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, GIF, WebP, HEIC, SVG, PDF, DPX, EXR and TIFF. ImageMagick can resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.

apt install imagemagick
brew install imagemagick 
Enter fullscreen mode Exit fullscreen mode

Download Page


pastel

A tool to generate, analyze, convert and manipulate colors. It supports many different color formats and color spaces like RGB (sRGB), HSL, CIELAB, CIELCh as well as ANSI 8-bit and 24-bit representations.

apt install pastel
pacman -S pastel 
brew install pastel 
scoop install pastel
Enter fullscreen mode Exit fullscreen mode

pastel screenshot


deadlink

Parses text files for HTTP URLs and checks if they are still valid.

pip install deadlink
Enter fullscreen mode Exit fullscreen mode

asciinema

Lets you record terminal sessions and replay them in a terminal as well as in a web browser.

apt install asciinema
brew install asciinema 
pip install asciinema 
Enter fullscreen mode Exit fullscreen mode

epy

A command line ebook reader. A fork of epr with more features: progress percentage, bookmarks, dictionary integration, bold/italic formatting. Supported formats: Epub, FictionBook (fb2), Mobi, AZW3.

pip3 install epy
Enter fullscreen mode Exit fullscreen mode

epy screenshot

Top comments (0)