Linux tools that you never knew you needed

bat - (cat alternative)

fd - (find alternative)

httpie - (wget/curl alternative)

# Hello world
$ http httpie.io/hello
# Custom HTTP method, HTTP headers and JSON data
$ http PUT pie.dev/put X-API-Token:123 name=John
# Submitting forms
$ http -f POST pie.dev/post hello=World
# Upload a file using redirect input
$ http pie.dev/post < files/data.json
# ...
# For more examples, check out: https://httpie.io

ripgrep - (grep alternative)

# Basic use
$ rg fast README.md
# Regular expressions
$ rg 'fast\w+' README.md
# Recursive search - recursively searching the directory (current directory is default)
$ rg 'fn write\('
# ...
# For more examples, checkout: https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md

delta

[core]
    pager: delta

[delta]
    plus-style: "syntax #98c379"
    minus-style: "syntax #e06c75"
    syntax-theme: OneHalfDark
    navigate: true
    features: line-numbers decorations

[interactive]
    diffFilter: delta --color-only
alias diff="delta"

z

# Takes me to my workspace folder from anywhere.
$ z workspace

fzf

# Read the list from STDIN and write the selected item to STDOUT
$ find * -type f | fzf > selected
$ vim $(fzf)
# COMMAND **<TAB>
# Files under the current directory
# - You can select multiple items with TAB key
$ vim **<TAB>

# Files under parent directory
$ vim ../**<TAB>

# Files under parent directory that match `fzf`
$ vim ../fzf**<TAB>

# Files under your home directory
$ vim ~/**<TAB>


# Directories under current directory (single-selection)
$ cd **<TAB>

# Directories under ~/github that match `fzf`
$ cd ~/github/fzf**<TAB>

# Can select multiple processes with <TAB> or <Shift-TAB> keys
$ kill -9 <TAB>

$ unset **<TAB>
$ export **<TAB>
$ unalias **<TAB>
# ...
# For more examples, checkout: https://github.com/junegunn/fzf

thefuck

$ apt-get install vim
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

$ fuck
sudo apt-get install vim [enter/↑/↓/ctrl+c]
Reading package lists... Done
...
# ...
# For more examples, check out: https://github.com/nvbn/thefuck

exa - (ls alternative)

alias ls="exa"