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

Вопрос или проблема

Вопросы о

  • установке переменных окружения
  • переменной PATH

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

Итак, вопрос: Что такое переменные окружения, такие как исполняемая PATH, и как я могу изменить и использовать их в основных операционных системах?

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

Что такое переменные окружения?

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

Path

Одна из самых известных называется 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.

* Вы можете добавить поддержку других расширений файлов, кроме .exe, отредактировав %PATHEXT%.

Другие переменные

Другие переменные могут сообщать программам, какой тип терминала используется (TERM в Linux/Mac OS X), или, в случае Windows, где находится папка Windows (например, %WINDIR% это C:\Windows).

Создание новых переменных окружения

В Windows, Linux и Unix возможно создавать новые переменные окружения, чьи значения затем становятся доступными всем программам при запуске.

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

 

Windows

Графический интерфейс

  1. Откройте Панель управления » Система » Дополнительно » Переменные окружения.

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

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

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

  3. Щелкните правой кнопкой мыши (Мой) Компьютер и выберите Свойства или просто нажмите Win+Break.

    • В XP нажмите Дополнительно » Переменные окружения.
    • В Vista+ нажмите Дополнительные параметры системы » Переменные окружения.
  4. Существует множество других способов добраться до того же места, например, введя “переменные окружения” в поле поиска меню Пуск/Экрана и так далее.

Переменные окружения в Windows делятся на пользовательские и системные/машинные значения. Вы можете просмотреть и редактировать их значения там. Их текущие значения при запуске становятся доступными всем программам.

Существует также Rapid Environment Editor, который помогает устанавливать и изменять переменные окружения в Windows без необходимости глубоко погружаться в системные настройки. Еще одна программа с открытым исходным кодом для Windows, с помощью которой можно очень удобно редактировать переменные окружения пути, это Path Editor.

Командная строка

Формат

Переменные окружения в Windows обозначаются процентными знаками (%) вокруг имени:

%имя%

echo

Чтобы отобразить значение переменной окружения в cmd.exe, введите echo %имя%.

C:\>echo %USERPROFILE%
C:\Users\Daniel

set

Чтобы создать/установить переменную, используйте set имя=значение:

C:\>set FunnyCatPictures=C:\Users\Daniel\Pictures\Funny Cat Pictures

C:\>set FunnyCatPicturesTwo=%USERPROFILE%\Pictures\Funny Cat Pictures 2

Чтобы добавить переменную, используйте set имя=значение;%имя%:

C:\>set Penguins=C:\Linux

C:\>set Penguins=C:\Windows;%Penguins%

C:\>echo %Penguins%
C:\Windows;C:\Linux

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

setx

Чтобы создать/установить переменную постоянно, используйте setx имя "значение":

C:\>setx FunnyCatPictures "C:\Users\Daniel\Pictures\Funny Cat Pictures"

[Перезапустите 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

Вот список стандартных переменных окружения, которые встроены в 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 является стандартным способом определения переменных. Синтаксис очень интуитивный. Результат идентичен для этих двух строк, но первый вариант предпочтительнее в случае, если важно сохранить совместимость с предшествующей оболочкой POSIX.

var=value; export var
export var=value

Оболочка C и ее потомки используют совершенно другой синтаксис; там команда — setenv.

Смотрите проект документации Linux, Path HOWTO для более подробного обсуждения на эту тему.

Возможно, в противоречие с общепринятым мнением, 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: Path Howto

Этот пост с более технической точки зрения, чем у Даниэля, но не объясняет концепции так подробно.


Статья Wikipedia также является отличным справочным источником.

Linux и большинство BSD

В большинстве командных оболочек временные переменные окружения устанавливаются с помощью команд export (sh, bash, zsh) или setenv (csh, tcsh).

  • Примеры для добавления $HOME/bin к $PATH в bash или 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) раздел Файлы запуска/остановки.

      • 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 обрабатывается особенно: как системные, так и пользовательские настройки объединяются в окончательное значение.

    Изменения сохраняются в реестре (смотрите ниже), и применяются сразу для всех новых процессов, созданных Explorer (графической оболочкой), например, через меню Пуск.

  • Системные переменные окружения хранятся в реестре, 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, установите соответствующие переменные, закройте существующий процесс Explorer (Пуск → Выключение → удерживая Ctrl+Shift, нажмите Отмена), запустите explorer.exe из окна командной строки MS-DOS.

VMS

(Не удержался.)

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

Вопрос: Что такое переменные окружения?

Ответ: Переменные окружения похожи на переменные в любом языке программирования. В случае систем Windows или Unix они хранят различные значения для того, чтобы программы и задачи могли получать необходимую информацию ОС или “информацию окружения”. Например:

USERPROFILE: директория пользователей в файлах ОС.

MAIL: где можно найти почту пользователя в файлах ОС.

Вопрос: Что такое переменная PATH в частности?

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

Она обращается к переменной PATH системы окружения Windows и проверяет каждое местоположение на наличие данного исполняемого файла. Таким образом, добавление местоположения в переменную PATH позволяет вызывать исполняемый файл напрямую.

Согласно этой статье в Википедии:

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


Вопрос: Как добавить местоположение в переменную PATH?

Ответ: Вам нужно отредактировать строку переменной переменной окружения PATH, чтобы включить местоположение вашего исполняемого файла.

Один из способов сделать это описан здесь:

  1. Откройте меню Пуск и щелкните правой кнопкой мыши на Компьютер. Выберите Свойства.
  2. Выберите Дополнительные системные параметры.
  3. На вкладке Дополнительно выберите Переменные окружения.
  4. Выберите РЕДАКТИРОВАТЬ или НОВУЮ. (для PATH вы, скорее всего, захотите РЕДАКТИРОВАТЬ).
  5. Добавьте ваш путь. например: C:\wamp\bin\php\php5.5.12;

Надеюсь, это прояснит некоторые вопросы.

Для bash оболочки глобальные (не терминальные) переменные окружения PATH я следую соглашению, используемому в моей установке Ubuntu VM – другие оболочки будут различаться:

Предостережение: Вся последовательность запуска оболочки, в которой последовательно открываются файлы .bashrc, .profile и т.д., в каком порядке? Когда мне нужно повторно войти в систему, чтобы получить доступ к вновь определенным переменным, псевдонимам и т.д.? Какое различие между сеансами входа, интерактивными и неинтерактивными оболочками – я действительно использую cron? И почему, когда я выполняю . ~/.bashrc, моя глупая переменная PATH становится все длиннее и длиннее? Это ключевые вопросы, которые приходят на ум, когда я думаю о своей переменной PATH.

На самом деле, я только что полностью переписал все свои файлы запуска оболочки bash, заимствовав идеи из файлов-скелетов Ubuntu и cygwin, и вот некоторые из моих выводов:

  1. Экспортируйте PATH и другие глобальные переменные окружения (т.е. LD_LIBRARY_PATH) переменные в .profile;
  2. Используйте логику в ~/.profile, чтобы открыть $HOME/.bashrc, если он существует;
  3. Фиксировать выполнение ~/.bashrc с проверкой на интерактивное выполнение, выйти в противном случае;
  4. Поместите все псевдонимы, shopt, настройку запроса, управление историей, настройку терминала, определение функций и т.д. (настройка, связанная с интерактивностью) в ту часть ~/.bashrc, которая защищена только для выполнения в интерактивном режиме;
  5. Избавьтесь от других файлов запуска bash, потому что их наличие определяет, работает ли контрольный путь через .profile и .bashrc как ожидается. То есть, если нет специфических требований делать иначе, уберите ~/.bash_profile и ~/.bash_login;
  6. Когда я нахожусь на запросе bash, и мне нужно обновить какую-то настройку по умолчанию, я редактирую свой файл ~/.bashrc, а затем просто прослушиваю его с помощью . ~/.bashrc, чтобы сохранить эти изменения в моей текущей оболочке.
  7. Когда я вношу изменения в такую переменную окружения, как PATH, мне нужно изменить и прослушать свой ~/.profile;
  8. Я помещаю свои вызовы fink, port и brew в специальную настройку в .profile.

Вот мои размышления по этой теме.

Windows 10, без учетной записи администратора

Панель управления -> Учетные записи пользователей -> Учетные записи пользователей -> Изменить мои переменные окружения

Обратите внимание, что вам нужно щелкнуть по заголовку “Учетные записи пользователей”:
Обратите внимание, что вам нужно щелкнуть по заголовку "Учетные записи пользователей"

Опять же, вам нужно щелкнуть по заголовку “Учетные записи пользователей”:
Обратите внимание снова, вам нужно щелкнуть по заголовку "Учетные записи пользователей"

Изменить мои переменные окружения

Переменные окружения

Переменные окружения Linux в закулисье

В этом ответе я хочу объяснить, как работают переменные окружения немного подробнее под Linux, чтобы помочь немного развеять мифы.

Возможно, концепции будут похожи в других операционных системах, но я ими не знаком.

Где хранятся переменные окружения внутри программы?

Основной вопрос: Где фактически хранится строка окружения?.

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

  • какие переменные окружения у программы?
  • какие аргументы командной строки у программы?

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

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

В Linux переменные окружения хранятся в верхней части виртуальной памяти программы, рядом с аргументами командной строки:

Вы также можете проверить это, просто напечатав адрес различных типов переменных в программе на C следующим образом:

#include <stdio.h>
int main(int argc, char **argv, char **env)
{
        printf("argv holds %p\n", argv);
        printf("argv[0] holds %p\n", argv[0]);
        printf("env holds %p\n", env);
        printf("env[0] holds %p\n", env[0]);
        return 0;
}

что позволит вам восстановить само расположение памяти.

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

Системный вызов в Linux — это название интерфейсов, которые программы используют для общения с операционной системой и запроса ее на выполнение задач, таких как запись в stdout и запуск нового процесса.

Системный вызов, который запускает новый процесс, называется execv. Глядя на его страницу справки:

man execv

мы можем увидеть несколько вариантов оберток C, которые можно использовать для вызова самого системного вызова:

       int execl(const char *pathname, const char *arg, ...
                       /*, (char *) NULL */);
       int execlp(const char *file, const char *arg, ...
                       /*, (char *) NULL */);
       int execle(const char *pathname, const char *arg, ...
                       /*, (char *) NULL, char *const envp[] */);
       int execv(const char *pathname, char *const argv[]);
       int execvp(const char *file, char *const argv[]);
       int execvpe(const char *file, char *const argv[], char *const envp[]);

Далее объясняется, как C интерфейсы определяют переменные окружения нового процесса:

e – execle(), execvpe()

Окружение нового образа процесса задается через аргумент envp. Аргумент envp — это массив указателей на строки, оканчивающиеся нулем, и должен быть завершен нулевым указателем.

Все другие функции exec() (которые не включают ‘e’ в суффикс) получают окружение нового образа процесса из внешной переменной environ в вызывающем процессе.

На: https://stackoverflow.com/questions/2050961/is-argv0-name-of-executable-an-accepted-standard-or-just-a-common-conventi/42291142#42291142 я привожу пример использования варианта execve для установки переменных окружения:

#define _XOPEN_SOURCE 700
#include <unistd.h>

int main(void) {
    char *argv[] = {"yada yada", NULL};
    char *envp[] = {NULL};
    execve("b.out", argv, envp);
}

Я думаю, что окончательный системный вызов просто принимает “массив указателей на строки, оканчивающиеся нулем” на вход, но было бы неплохо подтвердить это.

Как установить переменные окружения из вашей оболочки для одной команды?

Это сильно зависит от оболочки и было хорошо освещено в: https://superuser.com/a/284361/128124

Тем не менее, стоит подчеркнуть, что за кулисами оболочка просто переводит строку команды в нижележащий вызов execv, который выполняет фактическую работу по запуску программы с желаемыми переменными окружения.

Как установить переменные окружения из конфигурационных файлов, чтобы использовать их для всех команд

Смотрите, например: https://stackoverflow.com/questions/532155/linux-where-are-environment-variables-stored

Реализация переменной окружения PATH

Теперь давайте сосредоточимся на переменной окружения PATH в частности.

С точки зрения реализации некоторые обертки C, упомянутые в man execv, реализуют поиск по PATH. Я полагаю, что это происходит в пространстве пользователя, и что ядро Linux берет только окончательный разрешенный абсолютный путь к найденному исполняемому файлу.

man execv упоминает:

p – execlp(), execvp(), execvpe()

Эти функции дублируют действия оболочки в поиске исполняемого файла, если указанное имя файла не содержит символа слэша (/). Файл ищется в списке каталогов, разделенных двоеточием, указанном в переменной окружения PATH. Если эта переменная не определена, список путей по умолчанию включает каталоги, возвращаемые confstr(_CS_PATH) (которые обычно возвращают значение “/bin:/usr/bin”) и, возможно, также текущий рабочий каталог; см. ЗАМЕТКИ для подробной информации.

execvpe() ищет программу, используя значение PATH из окружения вызывающего кода, а не из аргумента envp.

Если указанное имя файла включает символ слэша, то PATH игнорируется, и исполняется файл по указанному пути.

В дополнение к этому, определенные ошибки обрабатываются особенно.

Если доступ к файлу запрещен (попытка execve(2) не удалась с ошибкой EACCES), эти функции продолжат искать по остальному поисковому пути. Однако, если другой файл не найден, они вернут код ошибки errno установленный как EACCES.

Если заголовок файла не распознан (попытка execve(2) не удалась с ошибкой ENOEXEC), эти функции выполнят оболочку (/bin/sh) с путем файла в качестве первого аргумента. (Если эта попытка потерпит неудачу, дальнейший поиск не производится.)

Все другие функции exec() (которые не включают ‘p’ в суффикс) принимают первым аргументом (относительный или абсолютный) путь, который идентифицирует программу для выполнения.

Устойчивость стандартов переменной окружения PATH

Одной из заметных усилий по стандартизации, охватывающих переменную окружения PATH, является POSIX, которому в значительной степени следуют Linux и Mac OS, но не Windows.

https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08 охватывает саму переменную:

PATH

Эта переменная будет представлять последовательность префиксов путей, которые некоторые функции и утилиты применяют при поиске исполняемого файла, известного только по имени файла. Префиксы должны быть разделены <colon> (‘:’). Когда префикс ненулевой длины применяется к этому имени файла, <slash> будет вставлен между префиксом и именем файла, если префикс не заканчивался на <slash>. Префикс нулевой длины является устаревшей функцией, указывающей на текущий рабочий каталог. Он отображается как два смежных <colon> символа (“::”), как начальный <colon> перед остальной частью списка или как конечный <colon>, следуя остальной части списка. Строго соблюдающее приложение должно использовать фактический путь (например, .) для представления текущего рабочего каталога в PATH. Список должен быть просмотрен от начала до конца, применяя имя файла к каждому префиксу, пока не будет найден исполняемый файл с указанным именем и соответствующими разрешениями на выполнение. Если запрашиваемый путь содержит <slash>, поиск по префиксам путей не будет выполнен. Если путь начинается с <slash>, указанный путь будет разрешен (см. Разрешение имени пути). Если PATH не установлен или установлен в нуль, поиск пути определяется реализацией.

Поскольку <colon> является разделителем в этом контексте, имена директорий, которые могут использоваться в PATH, не должны содержать символ <colon>.

Существует также страница о семействе функций execv: https://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html#tag_16_111, которая, похоже, содержит те же сведения, что и man execv, обсуждая как поиск по PATH, так и установку переменных окружения.

Ответ или решение

Что такое переменные окружения и переменная PATH?

Определение переменных окружения

Переменные окружения — это пары "ключ-значение", которые хранят информацию о среде выполнения операционной системы, пользовательских сеансах и системных конфигурациях. Они используются различными программами для получения необходимой информации. Например, переменная окружения USERPROFILE в Windows указывает на каталог пользователя, а переменная HOME в Unix-системах указывает на домашний каталог пользователя.

Переменная PATH

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

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

Пример использования переменной PATH

На Windows, например, лучше всего видно, как работает переменная PATH, когда вы пытаетесь запустить встроенные приложения, такие как калькулятор или блокнот, просто вводя их имена в командную строку. Когда вы вводите calc или notepad, система ищет их в директориях, перечисленных в переменной PATH, и находит их в стандартных директориях, таких как C:\Windows.

Настройка и использование переменных окружения

Настройка переменных окружения может различаться в зависимости от операционной системы. Ниже приведены инструкции для Windows, Linux и macOS.

Windows

  1. Через графический интерфейс:

    • Откройте Панель управленияСистема и безопасностьСистемаДополнительные параметры системы.
    • В разделе Дополнительно нажмите Переменные среды.
    • В разделе Переменные среды вы сможете создать, изменить или удалить переменные окружения. Для редактирования переменной PATH выберите ее и нажмите Изменить, добавив новый путь к исполняемым файлам.
  2. Через командную строку:

    • Чтобы временно установить переменную, используйте команду: set VARIABLENAME=value.
    • Для добавления директории в PATH:
      set PATH=%PATH%;C:\NewDirectory
    • Для постоянного изменения используйте команду setx:
      setx VARIABLENAME "value"

Linux и macOS

  1. Через командную строку:

    • Чтобы временно установить переменную, введите:
      export VARIABLE_NAME=value
    • Чтобы добавить директорию в PATH:
      export PATH="$HOME/bin:$PATH"
  2. Для постоянного изменения:
    Для сохранения изменений вы можете добавить команды экспорта в файл конфигурации вашего шелла, обычно это .bashrc, .bash_profile или .profile. Например, откройте .bashrc в вашем домашнем каталоге и добавьте:

    export PATH="$HOME/bin:$PATH"

    После добавления, примените изменения, введя:

    source ~/.bashrc

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...