Linux command-line tools I keep installing
Linux command-line tools I keep installing
core utilities
| Tool | Description |
|---|---|
| eza | ls replacement with git status, tree view, icons, and extended attribute support. |
| bat | cat with syntax highlighting, git markers, and paging. |
| fd | find alternative with sane defaults. Respects .gitignore and supports regex or glob searches. |
| ripgrep | Recursive grep that is usually the first tool I reach for when I need to find text in a repo. |
| zoxide | cd replacement that learns which directories I actually use. |
| fzf | Fuzzy finder for shell history, files, processes, or whatever else I pipe into it. |
system monitoring
| Tool | Description |
|---|---|
| btop | Resource monitor with CPU, memory, disk, and network views in one terminal screen. |
| procs | ps with tree view, search, and per-process ports. |
disk analysis
| Tool | Description |
|---|---|
| dust | du output that makes it obvious which directories are taking space. |
| duf | df replacement with device grouping and JSON output. |
| gdu | Terminal disk analyzer for finding and deleting large paths. |
| broot | Tree navigation with fuzzy search, previews, and command execution. |
text processing
| Tool | Description |
|---|---|
| sd | sed for the common replace cases, with less escaping pain. |
| choose | Column selection when cut or awk feels heavier than the job needs. |
| jq | JSON queries and transforms. |
| delta | Git diffs with syntax highlighting, side-by-side view, and hunk navigation. |
network tools
| Tool | Description |
|---|---|
| gping | ping with a graph, useful when latency changes matter more than single samples. |
| xh | httpie-style HTTP client with quick startup and good JSON defaults. |
| dog | DNS lookup tool with readable output and DoH/DoT support. |
| trippy | traceroute/mtr style tool with packet loss and per-hop latency views. |
| aria2 | Downloader with resume support and connection splitting. |
development tools
| Tool | Description |
|---|---|
| lazygit | Terminal Git UI for staging, rebasing, conflict resolution, and quick repo inspection. |
| lazydocker | Container TUI for logs, stats, shell access, and cleanup. |
| just | Command runner like Make, minus the makefile insanity. |
| hyperfine | Command benchmarking with warmup runs, statistics, and JSON output. |
shell
| Tool | Description |
|---|---|
| starship | Shell prompt with Git status, language versions, timing, and a TOML config. |
documentation
| Tool | Description |
|---|---|
| tealdeer | tldr client for quick command examples. |
| lnav | Log viewer that merges files by timestamp and understands common log formats. |
| tailspin | Log colorizer for severity, timestamps, IPs, UUIDs, and similar patterns. |
nix-specific
| Tool | Description |
|---|---|
| nh | Nix helper with nicer defaults and diffs before system switches. |
| nom | Nix output monitor that groups build stages and makes warnings easier to see. |
resources
- modern-unix - curated CLI alternatives
- Arch utilities list - long reference list