Skip to content

dwvisser/favorite-linux-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My Favorite Linux Tools

I currently use the following Linux versions, some as boot OS, others as WSL VMs:

  1. At home: Ubuntu 25.10 & Kubuntu 25.10
  2. At work: Ubuntu 22.04 & 24.04

I am a heavy user of the default bash shell.

Excellent External Resources

  • dbohdan/structured-text-tools - Much of my day job is concerned with understanding log files we produce. This page gives an invaluable overview of standard tools available for slicing, dicing and comprehending large structured text outputs.
  • The excellent list at ibraheemdev/modern-unix contains more tools I may try in the future.
  • A blog post by Julia Evans has some cool stuff to look at too.

Python Development

  • uv - FAST. "A single tool to replace pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv, and more." Good Cheat Sheet
  • ruff - Fast linting/formatting from the command-line & IDE plug-ins.
  • ty - Fast type checking from the command-line.
  • radon - Cyclomatic Complexity, SLOCs & other metrics.

Terminal-based tools

I've marked all tools with icons indicating the primary implmentation language, e.g., Rust , Go , Python and Ruby .

Filesystem

Name Install Steps Description / Config
diskonaut cargo install diskonaut Interactive treemap visualization of disk space usage, right in the console
duf apt intall duf Easy-on-the-eyes du/df replacement.
fd apt install fd-find Colorful, fast find replacement with sensible, opinionated defaults. fdfind is the command on Ubuntu.
lla cargo install lla Fast, colorful ls replacelment. I particularly like using the -G option to peruse a local Git repository.
zoxide curl | sh & add command to .bashrc Best cd replacement ever, leverages fzf to let you "fuzzy cd". Requires Ubuntu 24.04+

Working with Text Files

Name Install Steps Description / Config
bat apt install bat Colorful cat with line numbers, paging, and syntax highlighting. (Tool is invoked with batcat when apt installed.)
fx snap install fx JSON Viewer that helps with figuring out jq query syntax.
glow snap install glow Render markdown nicely right in the terminal. Use -p for paged output.
hl cargo install --locked --git https://github.com/pamburus/hl.git Fast pretty colorful presentation/filtering of JSON-formatted logs.
jnv cargo install jnv Pure Rust interactive json filtering for subset of jq filters.
micro apt install micro Nano replacement with syntax highlighting.
ripgrep apt install ripgrep Fast, developer-friendly grep-like code searcher.
vim apt install vim Like trusty old vi but better, includes syntax highlighting.
xan cargo install xan Amazing command-line interactive CSV file viewer/processor.

Git-specific

Name Install Steps Description / Config
gitui Download binary. Place in ~/.local/bin Intuitive terminal-based UI to your Git repository. Lacks tig's multi-branch tree view, so both tools are nice to have.
🔨 git what See repo for manual instruction with Make. Just type git what for a quick, colorfol, summary of all the local open branches in the current repo.
tig apt install tig Fancy git browser. I also like the "git lola" variant given at this blog post

Et al

Name Install Steps Description / Config
bandwhich Unzip executable from releases tarball to /usr/local/bin Very nice presentation of what programs are consuming bandwith on connections to where. Needs sudo to run.
doggo Unzip executable from releases tarball to /usr/local/bin Pretty dig replacement, for querying DNS from the command-line.
fzf apt install fzf, then look at apt show fzf to find instructions on enabling keybindings and autocompletions. Powerful "command-line fuzzy finder" that is hard to describe adequately. Its Alt-C function has allowed me to augment autojump when jumping into the current tree. Just watch this YouTube video, or read this blog post.
hexyl dpkg (see below) Colorful hexadecimal binary file viewer.
litecli pip install litecli Colorful autocomplete-savvy SQLite CLI client
nushell Download tarball release file, extract under ~/.local, and update alias Fancy uber-capable shell, inspired by PowerShell, but results are more column-and-row based.
procs snap install procs Colorful, flexible ps replacement.
starship Install Fira Code Nerd Font; Set as font in terminal application; Set as font in VS Code; Follow Quick Install instructions using shell script. Amazing developer-friendly, colorful, and rich shell prompt. Config: Copy .config/starship.toml to ~/.config
zellij snap install --classic zellij Colorful, user-friendly, tmux replacement, that I usually use now. Config: Copy .config/zellij/config.yaml to use Alt-S and Alt-Q instead, which avoids collision with micro editor keys.

cargo = Just what it says. My favorite way to get Rust up and running is to apt install rustup, then issue the command, rustup toolchain install stable. That way, it's easy to update to a newer version of Rust later. Some tools, like diskonaut, have C++ dependencies to build as well. Usually sudo apt install build-essintial suffices to provide these.

dpkg = Find the appropriate non-musl-variant amd64 or armhf .deb release file in the project releases page (generally just add /releases to the GitHub project URL), curl -LO [release-file-url] for the appropriate .deb release file, then sudo dpkg -i [release-file].

snap is included on Ubuntu as its favored containerized application solution. It is not supported on WSL. flatpak must first be installed and setup.

Nowadays, containerized solutions like snap or flatpak are a common and useful way to install software on Linux.

For Python Development

  • uv - Fast replacement for pip, venv, et al, written in Rust.
  • wat - Interactive object introspection with colorful output.

Maybe at some point?

Look promising, but I haven't really tried enough and/or made up my mind yet:

  • I've been nervous about Nix & NixOS, but this tool looks to possibly give me 99% of what I might want from those, anyway, including having a lot of the above tools installed on any new machine easily: https://getfleek.dev/
  • nb - CLI-based notebook that utilizes Git and can sync your notes using a remote git repository.
  • rulex - I love that this "simplified" text matching language can generate non-trivial regexes for numeric ranges for me.
  • chezmoi - Manage dotfiles across machines leveraging Git, written in Go.

About

My Personal Favorite Linux Tools

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages