---
title: Linux command-line tools I keep installing
date: 2025-10-19
description: CLI tools I tend to install on a new Linux machine
tags: [linux, cli, tools]
---

# Linux command-line tools I keep installing

## core utilities

| Tool                                                 | Description                                                                                       |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| [**eza**](https://github.com/eza-community/eza)      | `ls` replacement with git status, tree view, icons, and extended attribute support.               |
| [**bat**](https://github.com/sharkdp/bat)            | `cat` with syntax highlighting, git markers, and paging.                                          |
| [**fd**](https://github.com/sharkdp/fd)              | `find` alternative with sane defaults. Respects `.gitignore` and supports regex or glob searches. |
| [**ripgrep**](https://github.com/BurntSushi/ripgrep) | Recursive grep that is usually the first tool I reach for when I need to find text in a repo.     |
| [**zoxide**](https://github.com/ajeetdsouza/zoxide)  | `cd` replacement that learns which directories I actually use.                                    |
| [**fzf**](https://github.com/junegunn/fzf)           | Fuzzy finder for shell history, files, processes, or whatever else I pipe into it.                |

## system monitoring

| Tool                                             | Description                                                                        |
| ------------------------------------------------ | ---------------------------------------------------------------------------------- |
| [**btop**](https://github.com/aristocratos/btop) | Resource monitor with CPU, memory, disk, and network views in one terminal screen. |
| [**procs**](https://github.com/dalance/procs)    | `ps` with tree view, search, and per-process ports.                                |

## disk analysis

| Tool                                         | Description                                                           |
| -------------------------------------------- | --------------------------------------------------------------------- |
| [**dust**](https://github.com/bootandy/dust) | `du` output that makes it obvious which directories are taking space. |
| [**duf**](https://github.com/muesli/duf)     | `df` replacement with device grouping and JSON output.                |
| [**gdu**](https://github.com/dundee/gdu)     | Terminal disk analyzer for finding and deleting large paths.          |
| [**broot**](https://github.com/Canop/broot)  | Tree navigation with fuzzy search, previews, and command execution.   |

## text processing

| Tool                                                 | Description                                                                 |
| ---------------------------------------------------- | --------------------------------------------------------------------------- |
| [**sd**](https://github.com/chmln/sd)                | `sed` for the common replace cases, with less escaping pain.                |
| [**choose**](https://github.com/theryangeary/choose) | Column selection when `cut` or `awk` feels heavier than the job needs.      |
| [**jq**](https://github.com/jqlang/jq)               | JSON queries and transforms.                                                |
| [**delta**](https://github.com/dandavison/delta)     | Git diffs with syntax highlighting, side-by-side view, and hunk navigation. |

## network tools

| Tool                                                 | Description                                                                       |
| ---------------------------------------------------- | --------------------------------------------------------------------------------- |
| [**gping**](https://github.com/orf/gping)            | `ping` with a graph, useful when latency changes matter more than single samples. |
| [**xh**](https://github.com/ducaale/xh)              | `httpie`-style HTTP client with quick startup and good JSON defaults.             |
| [**dog**](https://github.com/ogham/dog)              | DNS lookup tool with readable output and DoH/DoT support.                         |
| [**trippy**](https://github.com/fujiapple852/trippy) | `traceroute`/`mtr` style tool with packet loss and per-hop latency views.         |
| [**aria2**](https://github.com/aria2/aria2)          | Downloader with resume support and connection splitting.                          |

## development tools

| Tool                                                          | Description                                                                            |
| ------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| [**lazygit**](https://github.com/jesseduffield/lazygit)       | Terminal Git UI for staging, rebasing, conflict resolution, and quick repo inspection. |
| [**lazydocker**](https://github.com/jesseduffield/lazydocker) | Container TUI for logs, stats, shell access, and cleanup.                              |
| [**just**](https://github.com/casey/just)                     | Command runner like Make, minus the makefile insanity.                                 |
| [**hyperfine**](https://github.com/sharkdp/hyperfine)         | Command benchmarking with warmup runs, statistics, and JSON output.                    |

## shell

| Tool                                                 | Description                                                                 |
| ---------------------------------------------------- | --------------------------------------------------------------------------- |
| [**starship**](https://github.com/starship/starship) | Shell prompt with Git status, language versions, timing, and a TOML config. |

## documentation

| Tool                                                 | Description                                                                   |
| ---------------------------------------------------- | ----------------------------------------------------------------------------- |
| [**tealdeer**](https://github.com/dbrgn/tealdeer)    | `tldr` client for quick command examples.                                     |
| [**lnav**](https://github.com/tstack/lnav)           | Log viewer that merges files by timestamp and understands common log formats. |
| [**tailspin**](https://github.com/bensadeh/tailspin) | Log colorizer for severity, timestamps, IPs, UUIDs, and similar patterns.     |

## nix-specific

| Tool                                                      | Description                                                                   |
| --------------------------------------------------------- | ----------------------------------------------------------------------------- |
| [**nh**](https://github.com/viperML/nh)                   | Nix helper with nicer defaults and diffs before system switches.              |
| [**nom**](https://github.com/maralorn/nix-output-monitor) | Nix output monitor that groups build stages and makes warnings easier to see. |

## resources

- [modern-unix](https://github.com/ibraheemdev/modern-unix) - curated CLI alternatives
- [Arch utilities list](https://wiki.archlinux.org/title/List_of_applications/Utilities) - long reference list
