Logo

Armand.nz

Home / About / Linkedin / Github

Favorite Terminal Command line tools

#linux #tools |

As engineers, much of our work revolves around the terminal, which is enriched by a variety of CLI tools. These tools can streamline our experience in the command line, making it more efficient and enjoyable.

Here I share the CLI tools that have become indispensable in my workflow. Additionally, I’ve compiled a list of other CLI tools that I’m looking forward to exploring. For convenience, I’ve provided scripts to automate the installation of my preferred tools on Debian/Ubuntu-based distributions and macOS, which are part of my daily toolkit.

Quick install scripts

I use Debian/ubuntu based Linux distros and MacOS as my daily drivers so here would be a quick way to install them on each

MacOS:

# Tools and dependencies
export PROGRAMS="fx jq yq httpie gping lazygit tig exa fd fzf neofetch tmux navi bpytop duf dua-cli rclone micro ripgrep diff-so-fancy the_silver_searcher tre-command tailspin doggo mactop sig yazi ffmpegthumbnailer unar poppler fd ripgrep fzf zoxide font-symbols-only-nerd-font"

# might be reqiured for mactop:
brew tap context-labs/mactop https://github.com/context-labs/mactop

export INSTALLER="brew"
for program in $PROGRAMS ; do $INSTALLER install $program ; done

# fzf
# Install key bindings and fuzzy completion:
$(brew --prefix)/opt/fzf/install

Debian/Ubuntu-based Linux distros

Installing from available package repositories where possible (and not necessarily the latest!):

export PROGRAMS="jq yq httpie tig exa fd-find neofetch tmux bpytop duf rclone micro ripgrep  silversearcher-ag tre-command"

export INSTALLER="sudo apt"
for program in $PROGRAMS ; do $INSTALLER install $program -y ; done

# fzf
# Linux: Install with this script instead of apt so it sets up bindings etc
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

# Other tools we need to install wihout apt:

# fx 
sudo curl https://fx.wtf/install.sh | sh
rm fx

# Tailspin
# Requires 
sudo apt install build-essential cargo
# Install using the package manager
cargo install tailspin
# reload bash with new cargo env
echo "export PATH=$PATH:~/.cargo/bin/" >> ~/.bashrc
source ~/.bashrc

# sig
# Requires 
sudo apt install build-essential cargo
# Install using the package manager
cargo install sigrs
echo "export PATH=$PATH:~/.cargo/bin/" >> ~/.bashrc
source ~/.bashrc

# Yazi
# Requires latest rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh  
rustup update
# Now you can install Yazi from latest git version:
cargo install --locked --git https://github.com/sxyazi/yazi.git yazi-fm yazi-cli

# dua-cli - if not available in apt
# Requires 
sudo apt install build-essential cargo
# Install
curl -LSfs https://raw.githubusercontent.com/Byron/dua-cli/master/ci/install.sh | \
    sh -s -- --git Byron/dua-cli --target x86_64-unknown-linux-musl --crate dua --tag v2.17.4
# reload bash with new cargo env
echo "export PATH=$PATH:~/.cargo/bin/" >> ~/.bashrc
source ~/.bashrc

# yq
sudo add-apt-repository ppa:rmescandon/yq -y
sudo apt update
sudo apt install yq -y

# doggo
cd "$(mktemp -d)"
curl -sL "https://github.com/mr-karan/doggo/releases/download/v0.3.7/doggo_0.3.7_linux_amd64.tar.gz" | tar xz
sudo mv doggo /usr/local/bin

# lazygit
cd "$(mktemp -d)"
export LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
cd ~

# gping
echo "deb [signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian/ stable main" | sudo tee /etc/apt/sources.list.d/azlux.list
sudo wget -O /usr/share/keyrings/azlux-archive-keyring.gpg  https://azlux.fr/repo.gpg
sudo apt update
sudo apt install gping

# Navi
bash <(curl -sL https://raw.githubusercontent.com/denisidoro/navi/master/scripts/install)

# diff-so-fancy
sudo add-apt-repository ppa:aos1/diff-so-fancy -y
sudo apt update
sudo apt install diff-so-fancy -y

My favourite tools

JSON

YAML

HTTP Tools

Network Tools

Git

I use tig for repository browsing and lazygit for staging and committing:

Terminal

Help Manuals

Disk

Cloud Storage

Text Editor

Logs

Kubernetes

Looks interesting, but I haven’t tried it yet…

Productivity Tools - Live in your terminal

I haven’t tried these either

comments powered byDisqus

Copyright © Armand