next up previous contents
Next: Скрипты инициализации командных оболочек Up: Переменные оболочки и окружение Previous: Переменные оболочки и окружение

Переменная окружения PATH.

  Допустим вы вводите команду ls. Каким образом, по вашему мнению, оболочка находит исполняемый файл ls? Ответ будет таков: в большинстве случаев исполняемый файл ls находится в каталоге /bin, а командная оболочка использует переменную PATH для поиска исполняемых файлов, соответствующих вводимым командам, и в этой переменной указан нужный путь.

Например, значение переменной PATH может быть таким:

/bin:/usr/bin:/usr/local/bin:.
Это список каталогов, разделенных символом ":", в которых командная оболочка будет производить поиск. Когда вводится команда ls, оболочка сначала пытается найти файл /bin/ls, затем -- /usr/bin/ls и т.д.

Отметим, что значение переменной PATH влияет только на поиск исполняемых файлов. Например, если вводится команда

/home/larry\# \tinput{cp foo bar}
то оболочка не использует переменную PATH для того, чтобы найти файлы foo и bar -- т.е. она считает, что эти имена являются полными. Только при поиске исполняемого файла cp будет использоваться переменная PATH.

Подобная система сохраняет время пользователя и позволяет ему не задумываться о том, где хранятся исполняемые файлы для вводимых им команд. В большинстве систем исполняемые файлы рассеяны по большому количеству каталогов, таких как /usr/bin, /bin, /usr/local/bin. Вместо того, чтобы каждый раз вводить полный путь к исполняемому файлу команды (например, /usr/bin/cp), можно указать список каталогов в переменной PATH, и оболочка будет автоматически просматривать этот список.

Обращаем внимание, что в списке переменной PATH есть ".", что обозначает текущий каталог. Это позволяет создавать скрипт или программу и запускать их как команду из текущего каталога, не указывая пути к файлу (например как ./makebook). Если каталог (в том числе и текущий) не находится в списке переменной PATH, то оболочка не будет его просматривать в поиске исполняемого файла.


next up previous contents
Next: Скрипты инициализации командных оболочек Up: Переменные оболочки и окружение Previous: Переменные оболочки и окружение

root
Sun Aug 29 12:01:30 MSD 1999