Jump to content

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

(Перенаправлено из $PATH )

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

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

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

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

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

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

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

DOS, OS/2 и Windows

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

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

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

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

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

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

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

  1. ^ Макилрой, доктор медицины (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Лаборатории Белла. 139.
  2. ^ Спецификация Open Group Unix, переменные среды
  3. ^ Спецификация Open Group Unix, функция execve()
  4. ^ Dash exec.c как пример реализации парсера PATH-строки
  5. ^ Microsoft.com, команда PATH
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: edc381bff834792a9794fd49955bb0c9__1704116700
URL1:https://arc.ask3.ru/arc/aa/ed/c9/edc381bff834792a9794fd49955bb0c9.html
Заголовок, (Title) документа по адресу, URL1:
PATH (variable) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)