Appendix B. Understanding $PATH and Installing Command-Line Programs
PATH is an environment variable that defines the directories that will be searched for a given command.
That is, if I type foo and there’s no built-in command, shell function, command alias, or program anywhere in my PATH that the shell can execute as foo, I’ll be told this command cannot be found:
$ foo -bash: foo: command not found
In Windows PowerShell, I can inspect the PATH with echo $env:Path, whereas on Unix platforms I use the command echo $PATH.
Both paths are printed as a long string with no spaces, listing all the directory names separated by semicolons on Windows or by colons on Unix.
If the operating system didn’t have some concept of a path, it would have to search every directory on the machine for a given command.
This could take minutes to hours, so it makes sense to restrict the searching to just a few directories.
Following is my path on my Macintosh.
Note that I have to put a dollar sign ($) in front of the name to tell my shell (bash) that this is a variable and not the literal string PATH.
To make this more readable, I’ll use Perl to replace the colons with newlines.
Note that this command will only work on a Unix command line where Perl is installed:
$ echo $PATH | perl -pe 's/:/\n/g'/Users/kyclark/.local/bin /Library/Frameworks/Python.framework/Versions/3.9/bin /usr/local/bin /usr/bin ...