Что такое ПУТЬ и другие переменные среды, и как я могу установить или использовать их?

Вопросы о

  • установка переменных среды
  • PATH

очень распространены здесь, и в большинстве случаев ответы очень похожи друг на друга. В будущем было бы хорошо иметь хороший Q/A для этого.

Таким образом, вопрос: Что такое переменные среды, как исполняемый файл PATH, и как я могу изменить и использовать их в главных операционных системах?

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

345
задан 01.10.2011, 15:08

0 ответов

Что такое Переменные среды?

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

Путь

Один из самых известных называют PATH в Windows, Linux и Mac OS X. Это указывает каталоги, в которых исполняемые программы* расположены на машине, которая может быть запущена, не зная и вводя целый путь к файлу на командной строке. (Или в Windows, диалоговом окне Выполнения в Меню "Пуск" или Win+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, возможно создать новые переменные среды, значения которых затем сделаны доступными для всех программ на запуск.

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

 

Windows

GUI

  1. Открытый Control Panel » System » Advanced » Environment Variables.

  2. Ввести control sysdm.cpl,,3 в диалоговом окне Выполнения Win(+R) и щелчок Environment Variables.
    Для редактирования пользовательских переменных можно также ввести

    %windir%\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables
    

    в диалоговом окне Выполнения.

  3. Щелкните правой кнопкой (My) Computer и нажмите на Properties или просто нажмите Win+Break.

    • В XP нажимают Advanced » Environment Variables.
    • В Vista + нажимают Advanced system settings » Environment Variables.
  4. Существует много других способов достигнуть того же места, такой как путем ввода "переменных среды" в Меню "Пуск" поле поиска/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

Для создавания/устанавливания переменной постоянно использовать 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 Environment Variables

Вот список переменных стандартной среды, которые встроены в Windows. Некоторые примеры: %WINDIR%, %SystemRoot%, %USERPROFILE%, и %APPDATA%. Как большинство имен в Windows, они нечувствительны к регистру.

 

Производные Unix (FreeBSD, GNU / Linux, OS X)

Переменные среды в 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: практическое руководство пути

335
ответ дан 16.12.2019, 22:45

Это сообщение с более технической точки зрения, чем Daniel, но не объясняет как много понятия.


Статья Wikipedia является также превосходной ссылкой.

Linux и большая часть BSDs

В большинстве оболочек командной строки временные переменные среды установлены с помощью 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.

Ряд Windows NT

  • В командной строке (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, 16-разрядный Windows, серия Windows 9x

  • В подсказке MS-DOS (command.com), используйте set name=value, как в WinNT.

    Точно так же выполнение set в интерактивном режиме только влияние, что один command.com экземпляр, наряду с любыми новыми процессами, запущенными от него.

  • Для внесения персистентных изменений добавьте или отредактируйте соответствующий set строки в C:\AUTOEXEC.BAT, затем перезагрузка.

    • Обходное решение, чтобы не перезапускать, для Windows 9x: откройте окно MS-DOS Prompt, установите соответствующие переменные, закройтесь, существующий процесс Проводника (Запустите Закрытие → → при содержании Ctrl+Shift, нажмите Cancel), работать explorer.exe из окна MS-DOS Prompt.

VMS

(Не мог сопротивляться.)

DCL не имеет никакого понятия "пути", но различный символ и определения команды могут быть вставлены SYS$LOGIN:LOGIN.COM.

64
ответ дан 16.12.2019, 22:45

Теги

Похожие вопросы