ПУТЬ (переменная)


PATH — это переменная среды в Unix-подобных операционных системах , DOS , OS/2 и Microsoft Windows , указывающая набор каталогов , в которых находятся исполняемые программы. Как правило, каждый выполняемый процесс или пользовательский сеанс имеет свою собственную настройку PATH.

Multics придумала путь поиска. Ранняя оболочка Unix искала имена программ только в /bin, но к Версии 3 Unix каталог был слишком большим, а /usr/bin, а также путь поиска стали частью операционной системы. [1]

В POSIX и Unix-подобных операционных системах $PATHпеременная указывается в виде списка из одного или нескольких имен каталогов, разделенных двоеточием ( :). [2] [3] Каталоги в PATH-string не предназначены для экранирования, что делает невозможным наличие каталогов с :именем. [4]

Каталоги /bin, /usr/binи /usr/local/binобычно включаются в $PATHнастройки большинства пользователей (хотя это зависит от реализации). Суперпользователь также обычно имеет и записи для простого выполнения команд системного администрирования . Текущий каталог ( ) также иногда включается пользователями, что позволяет напрямую запускать программы, находящиеся в текущем рабочем каталоге . Системные администраторы, как правило, не включают его , чтобы предотвратить случайное выполнение скриптов, находящихся в текущем каталоге, например, которые могут быть помещены туда вредоносным tarbomb./sbin/usr/sbin.$PATH. В этом случае выполнение такой программы требует указания абсолютного ( /home/userjoe/bin/script.sh) или относительного пути ( ./script.sh) в командной строке.

Когда имя команды указывается пользователем или из программы выполняется вызов exec$PATH , система выполняет поиск по всем каталогам слева направо в списке в поисках имени файла , соответствующего имени команды. После обнаружения программа выполняется как дочерний процесс командной оболочки или программы, выдавшей команду.

В операционных системах DOS, OS/2 и Windows %PATH%переменная указывается в виде списка из одного или нескольких имен каталогов, разделенных точкой с запятой ( ;). [5]