Skip to content

CLI Tools

Command-Line Essentials

A curated list of command-line tools that are not full TUIs but are indispensable day-to-day. Fast, composable, and built for the terminal.

DNS

  • drill / dig / host / nslookup


    DNS lookup tools, all do roughly the same thing, with different verbosity and defaults. drill (from ldns) is the most modern and clean, dig is the classic, host and nslookup are simpler alternatives.

    Install:

    Install drill (Arch Linux)
    pacman -S ldns
    
    Install dig (Arch Linux)
    pacman -S bind
    

    Usage:

    Basic lookup
    drill example.com
    
    Query a specific record type
    drill MX example.com
    
    Reverse lookup
    drill -x 1.1.1.1
    
    Query a specific resolver
    drill example.com @8.8.8.8
    
    DNSSEC validation
    drill -D example.com
    

Download

  • aria2c


    A lightweight multi-protocol download utility supporting HTTP, HTTPS, FTP, BitTorrent, and Metalink. Supports parallel downloads and resuming interrupted transfers.

    Install:

    Install on Arch Linux
    pacman -S aria2
    

    Usage:

    Download a file
    aria2c https://example.com/file.iso
    
    Download with 4 parallel connections
    aria2c -x4 https://example.com/file.iso
    
    Download a torrent
    aria2c file.torrent
    

    aria2/aria2

  • yt-dlp


    A media downloader for YouTube and 1000+ other sites. A community-maintained fork of youtube-dl with more features, faster downloads, and active development.

    Install:

    Install on Arch Linux
    pacman -S yt-dlp
    
    Install via pip
    pip install yt-dlp
    

    Usage:

    Download a video
    yt-dlp https://www.youtube.com/watch?v=...
    
    List available formats
    yt-dlp -F https://www.youtube.com/watch?v=...
    
    Download best audio only (mp3)
    yt-dlp -x --audio-format mp3 https://www.youtube.com/watch?v=...
    
    Download a playlist
    yt-dlp https://www.youtube.com/playlist?list=...
    

    yt-dlp/yt-dlp

Disk

  • duf


    A modern disk usage/free utility, a pretty replacement for df. Shows mounts in a clean, color-coded table with usage bars.

    Install:

    Install on Arch Linux
    pacman -S duf
    
    Install via Homebrew
    brew install duf
    

    Usage:

    Show all mounts
    duf
    

    muesli/duf

HTTP

  • curl


    The ubiquitous data transfer tool, HTTP, HTTPS, FTP, SFTP, and dozens more protocols. Present on virtually every system and endlessly composable in scripts.

    Usage:

    GET request
    curl https://example.com
    
    POST JSON
    curl -X POST -H "Content-Type: application/json" \
      -d '{"key": "value"}' https://api.example.com/endpoint
    
    Follow redirects, show headers
    curl -Lv https://example.com
    
    Download a file
    curl -O https://example.com/file.zip
    

    curl.se

  • HTTPie


    A human-friendly HTTP client for the terminal. Syntax highlighting, JSON formatting, and sensible defaults make it much more readable than curl for API work and debugging.

    Install:

    Install on Arch Linux
    pacman -S httpie
    

    Usage:

    GET request
    http https://api.example.com/users
    
    POST JSON (automatic)
    http POST https://api.example.com/users name=Benoit email=b@example.com
    
    With auth header
    http https://api.example.com/users Authorization:"Bearer token"
    
    Download a file
    http --download https://example.com/file.zip
    

    httpie/httpie

Network

  • ipcalc


    An IP address and subnet calculator for the command line. Instantly compute network ranges, broadcast addresses, netmasks, and wildcard masks from a CIDR block.

    Install:

    Install on Arch Linux
    pacman -S ipcalc
    

    Usage:

    Subnet info
    ipcalc 192.168.1.0/24
    
    Check if two IPs are in the same subnet
    ipcalc 10.0.0.1 255.255.255.0
    
  • nmap


    The network scanner and security auditing tool. Discover hosts, open ports, running services, and OS fingerprints on a network.

    Install:

    Install on Arch Linux
    pacman -S nmap
    

    Usage:

    Scan a host
    nmap 192.168.1.1
    
    Scan a subnet
    nmap 192.168.1.0/24
    
    Service and version detection
    nmap -sV 192.168.1.1
    
    OS detection (requires root)
    sudo nmap -O 192.168.1.1
    

    nmap.org

  • ripgrep (rg)


    A blazing fast recursive grep written in Rust. Respects .gitignore, skips binary files, and searches with regex by default. The modern replacement for grep.

    Install:

    Install on Arch Linux
    pacman -S ripgrep
    
    Install via Homebrew
    brew install ripgrep
    

    Usage:

    Search for a pattern
    rg "search_term"
    
    Search in a specific file type
    rg "pattern" --type py
    
    Case-insensitive search
    rg -i "pattern"
    
    Show context lines
    rg -C 3 "pattern"
    

    BurntSushi/ripgrep

Shell

  • shellcheck


    A static analysis tool for shell scripts. Catches common mistakes, style issues, and potential bugs in bash/sh/dash scripts before they bite you in production.

    Install:

    Install on Arch Linux
    pacman -S shellcheck
    
    Install on Debian/Ubuntu
    apt install shellcheck
    

    Usage:

    Check a script
    shellcheck myscript.sh
    

    Integrates with most editors (Helix, Vim, VSCode) via LSP or plugins for inline warnings as you type.

    koalaman/shellcheck