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 ...
Get Mastering Python for Bioinformatics now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.