close
Skip to content

Repository files navigation

Linux Tools: 2026 Edition

Sixty-four command-line tools for Debian and Ubuntu. Each entry says what the tool does, the command that installs it, and what you type to run it — which is not always the same word.

Or install all of them at once ...

Lazy-Linux-Tool-Installer.py skips anything you already have. Works on Debian, Ubuntu, and anything built on them such as Mint or Pop!_OS. You need sudo and curl.

curl -O https://raw.githubusercontent.com/StewAlexander-com/Linux-Tools/main/Lazy-Linux-Tool-Installer.py
chmod +x Lazy-Linux-Tool-Installer.py

python3 Lazy-Linux-Tool-Installer.py --dry-run   # preview, changes nothing
python3 Lazy-Linux-Tool-Installer.py             # go

Flags, pinning to a release, and the security notes are further down.

Start here

If you install nothing else, install these seven:

  • bat — read a file with colour and line numbers (a nicer cat)
  • fd — find files by name, quickly (a nicer find)
  • ripgrep — search inside files, very fast (a nicer grep)
  • fzf — type a few letters to pick from any list
  • htop — see what is using CPU and memory (a nicer top)
  • ncdu — find what is filling up the disk
  • tldr — short worked examples instead of long manual pages
sudo apt install bat fd-find ripgrep fzf htop ncdu tealdeer

# Three of those are typed differently from the package you install:
#   batcat   not  bat
#   fdfind   not  fd
#   tldr     is what tealdeer installs

Four more worth having. These are not in apt, so you fetch them straight from the project's own downloads using a helper called eget. eget is not in apt either, so install it once, verifying the download against its published checksum:

curl -o eget.sh https://zyedidia.github.io/eget.sh
echo "0e64b8a3c13f531da005096cc364ac77835bda54276fedef6c62f3dbdc1ee919  eget.sh" | sha256sum -c
bash eget.sh
sudo mv eget /usr/local/bin/

Then:

  • ezals with colour and git status
  • zoxidecd that learns your habits
  • dustdu as a bar chart
  • micro — a friendly nano replacement
for r in eza-community/eza ajeetdsouza/zoxide bootandy/dust micro-editor/micro; do sudo eget --to /usr/local/bin "$r"; done

Looking for a replacement for something?

Sorted by the older command being replaced, so you can look up whichever one you have run into. One recommendation per row, with alternatives in the notes. The full list below is grouped by category instead, for browsing.

You already use Try instead Notes
apt nala friendlier frontend
awk on CSV/JSON miller Debian: mlr
cat bat syntax highlighting; Debian: batcat
cd zoxide learns your habits
df duf graphs
dig doggo DoH/DoT/DoQ; successor to dog
docker CLI lazydocker TUI
du dust bar charts
find fd Debian: fdfind
git at the CLI lazygit tig is lighter; delta is a diff pager
grep ripgrep Debian: rg; rga searches PDFs and office docs
less / more most multiple windows
ls eza lsd also shows directory sizes
make as a task runner just
man tldr practical examples; apt: tealdeer; eg is similar
nano / vi micro ne and neovim are heavier
ping gping live latency graph
ps procs
sed for find/replace sd simpler syntax
ss neoss TUI
top htop btop and bottom (btm) look nicer
traceroute mtr Debian: mtr-tiny

Installed it, but the command isn't found?

The name you install is often not the name you type, for three different reasons. Only the first two are Debian's doing:

# Debian renames these, and only these
bat           you type   batcat
fd            you type   fdfind

# These ship under a short name upstream, on every distro
ripgrep       you type   rg
ripgrep-all   you type   rga
miller        you type   mlr
bottom        you type   btm
neovim        you type   nvim

# Here it is the apt package name that differs, not the command
tldr          sudo apt install tealdeer
mtr           sudo apt install mtr-tiny
hping3        sudo apt install hping3
nmtui         sudo apt install network-manager

To keep the upstream names for the two Debian renames:

echo 'alias bat=batcat' >> ~/.bashrc
echo 'alias fd=fdfind'  >> ~/.bashrc
source ~/.bashrc

The full list

Sixty-four tools in twelve groups. Every group starts with the command that installs it. A few are listed for reference only, and say so.

The eget lines fetch a binary straight from a project's GitHub releases and drop it on your PATH. They need eget itself, which is installed under Start here.

Files, search, and disk (8)

sudo apt install ncdu fd-find fzf ripgrep
for r in bootandy/dust muesli/duf phiresky/ripgrep-all chmln/sd; do sudo eget --to /usr/local/bin "$r"; done
  • ncdu — Terminal disk/folder space viewer
  • dust — Friendlier du with bar charts
  • duf — Friendlier df with graphs
  • fd — Friendlier find (sharkdp/fd); Debian/Ubuntu apt package fd-find, command often fdfind
  • fzf — Fuzzy finder for files, history, and pipelines
  • ripgrep — Fast recursive search — command is rg
  • ripgrep-all — ripgrep across PDFs, office docs, and other rich formats — command is rga
  • sd — Simpler sed-like find/replace

Shell and prompt (4)

sudo apt install fish
for r in starship/starship ajeetdsouza/zoxide atuinsh/atuin; do sudo eget --to /usr/local/bin "$r"; done
  • fish — Friendly interactive shell
  • starship — Cross-shell customizable prompt
  • zoxide — Smarter cd that learns your habits
  • atuin — Shell history search/sync across machines

ls replacements (2)

for r in eza-community/eza lsd-rs/lsd; do sudo eget --to /usr/local/bin "$r"; done
  • eza — Modern ls replacement with colors and Git integration (successor to exa)
  • 🌟 lsd — Another ls clone, cross-platform (Linux/macOS/Windows); can show directory sizes (lsd-rs/lsd) - personal favorite

Text editors and viewers (7)

sudo apt install bat ne neovim vim
sudo eget --to /usr/local/bin micro-editor/micro
  • micro — Friendly terminal editor if you are not into vi/vim (micro-editor/micro)
  • ne — Terminal editor (nano-like menus; Esc or F1)
  • 🌟 vim — Vi Improved - personal favorite
  • neovim — Modern Vim-compatible editor (apt package neovim; command nvim)
  • vimrc — Shared vim config (amix/vimrc); see vim_awesome based on thisconfigs only; not installed by the Lazy installer
  • batcat clone with syntax highlighting / git integration — on Debian/Ubuntu apt the command is often batcat
  • sublime text — GUI editor — manual install; not in the Lazy installer

Process and system monitors (5)

sudo apt install htop
for r in aristocratos/btop ClementTsang/bottom; do sudo eget --to /usr/local/bin "$r"; done
pip3 install --user glances
  • glances — Lots of system info in one glance; cross-platform — Lazy installer uses pip3 install --user glances (requires Python/pip already present)
  • 🌟 htop — Supercharged top clone — personal favorite
  • btop — Fast TUI process/resource monitor
  • bottom — Cross-platform process monitor inspired by btop — command is btm
  • system informerWindows-only successor to Process Hacker — listed for cross-platform awareness; not in the Lazy installer

Network (10)

sudo apt install bmon hping3 mtr-tiny network-manager nmap
for r in orf/gping mr-karan/doggo; do sudo eget --to /usr/local/bin "$r"; done
sudo eget --to /usr/local/bin schollz/croc   # installer verifies its SHA-256
sudo apt install npm && sudo npm install -g neoss   # neoss ships on npm, not a binary
  • croc — Securely send files between machines (cross-platform; schollz/croc)
  • network-manager — apt package that provides nmtui (terminal NetworkManager UI)
  • hping3 — Advanced ping/packet crafting — install via apt as hping3 (upstream repo is antirez/hping)
  • nmap — Network scanner → related: ncrackncrack is not auto-installed
  • bmon — TUI network bandwidth monitor
  • mtr — Traceroute + ping (apt package is often mtr-tiny; command mtr)
  • gping — Ping with a live latency graph
  • doggo — Modern dig alternative (DoH/DoT/DoQ); actively maintained successor to ogham/dog
  • neoss — User-friendly ss alternative with a TUI — installed with npm install -g neoss
  • zabbix — Full monitoring stack — not in the Lazy installer (much heavier than a CLI utility)

Git (3)

sudo apt install tig
for r in jesseduffield/lazygit dandavison/delta; do sudo eget --to /usr/local/bin "$r"; done
  • tig — TUI git client
  • lazygit — Simple TUI for git
  • delta — Syntax-highlighting pager for git diffs

Data and documents (5)

sudo apt install miller jc pandoc
sudo eget --to /usr/local/bin ArthurSonzogni/json-tui
pip3 install --user visidata
  • miller — awk/sed-like tool for CSV/JSON/etc. — command is mlr
  • jc — Convert common command output to JSON
  • json-tui — Terminal JSON viewer with table view
  • visidata — Interactive viewer for CSV and other tabular data — Lazy installer uses pip3 install --user visidata
  • pandoc — Universal document converter

System and packages (6)

sudo apt install lynis apt-show-versions nala
for r in fastfetch-cli/fastfetch dalance/procs; do sudo eget --to /usr/local/bin "$r"; done
  • systemctl — Built-in systemd service manager (systemctl status, systemctl list-units, …) — not installed by the script (already on systemd hosts); former wrapper chkservice is effectively unmaintained
  • lynis — Linux security auditing by CISOfy (GitHub)
  • apt-show-versions — Show package versions / upgrades (apt-show-versions -u)
  • nala — Friendlier apt frontend
  • fastfetch — Fast system-info display (neofetch-style)
  • procs — Modern ps replacement

Docs, containers, and benchmarks (6)

sudo apt install most
for r in jesseduffield/lazydocker sharkdp/hyperfine casey/just; do sudo eget --to /usr/local/bin "$r"; done
pip3 install --user eg
sudo apt install tealdeer                    # provides the tldr command
  • tldr — Simplified practical man pages — Lazy installer uses pip3 install --user tldr
  • eg — Useful command examples at the CLI (similar niche to tldr) — installed with pip3 install --user eg
  • most — Pager with more features than less/more
  • lazydocker — TUI for Docker
  • hyperfine — Command-line benchmarking
  • just — Command runner / lightweight make alternative

Terminal file explorers (3)

sudo apt install nnn
for r in sayanarijit/xplr gokcehan/lf; do sudo eget --to /usr/local/bin "$r"; done
  • xplr — Very graphical TUI file explorer, best on large screens (sayanarijit/xplr on GitHub)
  • 🌟 nnn — Efficient and elegant
  • lf — Cross-platform TUI file explorer (gokcehan/lf on GitHub)

Desktop GUI apps (5)

sudo apt install geany guake wireshark
sudo eget --to /usr/local/bin Eugeny/tabby
sudo snap install --classic code
  • Visual Studio Code — via snap: sudo snap install --classic code (Lazy installer uses the same)
  • geany — GUI editor like "notepad++" for Windows
  • wireshark — network packet analyzer
  • guake — dropdown GUI terminal for Linux
  • tabby — Modern cross-platform terminal (desktop app; GitHub releases are AppImage/.deb/tarballs, not a tiny static CLI)

Updates

Version history, newest first
  • 08/19/26 - Tagged v5.1.0: neoss and eg install again, new npm method, MIT license, README rebuilt for first-time visitors
  • 08/19/26 - Fixed neoss (now npm) and eg (now pip): both were declared as eget tools, but eget could never fetch either one
  • 08/19/26 - Added an opt-in test that asks GitHub whether every eget tool still ships a Linux binary, so this cannot go unnoticed again
  • 08/19/26 - Working eget and tldr instructions: eget had no install steps and put binaries outside PATH; tldr is not in Debian stable, so tealdeer provides it
  • 08/19/26 - README rebuilt around a first-time visitor: a "Start here" set, an install command per group, and the command names Debian actually gives you
  • 08/19/26 - Added an MIT LICENSE
  • 07/14/26 - Tagged v5.0.1: forensic README accuracy pass; --server only skips real GUI apps (xplr is TUI again)
  • 07/14/26 - Forensic README accuracy pass: fix misleading install claims, jc example, Debian command aliases, glances/tabby/systemctl notes; exclude only real GUI apps from --server
  • 07/14/26 - Tagged v5.0.0: secure eget/croc installs; README 2026 freshness; dogdoggo
  • 07/14/26 - Security: removed curl|sh/bash for eget/croc; GitHub release downloads with ELF checks, croc SHA-256 verification, post-install probes, longer timeouts
  • 07/14/26 - README freshness: 2026 edition; fixed moved/dead links; clarified README-only tools; synced repos (lsd-rs/lsd, micro-editor/micro)
  • 12/02/25 - Added server/minimal mode (--server) and dry-run (--dry-run/-n)
  • 12/02/25 - Renamed to Lazy-Linux-Tool-Installer.py; dataclasses/type hints; platform-independent test suite
  • 12/02/25 - Replaced unavailable chkservice; added lazygit, delta, atuin, gping, hyperfine, just
  • 09/06/25 - README formatting/link improvements; ripgrep-all description
  • 03/18/25 - 2025 alternatives update: eza, neovim, tldr, zoxide, starship, dust, nala, fastfetch
  • 11/19/23 - Readme consistency/readability
  • 01/29/23 - Major installer improvements; added eget
  • 11/05/22 - Tool names became links

Installer options and notes

Lazy-Linux-Tool-Installer.py routes each tool to apt, pip, snap, eget, or npm, whichever suits it.

python3 Lazy-Linux-Tool-Installer.py --dry-run   # preview, changes nothing
python3 Lazy-Linux-Tool-Installer.py --server    # skip the five desktop GUI apps
python3 Lazy-Linux-Tool-Installer.py --help

Pin to a release rather than tracking main:

curl -O https://raw.githubusercontent.com/StewAlexander-com/Linux-Tools/v5.1.0/Lazy-Linux-Tool-Installer.py

It also needs network access, and prompts once for consent. It skips the five entries this page lists for reference only: vimrc, Sublime Text, System Informer, Zabbix, and ncrack. It does not pipe curl into a shell — release artifacts are downloaded, sanity-checked, and croc's published SHA-256 is verified.


Testing

How to run the test suite, and what it covers (for contributors)

test_lazy_linux_tool_installer.py is a mocked unit-test suite for Lazy-Linux-Tool-Installer.py (no real package installs).

Running Tests

From the Linux-Tools directory:

python3 -m unittest test_lazy_linux_tool_installer
python3 -m unittest test_lazy_linux_tool_installer -v
python3 -m unittest test_lazy_linux_tool_installer.TestSystemChecker -v

Checking the eget tools against upstream

The mocked tests prove the installer calls eget correctly. They cannot prove eget will find anything at the other end — a project can stop publishing release binaries at any time, and that failure only shows up on a real machine. One extra test asks GitHub whether every eget tool still ships a Linux binary. It needs the network, so it is off unless you ask for it:

export GITHUB_TOKEN=$(gh auth token)   # optional, but avoids the 60/hour limit
LINUX_TOOLS_NETWORK_TESTS=1 python3 -m unittest test_lazy_linux_tool_installer

If the API budget is too low to check every tool, the test skips rather than passing on a partial sweep.

Test Results

Current Status: ✅ All tests passing

Ran 53 tests in 0.011s
OK (skipped=1)

The skip is the network test above, which stays out of the offline run.

Test Coverage

  • SystemChecker — Debian-like detection, command availability, root check, curl/sudo requirements
  • Installer — command runner/timeouts, apt/pip/eget/snap paths, curl|sh regression guard
  • ToolManager — tool definitions, categories, install routing
  • User consent — retries and KeyboardInterrupt handling
  • Main — system-check failure and consent decline paths (argv-safe under unittest)

Platform Independence

Tests mock subprocess/filesystem side effects so they can run on Linux, macOS, or Windows without installing packages. They are not end-to-end install tests on a live Debian host.


Sometimes using two apps together can be helpful

  • jc + json-tui (pretty JSON table view):
sudo lsof -i | jc --lsof -p | json-tui
  • Interactive file picking with ripgrep + fzf:
rg --files | fzf
  • Faster navigation + richer prompts: zoxide with starship (each needs its own shell init hook; see their docs).

Sources

  1. Linux CLI Tool Upgrades/Alternatives — r/selfhosted
  2. eget
  3. doggo
  4. NetworkManager
  5. micro editor
  6. jc docs — lsof parser

License

MIT. Use it, fork it, ship it.

About

List of Linux Tools I put on almost every linux / Debian host, with a lazy installer for those who just want all the tools at once

Topics

Resources

Stars

33 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages