Avatar
This is a hunble programmer here. I like to make cool websites, do coding for fun, automate my tasks using scripts and also collect useful information on my notes App called Joplin. So whatever i learned or found I like to share them in form of blogs too.

Awesome cli tools

So i was curious and want to explore some cli tools and i came across this site. So i discovered some nice tools which i noticed and wanna share them and what i think about them

Contents


  1. zoxide
  2. eza and lsd
  3. bat
  4. duf
  5. fzf
  6. thefuck
  7. hyperfine
  8. jq
  9. dua-cli
  10. bandwhich
  11. ddgr and googler
  12. micro
  13. lazydocker
  14. lazygit
  15. mycli
  16. tldr
  17. yazi
  18. asciinema
  19. toilet and figlet
  20. cowsay

zoxide

zoxide is a smarter cd command, inspired by z and autojump. cd itself is fine but when we open terminal we don’t wanna type whole directory every time so this tool is quite useful.

Usage

> z ~/Downloads/Compressed
> z ..
> z Compressed

Source code

https://github.com/ajeetdsouza/zoxide

 

eza and lsd

eza is a modern alternative for the venerable file-listing command-line program ls. Similarly there is lsd. Both are written in Rust and there are few differences in syntax too.

Usage

# for listing treeview of contents of current directory with max depth 2

# with eza
eza --oneline --icons --tree -L 2

# with lsd
lsd --tree --depth 2

Source code

https://github.com/eza-community/eza and https://github.com/lsd-rs/lsd

 

bat

A cat(1) clone with wings. It is cat that comes with syntax highlighting and automatic paging. Very useful to get a quick look of contents of file with syntax highlighting

Usage

> bat file.txt

Source code

https://github.com/sharkdp/bat

 

duf

It stands for Disk Usage/Free Utility and is a better ‘df’ alternative which can give a user friendly colorful output. Just type duf

Source code

https://github.com/muesli/duf

 

fzf

Highly recommended

A command-line fuzzy finder. It is interactive filter which indexes list and can show the result instantly.

Usage

find * -type f | fzf > selected

Source code

https://github.com/junegunn/fzf

 

thefuck

Magnificent app which corrects your previous console command. Sometimes we make mistakes when typing commands so what if something just fixes it , thats where this command comes in. Once the typo occurs just type fuck to get the correct command. Include following in starter script like .bashrc for example

eval "$(thefuck --alias)"
# this following rule is important for some wierd message
export THEFUCK_EXCLUDE_RULES='fix_file'

Source code

https://github.com/nvbn/thefuck

 

hyperfine

A command-line benchmarking tool. Supports features like statistical analysis,constant feedback,warmup,etc. Good for those who wanna check and compare speed of different commands.

Usage

hyperfine  "find /mnt/hdd/Movies -type f"

Source code

https://github.com/sharkdp/hyperfine

 

jq

jq is a lightweight and flexible command-line JSON processor. One of its useful feature that i have found is printing pretty and colorful output of json file.

Usage

jq . package.json

Source code

https://github.com/jqlang/jq

 

dua-cli

View disk space usage and delete unwanted data, fast. Sometimes we wanna see disk usage of files and folders in directories. It is true that ls -l exists but it dont show size information of directories itself so this is very helpful and have its interactive version too.

Usage

# normal version
dua

# interactive version
dua interactive

Source code

https://github.com/Byron/dua-cli

 

bandwhich

Highly recommended

This is a CLI utility for displaying current network utilization by process, connection and remote IP/hostname. Very useful to monitor which software or process is utilizing network and how much. I needed this tool which does that and keeps me informed which process is using internet connection.

Source code

https://github.com/imsnif/bandwhich

 

ddgr and googler

It is always helpful to get quick search result without opening browser and type it so this can be useful

Usage

ddgr internet

Source code

https://github.com/jarun/ddgr and https://github.com/jarun/googler

 

micro

Highly recommended

This is a TUI editor which is easy to use and simple. It supports syntax highlighting for many languages. You maybe thinking that why use this when we have nano, vim, emacs, etc. It is true that those editors are awesome in their own way but for many users who are not used to their specific keybindings can use this as comes with common keybindings which makes editing in it way more productive for those who are used to GUI text based editor.

Also some people says ‘Why not use GUI text editors?’ Answer is simple, when connecting to servers they dont have GUI for most cases so a editor which dont have any steep learniing curve and is easy to use is quite handy.

Source code

https://github.com/zyedidia/micro

 

lazydocker

TUI interface for managing docker containers,images and volumes and to keep tracks and monitor too. It is true that commands exists but sometimes it can be frustrating to use those commands everytime and we want some convinient way so thats where this tool comes.

Source code

https://github.com/jesseduffield/lazydocker

 

lazygit

Highly recommended

TUI interface to manage git repository, just like lazydocker and made by same developer and written in Go too. Very useful and highly recommend it to check this out.

Source code

https://github.com/jesseduffield/lazygit

 

mycli

mysql is cool dbms and have its shell too. mysql workbench is used to get features like syntax highlighting and auto-complete. So why not have something in shell instead. This is where this tool comes in. It is a terminal client for MySQL with autoCompletion and syntax highlighting.

Source code

https://github.com/dbcli/mycli

 

tldr

Highly recommended

This is a collaborative cheatsheets for console commands. man pages and --help exists but they are too comprehensive and sometimes users need to know some main commands rather than read whole manual just to test it. Thats where tldr comes in, It contains community-maintained list of some main commands. tldr is not a full replacement of man because user may wanna know more commands but tldr covers main commands so it is very useful and saves times of surfing them in browser.

Usage

tldr grep

Source code

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

 

yazi

Blazing fast terminal file manager written in Rust, based on async I/O. yazi file manager. This file manager is wonderful in sense that it can peek through files and folders and displays contents inside zip files, text files and also thumbnail for images,videos,etc and can be configured to open with whatever program user wants. Very useful to surf through and all in terminal means it can be used for servers too which don’t have GUI.

Source code

https://github.com/sxyazi/yazi

 

asciinema

Highly recommended

It is a terminal session recorder. This is such a unique thing i have seen and was surprised. what it does it to make a recording of terminal and when someone plays this recording , he can interact with its text too. So a great tool to make tutorials and all that.

Source code

https://github.com/asciinema/asciinema

asciicast

 

toilet and figlet

So till now I have talked about some useful utilities but some times its good to have something interesting and fun so lets talk about them too. FIGlet is a program that creates large characters out of ordinary screen characters. Similarly there is toilet which is inspired my figlet that comes with more art.

Usage

toilet hello --filter metal

Source code

https://github.com/cacalabs/toilet and https://github.com/cmatsuoka/figlet

 

cowsay

cowsay is a program that generates ASCII art pictures of a cow with a message. It can also generate pictures using pre-made images of other animals, such as Tux the Penguin, the Linux mascot. It is written in Perl. It can be used to send them in social media or use it anywhere where images are not allowed or feasible. Like figlet/toilet, they are need to be monospace font

Usage

# eyes here is art and hello is the text
cowsay -f eyes hello

Source code

https://github.com/cowsay-org/cowsay

all tags