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.
- Start with — the seven essentials · a better tool for a classic command · when the command isn't found
- Browse by job — Files, search, disk · Shell & prompt ·
lsreplacements · Editors · Monitors · Network · Git · Data & documents · System & packages · Docs & benchmarks · File explorers · Desktop GUI
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 # goFlags, pinning to a release, and the security notes are further down.
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 installsFour 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:
- eza —
lswith colour and git status - zoxide —
cdthat learns your habits - dust —
duas a bar chart - micro — a friendly
nanoreplacement
for r in eza-community/eza ajeetdsouza/zoxide bootandy/dust micro-editor/micro; do sudo eget --to /usr/local/bin "$r"; doneSorted 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 |
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 ~/.bashrcSixty-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.
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
duwith bar charts - duf — Friendlier
dfwith graphs - fd — Friendlier
find(sharkdp/fd); Debian/Ubuntu apt packagefd-find, command oftenfdfind - 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
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
cdthat learns your habits - atuin — Shell history search/sync across machines
for r in eza-community/eza lsd-rs/lsd; do sudo eget --to /usr/local/bin "$r"; done- eza — Modern
lsreplacement with colors and Git integration (successor to exa) - 🌟 lsd — Another
lsclone, cross-platform (Linux/macOS/Windows); can show directory sizes (lsd-rs/lsd) - personal favorite
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; commandnvim) - vimrc — Shared vim config (amix/vimrc); see ⭐ vim_awesome based on this — configs only; not installed by the Lazy installer
- bat —
catclone with syntax highlighting / git integration — on Debian/Ubuntu apt the command is oftenbatcat - sublime text — GUI editor — manual install; not in the Lazy installer
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
topclone — personal favorite - btop — Fast TUI process/resource monitor
- bottom — Cross-platform process monitor inspired by btop — command is
btm - system informer — Windows-only successor to Process Hacker — listed for cross-platform awareness; not in the Lazy installer
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 isantirez/hping) - nmap — Network scanner → related: ncrack — ncrack is not auto-installed
- bmon — TUI network bandwidth monitor
- mtr — Traceroute + ping (apt package is often
mtr-tiny; commandmtr) - gping — Ping with a live latency graph
- doggo — Modern
digalternative (DoH/DoT/DoQ); actively maintained successor to ogham/dog - neoss — User-friendly
ssalternative with a TUI — installed withnpm install -g neoss - zabbix — Full monitoring stack — not in the Lazy installer (much heavier than a CLI utility)
sudo apt install tig
for r in jesseduffield/lazygit dandavison/delta; do sudo eget --to /usr/local/bin "$r"; donesudo 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
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 wrapperchkserviceis 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
psreplacement
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
makealternative
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)
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)
Version history, newest first
- 08/19/26 - Tagged v5.1.0:
neossandeginstall again, new npm method, MIT license, README rebuilt for first-time visitors - 08/19/26 - Fixed
neoss(now npm) andeg(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
egetandtldrinstructions:egethad no install steps and put binaries outsidePATH;tldris not in Debian stable, sotealdeerprovides 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;
--serveronly skips real GUI apps (xplris 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;
dog→doggo - 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
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 --helpPin to a release rather than tracking main:
curl -O https://raw.githubusercontent.com/StewAlexander-com/Linux-Tools/v5.1.0/Lazy-Linux-Tool-Installer.pyIt 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.
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).
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 -vThe 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_installerIf the API budget is too low to check every tool, the test skips rather than passing on a partial sweep.
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.
- 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)
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.
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:
zoxidewithstarship(each needs its own shell init hook; see their docs).
- Linux CLI Tool Upgrades/Alternatives — r/selfhosted
- eget
- doggo
- NetworkManager
- micro editor
- jc docs — lsof parser
MIT. Use it, fork it, ship it.