Share your personal dotfile treats and Unix tool recommendations
I am currently preparing for a new job and cleaning up my dotfile repository. During the process, I had the idea that it would be nice to create a list of amazing tools, aliases, functions, and...
I am currently preparing for a new job and cleaning up my dotfile repository. During the process, I had the idea that it would be nice to create a list of amazing tools, aliases, functions, and recommendations together.
I will start.
First, here is a list of nice tools to apt-get install
or brew install
that I can wholeheartedly recommend:
nvim
is just an amazing text editor.fzf
is a very good fuzzy finder util. For example, you can quickly find files with it.eza
is a goodls
replacement (and the successor ofexa
).bat
is a great replacement forcat
with nice integrations and many options.stow
is great for managing your dotfiles. Thanks to @TangibleLight for telling me about it some while ago. I really love it.tmux
is a terminal multiplexer, i.e. you can have many sessions in one single terminal window. It's easy to use and super helpful. (When on a mac, I prefer iTerm tabs, though.)nvm
is practically a must if you are working with Node.glow
is an excellent markdown reader.tldr
is a niceman
replacement. (You must runtldr -u
after installing it to update available texts.)z
, an amazing tool for switching directories quickly.
Also, I can recommend Oh My ZSH! which I have been using for years.
Here is a small list of aliases I enjoy (I have 100+ aliases and I tried to pick some others may enjoy as well):
# Serve current dir
alias serve="npx serve ."
# What's my IP?
alias ip="curl --silent --compressed --max-time 5 --url 'https://ipinfo.io/ip' && echo ''"
# This should be the default
alias mkdir="mkdir -p"
# Nice git helpers
alias amend="git add . && git commit --amend --no-edit"
alias nuke="git clean -df && git reset --hard"
# Make which more powerful
which='(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'
# This saves so many keystrokes, honestly
alias -- +x="chmod +x"
# Turns your path into a nice list and prints it
alias path='echo -e ${PATH//:/\\n}'
# Map over arguments and run a command
# Usage: map <command>
# Example: ls | map cat
alias map="xargs -n1"
And, finally, here are some fun functions:
# Get cheat sheets for almost anything!
# https://github.com/chubin/cheat.sh
cheat() {
WITH_PLUS=$(echo $@ | sed 's/ /+/g')
CAT_TOOL=$(command -v batcat || command -v bat || command -v cat)
curl "cheat.sh/$WITH_PLUS" | $CAT_TOOL
}
# Send everything to /dev/null
nullify() {
"$@" >/dev/null 2>&1
}
# Create a new dir and enter it
mk() {
mkdir -p "$@" && cd "$_"
}
# Create a data URL from a file
# Source: https://github.com/mathiasbynens/dotfiles/blob/master/.functions
data-url() {
local mimeType=$(file -b --mime-type "$1");
if [[ $mimeType == text/* ]]; then
mimeType="${mimeType};charset=utf-8";
fi
echo "data:${mimeType};base64,$(openssl base64 -in "$1" | tr -d '\n')";
}