Skip to main content

Enhancing Your Linux CLI Experience: Ten Essential Tools for September 2025

·873 words·5 mins

In the world of Linux, the command-line interface (CLI) is a powerhouse for productivity. Whether you’re a developer, system administrator, or enthusiast, enhancing your terminal with modern tools can make everyday tasks more efficient and visually appealing.

This guide covers a selection of essential CLI tools, from font enhancements to advanced search utilities and downloaders. We’ll dive into descriptions, features, installation methods (with a focus on Debian), usage tips, and command examples for each.

Nerd Fonts #

Description #

Nerd Fonts is an iconic font aggregator, collection, and patcher that enhances developer fonts with extra glyphs from sets like Font Awesome, Devicons, and Octicons.

Features #

  • Over 10,390 icons for file types like .css, .js.
  • 68+ patched fonts (e.g., Hack, FiraCode).
  • Cross-platform support.
  • Integrated in projects like Powerlevel9k, VimDevIcons.
  • Font patcher script for custom fonts with millions of variations.

Installation on Linux #

Download patched fonts from https://www.nerdfonts.com/font-downloads. Extract and copy to ~/.fonts, then fc-cache -fv.

Installation on Debian 12 #

sudo apt install fontconfig unzip
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip
unzip Hack.zip -d ~/.fonts
fc-cache -fv

Set Hack Nerd Font in terminal settings.

Usage #

Install font, set in terminal (e.g., iTerm2 or GNOME Terminal). Use in prompts for icons. Patch custom fonts: ./font-patcher font.ttf --complete.

Command Examples #

# Download
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip

# Patch
./font-patcher font.ttf --complete

lsd #

Description #

lsd is a modern ls rewrite with colors, icons, tree-view, and formatting options.

Features #

  • Color-coded output.
  • File icons (requires Nerd Fonts).
  • Tree view (–tree).
  • Date formatting, permissions display.
  • Git integration.

Installation on Linux #

Arch: pacman -S lsd. Debian/Ubuntu: apt install lsd. Or cargo install lsd.

Installation on Debian #

sudo apt update
sudo apt install lsd

Usage #

  • Basic: lsd
  • Long: lsd -l
  • Tree: lsd --tree
  • Icons: lsd --icon always
  • Config: ~/.config/lsd/config.yaml

Command Examples #

lsd
lsd -l
lsd --tree
lsd --icon always

Starship #

Description #

Starship is a minimal, fast, customizable shell prompt for any shell.

Features #

  • Git status, battery, time modules.
  • Conditional formatting.
  • Cross-shell (Bash, Zsh, Fish).
  • Preset configs.

Installation on Linux #

curl -sS https://starship.rs/install.sh | sh. Or brew install starship.

Installation on Debian #

curl -sS https://starship.rs/install.sh | sh

Add eval "$(starship init bash)" to ~/.bashrc.

Usage #

Add to ~/.bashrc: eval "$(starship init bash)". Config: ~/.config/starship.toml. Example: [git_branch] symbol = "🌿 ".

Command Examples #

starship preset nerdfont-symbols
eval "$(starship init bash)"

Oh My Posh #

Description #

Oh My Posh is a customizable prompt engine with themes for shells.

Features #

  • Themes with Git, status indicators.
  • Segments for time, exit code.
  • Cross-platform.
  • JSON config.

Installation on Linux #

brew install jandedobbeleer/ohmyposh/oh-my-posh. Or wget install script.

Installation on Debian #

sudo wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-linux-amd64 -O /usr/local/bin/oh-my-posh
sudo chmod +x /usr/local/bin/oh-my-posh

Add eval "$(oh-my-posh init bash)" to ~/.bashrc.

Usage #

eval "$(oh-my-posh init bash)". Set theme: oh-my-posh --config theme.omp.json. Example: segments like git, battery.

Command Examples #

oh-my-posh get themes
eval "$(oh-my-posh init bash)"

bat #

Description #

bat is a cat clone with syntax highlighting and Git integration.

Features #

  • Syntax highlighting for 200+ languages.
  • Git diff colors.
  • Paging if output exceeds terminal.
  • Line numbers, grid.

Installation on Linux #

Debian/Ubuntu: apt install bat. Arch: pacman -S bat. Alias cat=batcat.

Installation on Debian #

sudo apt update
sudo apt install bat  # executable: batcat

Usage #

  • View file: bat file.txt
  • Numbers: bat -n file
  • Git: bat --diff
  • Theme: bat --list-themes

Command Examples #

batcat file.txt
batcat -n file.txt

ccze #

Description #

ccze is a log colorizer for tools like syslog, apache.

Features #

  • Plugins for httpd, postfix, squid.
  • Modular, fast.
  • Color schemes.

Installation on Linux #

Debian/Ubuntu: apt install ccze. Arch: pacman -S ccze.

Installation on Debian #

sudo apt update
sudo apt install ccze

Usage #

  • Colorize log: tail -f /var/log/syslog | ccze -A
  • HTML: ccze -h < log > out.html
  • Config: /etc/ccze.conf

Command Examples #

tail -f /var/log/syslog | ccze -A
ccze -h < log > out.html

fzf #

Description #

fzf is a command-line fuzzy finder for files, history, processes.

Features #

  • Interactive search.
  • Bindings for Ctrl+R, Ctrl+T.
  • Preview windows.
  • Vim integration.

Installation on Linux #

git clone –depth 1 https://github.com/junegunn/fzf.git ~/.fzf; ~/.fzf/install. Or apt install fzf.

Installation on Debian #

sudo apt update
sudo apt install fzf

Usage #

  • Files: fzf
  • History: Ctrl+R
  • With vim: vim $(fzf)
  • Preview: fzf --preview 'bat {}'

Command Examples #

fzf
vim $(fzf)

ripgrep #

Description #

ripgrep (rg) is a fast regex search tool respecting .gitignore.

Features #

  • Faster than grep.
  • Recursive search.
  • Color output.
  • File types, globs.

Installation on Linux #

Debian/Ubuntu: apt install ripgrep. Arch: pacman -S ripgrep.

Installation on Debian #

sudo apt update
sudo apt install ripgrep

Usage #

  • Search: rg pattern
  • Files: rg -l pattern
  • Type: rg --type py pattern
  • Ignore: rg -u pattern

Command Examples #

rg pattern
rg -l pattern

yt-dlp #

Description #

yt-dlp is a feature-rich audio/video downloader for YouTube and sites.

Features #

  • Formats selection.
  • Subtitles, thumbnails.
  • Playlists, channels.
  • SponsorBlock.

Installation on Linux #

pip install yt-dlp. Or curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp; chmod a+rx /usr/local/bin/yt-dlp.

Installation on Debian #

curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
chmod a+rx /usr/local/bin/yt-dlp

Usage #

  • Video: yt-dlp URL
  • Best: yt-dlp -f best URL
  • Audio: yt-dlp -x --audio-format mp3 URL
  • Update: yt-dlp -U

Command Examples #

yt-dlp URL
yt-dlp -f best URL

These tools can transform your Linux CLI into a more intuitive and powerful environment. Start by installing a few that align with your workflow, and experiment with their configurations. If you’re on Debian 12, the provided instructions should get you up and running quickly. Happy hacking!