Bash tools for a 10x productivity boost

Romain Croughs
5 min readMay 19, 2024

These are some of the best bash tools and aliases that you can use to boost your productivity. They are great for saving time and making you a better dev today.

Photo by Gabriel Heinzer on Unsplash

To add an alias to you bash terminal, add the following line to your .bashrc (or .zshrc if you are using zsh) file:

alias alias_name='command'

🦘 z — Jump around

The z command is not really an alias, but it’s a great tool to jump around your filesystem. It tracks the directories you visit and allows you to jump to them with just a few keystrokes. You’ll never have to use cd again.

For example, if you are going everyday to your working directory ~/Documents/Pro/Medium, you had to type at least one long command, or three short commands. With z, you’ll only type “z m”, taking maximum 1 second if you’re being slow.

To use it, install it, run some cds, and you are good to go !

z GitHub repository: https://github.com/rupa/z

⌨️ Neovim — The only IDE you’ll ever need

One of the standout features of Neovim (and Vim) is its powerful and efficient motion commands. Vim motions allow you to navigate through your text quickly and with precision, significantly enhancing your editing speed and reducing the need for repetitive keystrokes. You’ll never have to touch you mouse again once you’ll master the motions.

If you are a bit afraid to loose all your workflow by changing IDE, you can simply install the Vim for Visual Studio Code to get use to the motions. I promise you’ll never regret learning these motions. They can be activated in a lot of places afterwards, I personally use it on Leetcode and Overleaf.

Neovim

Moreover, Neovim is a powerful and highly customizable text editor that can function as a fully-fledged Integrated Development Environment (IDE). It’s an extension of Vim, offering improvements in usability, extensibility, and modernity. By leveraging plugins, key mappings, and custom configurations, you can tailor Neovim to perfectly suit your development needs. Community is actively contributing, so you’ll find all your favorite VSCode plugins in Neovim.

Neovim GitHub repository: https://github.com/neovim/neovim

🔎 fzf — Fuzzy finder

FZF is a command-line fuzzy finder that can be used to find quickly something in any list. It’s a great way to quickly find what you’re looking for. You can alias the following command to quickly jump to a directory:

alias cf='cd $(find . -type d -print | fzf)'

When you type cf and hit enter, you’ll be presented with a list of directories to choose from.

Seaching a file in fzf

The default fzf command let you search through files. You could, for example, create an alias to search for a file and open it in neovim:

alias nvopen='nvim $(fzf)'

fzf GitHub repository: https://github.com/junegunn/fzf

⚡ uv — A blazingly fast pip

UV is a faster python package manager written in Rust. It’s a great alternative to pip and offers more features and promise a 10x speed improvement. It’s a great tool for managing your python packages.

uv GitHub repository: https://github.com/astral-sh/uv

🦇 bat — A better cat

Bat is a modern replacement for cat that offers syntax highlighting, line numbers, and more. It’s a great tool for viewing files, especially code, which could rapidly be unreadable with the usual cat

bat GitHub repository: https://github.com/sharkdp/bat

📚 tldr — a man page alternative

Tldr offers you a simplified and community-driven set of cheat sheets for common commands. It’s a great way to quickly learn how to use a command without having to read the whole man page.

tldr

tldr GitHub repository: https://github.com/tldr-pages/tldr

🐢 Atuin — Navigate through your history

Using the default history command in bash is not very user-friendly and can be a pain in the ass when you’re trying to find the exact curl command you did one week ago. Atuin is a better way to navigate through your history. It offers you fuzzy search, filtering, and more.

Atuin GitHub repository: https://github.com/atuinsh/atuin

🌈 LSD or exa — List directory contents

The ls command is used to list files in a given directory. The lsd app is a more colorful and user-friendly version of ls. It offers you color-view, tree-view, and more. Exa is another alternative to ls. It’s a modern replacement for ls that offers more features and a better user experience.

lsd

LSD GitHub repository: https://github.com/lsd-rs/lsd

exa GitHub repository: https://github.com/ogham/exa

🔀 delta — A better git diff

Delta is a modern replacement for git diff that offers syntax highlighting, line numbers, and more.

Delta

delta GitHub repository: https://github.com/dandavison/delta

🕵️ fd — A better find

The fd command is a faster and more user-friendly alternative to find. It’s a great tool for searching files and directories.

fd GitHub repository: https://github.com/sharkdp/fd

📊 zenith or btop — System monitoring (top)

Zenith and btop are both monitoring tools that offer a better view of your system’s performance. They are more user-friendly than the default top command and offer more features. They are practically identical, so you can choose either one. Zenith is written in Rust, while btop is written in C++.

btop

btop GitHub repository: https://github.com/aristocratos/btop

zenith GitHub repository: https://github.com/bvaisvil/zenith

--

--