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

редактировать

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

Содержание

  • 1 История
  • 2 Unix и Unix-подобные
  • 3 DOS, OS / 2 и Windows
  • 4 ссылки

История

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

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

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

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

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

DOS, OS / 2 и Windows

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

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

Когда команда вводится в командной оболочке или программа выполняет системный вызов для выполнения программы, система сначала ищет текущий рабочий каталог, а затем ищет путь, исследуя каждый каталог слева направо, ища исполняемое имя файла. которое соответствует заданному имени команды. Исполняемые программы имеют расширение файлов из EXE или COM , и пакетных сценариев имеют расширение BAT или CMD . Другие расширения исполняемых файлов также могут быть зарегистрированы в системе.

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

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

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

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

Последняя правка сделана 2023-04-21 06:13:56
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте