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
- zoxide
- eza and lsd
- bat
- duf
- fzf
- thefuck
- hyperfine
- jq
- dua-cli
- bandwhich
- ddgr and googler
- micro
- lazydocker
- lazygit
- mycli
- tldr
- yazi
- asciinema
- toilet and figlet
- 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

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

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
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
