
$PATH is an environment variable containing a list of directories where executable programs are located in UNIX systems. The shell will search for executables in directories separated by the colon punctuation from left to right until it finds a match.
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
A typical scenario is to add ~/.local/bin as the first directory in $PATH, so you can comfortably install programs like Neovim, Tmux, and Python there.
$ PATH=$HOME/.local/bin:$PATH
$ echo $PATH
/home/jiholland/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
I usually add directories to $PATH in the ~/.bash_profile file, which is read by bash at login and will take effect each time you start a new terminal. The following function will only add directories to $PATH if it exists, is a directory, and is not already in $PATH.
$ cat ~/.bash_profile
pathadd() {
if [ -d "$1" ] && [[ ":$PATH:" != *":$1:"* ]]; then
PATH="$1:$PATH"
fi
}
# Add these directories to PATH.
pathadd "$HOME/.local/bin"
unset -f pathadd
You can check out my dotfiles on GitHub if you found this useful.
Leave a Reply