Переменная среды PATH
Когда вы используете команду ls, как shell находит
соответствующий выполняемый файл (программу) для ls? На самом деле
в большинстве систем ls находится в /bin/ls. shell использует
переменную среды PATH ("ТРОПА") для указания возможного
местоположения выполняемых файлов соответствующих команд.
Например, ваша переменнаяPATH может иметь значение
/bin:/usr/bin:/usr/local/bin:.
Это список каталогов (в которых shell будет искать
команду), отделяемых друг от друга двоеточием ``:''. Когда вы
используете команду ls, shell прежде всего проверяет наличие
/bin/ls, затем /usr/bin/ls и т.д.
Обратите внимание на то, что переменная PATH не помогает
находить обычные файлы. Например, если вы используете команду
/home/larry# cp foo bar
shell не использует PATH для нахождения местопребывания
файлов foo и bar - предполагается, что эти имена однозначно
определяют место. shell использует PATH только для нахождения
команды cp.
Это экономит вам массу времени; это означает, что вы не
обязаны помнить, где находятся выполняемые файлы команд. Во
многих системах выполняемые файлы разбросаны во многих местах,
таких как /usr/bin, /bin или /usr/local/bin.
Вместо того, чтобы
писать полное имя команды (вроде /usr/bin/cp), вы просто
указываете в PATH перечень каталогов, которые бы вы хотели,
чтобы shell автоматически просматривал.
Обратите внимание, что PATH содержит ``.'', что означает
"текущий рабочий каталог". Это позволяет вам создавать
shell-сценарии или программы и выполнять их как команды из
текущего каталога, без необходимости указывать это прямо (как в
случае ./makebook). Если каталог не указан в PATH, то shell не
будет его просматривать в поиске команд, это касается и текущего
каталога.