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

ДОРОЖКА является переменная окружения на Unix-подобный операционные системы, ДОС, OS / 2, и Майкрософт Виндоус, указав набор каталоги где находятся исполняемые программы. В общем, каждый исполняющий процесс или же пользовательская сессия имеет собственную настройку PATH.

История

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

Unix и Unix-подобные

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

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

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

DOS, OS / 2 и Windows

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

Системный каталог Windows (обычно C: WINDOWS system32) обычно является первым каталогом в пути, за которым следуют многие (но не все) каталоги для установленных пакетов программного обеспечения. Многие программы не отображаются в пути, поскольку они не предназначены для выполнения из командное окно, а скорее из Графический интерфейс пользователя. Некоторые программы могут добавлять свой каталог в начало содержимого переменной PATH во время установки, чтобы ускорить процесс поиска и / или переопределить команды ОС. В эпоху DOS было принято добавлять ДОРОЖКА {программный каталог};%ДОРОЖКА% или же НАБОР ДОРОЖКА={программный каталог};%ДОРОЖКА% линия к AUTOEXEC.BAT.

Когда команда вводится в командной оболочке или программа выполняет системный вызов для выполнения программы, система сначала ищет текущий рабочий каталог а затем ищет путь, исследуя каждый каталог слева направо, ища исполняемый файл имя файла, которое соответствует заданному имени команды. Исполняемые программы имеют расширения файлов из EXE или же COM, а пакетные скрипты имеют расширения ЛЕТУЧАЯ МЫШЬ или же CMD. Другие расширения исполняемых файлов также могут быть зарегистрированы в системе.

Как только соответствующий исполняемый файл найден, система нерестится новый процесс, который его запускает.

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

Недействительные местоположения также могут остановка службы, в особенности служба «Сервер», которая обычно является зависимостью для других служб в среде Windows Server.

Рекомендации

  1. ^ Макилрой, М.Д. (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Bell Labs. 139.
  2. ^ Спецификация Open Group Unix, переменные среды
  3. ^ Спецификация Open Group Unix, функция execve ()
  4. ^ Dash exec.c как пример реализации парсера PATH-строки
  5. ^ Microsoft.com, команда PATH