Вопросы о
PATH
очень распространены здесь, и в большинстве случаев ответы очень похожи друг на друга. В будущем было бы хорошо иметь хороший Q/A для этого.
Таким образом, вопрос: Что такое переменные среды, как исполняемый файл PATH
, и как я могу изменить и использовать их в главных операционных системах?
Хороший ответ включал бы простое объяснение какой переменные среды и особенно PATH
значьте для ОС, а также простых инструкций по тому, как установить и считать их соответственно.
Переменные среды содержат значения, связанные с текущей средой, как Операционная система или сеансы пользователя.
Один из самых известных называют PATH
в Windows, Linux и Mac OS X. Это указывает каталоги, в которых исполняемые программы* расположены на машине, которая может быть запущена, не зная и вводя целый путь к файлу на командной строке. (Или в Windows, диалоговом окне Выполнения в Меню "Пуск" или +R).
На Linux и Mac OS X, это обычно содержит все bin
и sbin
каталоги, важные для текущего пользователя. В Windows это содержит, по крайней мере, C:\Windows
и C:\Windows\system32
каталоги — вот почему можно работать calc.exe
или notepad.exe
из командной строки или диалогового окна Выполнения, но нет firefox.exe
. (Firefox расположен в C:\Program Files\Mozilla Firefox
. Для получения информации о том, как включать Firefox, пойдите сюда.)
Например, ввод calc
( .exe
может быть опущен) в командной строке в Windows, запустит Windows Calculator.
* можно добавить поддержку расширений файла кроме .exe
путем редактирования %PATHEXT%
.
Другие переменные могли бы сказать программы, какой терминал используется (TERM
на Linux/Mac OS X), или, в Windows, где папка Windows расположена (например, %WINDIR%
C:\Windows
).
В Windows, Linux и Unix, возможно создать новые переменные среды, значения которых затем сделаны доступными для всех программ на запуск.
Можно использовать это при записи сценариев или программ, которые установлены или развернуты на нескольких машинах и потребности сослаться на значения, которые характерны для этих машин. В то время как подобный эффект может быть достигнут с помощью определенных для программы параметров конфигурации, легче сделать это использование переменной среды, если несколько программ должны получить доступ к тому же значению.
Открытый Control Panel » System » Advanced » Environment Variables
.
Ввести control sysdm.cpl,,3
в диалоговом окне Выполнения (+R) и щелчок
Environment Variables
.
Для редактирования пользовательских переменных можно также ввести
%windir%\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables
в диалоговом окне Выполнения.
Щелкните правой кнопкой (My) Computer и нажмите на Properties или просто нажмите +Break.
Advanced » Environment Variables
. Advanced system settings » Environment Variables
.Существует много других способов достигнуть того же места, такой как путем ввода "переменных среды" в Меню "Пуск" поле поиска/Screen и так далее.
Переменные среды в Windows разделены на пользователя и машину/систему определенные значения. Можно просмотреть и отредактировать их значения там. Их текущие значения на запуск сделаны доступными для всех программ.
Существует также Быстрый Редактор Среды, который помогает установке и переменным изменяющей среды в Windows без потребности пойти глубоко в параметры настройки системы. Другая программа с открытым исходным кодом для Windows, с которым среда пути может быть отредактирована очень удобно, является Редактором Пути.
Переменные среды в Windows обозначены со знаками процента (%), окружающий имя:
%name%
Отобразить значение переменной среды в cmd.exe
, ввести echo %name%
.
C:\>echo %USERPROFILE%
C:\Users\Daniel
Для создавания/устанавливания переменной использовать set varname=value
:
C:\>set FunnyCatPictures=C:\Users\Daniel\Pictures\Funny Cat Pictures
C:\>set FunnyCatPicturesTwo=%USERPROFILE%\Pictures\Funny Cat Pictures 2
Для добавления/добавления переменной использовать set varname=value;%varname%
:
C:\>set Penguins=C:\Linux
C:\>set Penguins=C:\Windows;%Penguins%
C:\>echo %Penguins%
C:\Windows;C:\Linux
Набор переменных среды таким образом доступен для (остальной части) продолжительности процесса Командной строки, в котором они установлены и доступны процессам, которые запускаются после того, как переменные были установлены.
Для создавания/устанавливания переменной постоянно использовать setx varname "value"
:
C:\>setx FunnyCatPictures "C:\Users\Daniel\Pictures\Funny Cat Pictures"
[Restart CMD]
C:\>echo %FunnyCatPictures%
C:\Users\Daniel\Pictures\Funny Cat Pictures
В отличие от этого, set
, существует, не равняется знаку, и значение должно быть включено в кавычки, если это содержит какие-либо пробелы. Обратите внимание, что переменные могут расшириться до строки с пробелами (например, %PATH%
становится C:\Program Files
), поэтому лучше включать кавычки вокруг значений, которые содержат любые переменные.
Необходимо вручную добавить setx
к версиям Windows ранее, чем Vista.
Инструменты поддержки Windows XP Service Pack 2
Вот список переменных стандартной среды, которые встроены в Windows. Некоторые примеры: %WINDIR%
, %SystemRoot%
, %USERPROFILE%
, и %APPDATA%
. Как большинство имен в Windows, они нечувствительны к регистру.
Переменные среды в Linux снабжаются префиксом знак доллара ($), такой как $HOME или $HOSTNAME. Много известных и стандартных переменных разъяснены в прописных буквах для выражения просто этого. Следует иметь в виду, что имена переменной чувствительны к регистру, означая, что $User и $USER совершенно не связаны с точки зрения оболочки.
Производные Unix определяют переменные в масштабе всей системы в сценариях оболочки, расположенных главным образом в /etc
папка, но определенные для пользователя значения может быть дана тем переменным в сценариях, расположенных в домашней папке (например, /etc/profile
, $HOME/.bash_profile
). .profile
файл в домашней папке является общим местом для определения пользовательских переменных.
Установка переменных
Эти файлы являются обычными сценариями оболочки и могут содержать больше, чем просто объявления переменной среды. Для установки переменной среды использовать export
. Для показа в настоящее время определяемых переменных среды в терминале работать env
.
export
команда является стандартным способом определить переменные. Синтаксис очень интуитивен. Результат идентичен для этих двух строк, но первая альтернатива предпочтительна в случае, если мобильность к Оболочке Bourne предPOSIX необходима.
var=value; export var
export var=value
Оболочка C и ее потомки используют совершенно другой синтаксис; там, команда setenv
.
См. проект документации Linux, ПРАКТИЧЕСКОЕ РУКОВОДСТВО Пути для более полного обсуждения этой темы.
Возможно, вопреки общему убеждению, OS X является больше "Unix", чем Linux. Дополнительно в файлы, уже упомянутые, $PATH может быть изменен в этих файлах:
/etc/paths
содержит все каталоги по умолчанию, которые добавляются к пути, как /bin
и /usr/sbin
./etc/paths.d
— наиболее часто используемый установщиками для создания исполняемых файлов они обеспечивают доступный от оболочки, не касаясь или определенных для пользователя конфигурационных файлов в масштабе всей системы. Эти файлы просто содержат один путь на строку. например,/Programs/Mozilla/Calendar/bin.
Переменные среды в XP
Инструменты поддержки Windows XP Service Pack 2 (Включаетsetx
)
Переменные среды в Windows Vista и Windows 7
Добавление исполняемых файлов к Диалоговому окну Выполнения
Подсказки MAC OSX - установка переменных среды
TLDP: практическое руководство пути
Это сообщение с более технической точки зрения, чем Daniel, но не объясняет как много понятия.
Статья Wikipedia является также превосходной ссылкой.
В большинстве оболочек командной строки временные переменные среды установлены с помощью export
(sh, удар, zsh) или setenv
(csh, tcsh) команды.
Примеры для предварительного ожидания $HOME/bin
кому: $PATH
в ударе или zsh:
export PATH="$HOME/bin:$PATH"
(В данном случае, export
является ненужным с тех пор PATH
уже часть среды.)
csh, tcsh:
setenv PATH "$HOME/bin:$PATH"
Персистентные переменные среды могут быть установлены во время нескольких отдельных этапов:
Вход в систему:
Установка сессии входа в систему: Linux pam_env
, который обычно читает из /etc/environment
Терминальные логины: файлы "профиля" оболочки.
bash
использование /etc/profile
и первый: ~/.bash_profile
, ~/.bash_login
, ~/.profile
. Страница руководства bash(1)
раздел Invocation.
Часто, файл профиля пользователя включает явный вызов для ~/.bashrc
также.
zsh
: Страница руководства zsh(1)
файлы раздела Startup/shutdown.
csh
и другие оболочки: См. соответствующие страницы руководства.
Графические логины:Не уверен; может варьироваться в зависимости от менеджера по входу в систему. GDM, кажется, читает ~/.profile
в моей системе.
Открытие окна терминала:
bash
использование /etc/bash.bashrc
и ~/.bashrc
.В командной строке (cmd.exe
), используйте set name=value
изменить переменные среды для того окна.
Добавлять c:\bin
кому: %PATH%
, использование:
set path=%path%;c:\bin
Это только влияет на это cmd.exe
процесс и любые новые процессы, запущенные от него.
Для внесения персистентных изменений используйте Панель управления → Система → Усовершенствованные → Переменные среды. (документы)
Примечание: В то время как пользовательские настройки обычно переопределяют системные, PATH
переменная обрабатывается особенно: и система и пользовательские настройки объединяются в окончательное значение.
Изменения хранятся к Реестру (см. ниже), и подайте заявку немедленно ко всем новым процессам, созданным Проводником (графическая оболочка), например, через Меню "Пуск".
Переменные среды в масштабе всей системы сохранены в Реестре, HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
, и загруженный при начальной загрузке системы.
Пользовательская среда удерживается HKCU\Environment
и загруженный во время пользовательского входа в систему.
По умолчанию система также ищет set
команды в AUTOEXEC.NT
файл.
В подсказке MS-DOS (command.com
), используйте set name=value
, как в WinNT.
Точно так же выполнение set
в интерактивном режиме только влияние, что один command.com
экземпляр, наряду с любыми новыми процессами, запущенными от него.
Для внесения персистентных изменений добавьте или отредактируйте соответствующий set
строки в C:\AUTOEXEC.BAT
, затем перезагрузка.
explorer.exe
из окна MS-DOS Prompt.(Не мог сопротивляться.)
DCL не имеет никакого понятия "пути", но различный символ и определения команды могут быть вставлены SYS$LOGIN:LOGIN.COM
.