- Зачем нужны переменные окружения?
- Получение информации о переменных окружения
- Виды переменных окружения
- Системные переменные
- Пользовательские переменные
- Временные или переменные сеанса
- Пример использования переменной среды Windows
- Переменные PATH и PATHEXT
- Как посмотреть переменные среды Windows 10
- Доступ к переменным средам из реестра Windows
- Как посмотреть все переменные среды в командной строке
- Открытие списка переменных среды в Windows PowerShell
- Создание переменной среды в Windows
- Список переменных среды Windows в таблице
- Переименовать значение переменной
- Два значения в переменной
- Удалить значение в переменной
- Удалить переменную
- Ошибки
Зачем нужны переменные окружения?
Если коротко, то они необходимы для организации разных типов сред: системных, пользовательских, сеансовых, т.е для хранения настроек соответствующих сред в системе.
Например, программы для своей работы используют библиотечные функции, которые являются одним из важнейших системных ресурсов. Или, например, интерпретатор команд может найти исполняемые файлы, соответствующие командам, без необходимости каждый раз указывать соответствующие пути.
Но откуда программы «знают», где найти те или иные ресурсы? Из переменных окружения. Аналогично команды запускаются и выполняются в командной консоли, поскольку благодаря переменной среды PATH интерпретатор bash (или любая другая командная оболочка) находит программу (исполняемый файл или библиотеку) по пути, указанному в PATH.
И точно так же, например, команда man «знает», что запрошенные справочные страницы следует искать в соответствии со значением переменной окружения MANPATH.
Получение информации о переменных окружения
В работе, тесно связанной с системным администрированием, довольно часто приходится сталкиваться с такими ситуациями, когда необходимо узнать значения некоторых переменных среды или привести их полный список. Для этого существует несколько специализированных инструментов. В подавляющем большинстве случаев соответствующие пакеты уже предустановлены в системе.
Наиболее распространенными из этих инструментов являются printenv, env и export. Так, например, чтобы отобразить список допустимых переменных среды, введите следующую команду:
$ printenv GS_LIB=/home/john/.fonts KDE_FULL_SESSION=true LANG=ru_RU.UTF-8 DISPLAY=:0 OLDPWD=/home/john/builds/wxwidgets PWD=/home/john HOME=/home/john . SHELL=/bin/bash PATH=/opt/wxwidgets/bin:/home/john/.config/composer/vendor/bin:/usr/bin
Этот вывод представляет собой сильно сокращенный список переменных окружения для Kubuntu 18.04. Следует также отметить, что представленный список относится к пользовательскому набору, доступному текущему пользователю. Если вы запускаете команду printenv от имени суперпользователя (root), набор переменных будет немного другим.
Как видно из приведенного выше вывода, пользователь john использует русскую локаль сеанса (LANG), оболочкой по умолчанию является bash (SHELL), текущим активным каталогом является /home/john (PWD), а переменная PATH была изменен, чтобы содержать собственные (помимо стандартного /usr/bin) значения /opt/wxwidgets/bin и /home/john/.config/composer/vendor/bin.
Как видите, значение каждой переменной окружения представляет собой набор параметров, разделенных двоеточиями.
Тот же список можно отобразить, выполнив команду env. Вы также можете использовать команду экспорта с параметром -p:
$ экспорт -p
Чтобы отобразить значение определенной переменной:
$ эхо $ ПУТЬ
или же:
$printenv | захватить ПУТЬ
В последнем случае будут отображены все переменные, содержащие выражение «ПУТЬ».
Виды переменных окружения
Как уже было сказано, в системе, образно говоря, существуют разные рабочие среды для разных уровней доступа и длительности переменных. Для организации работы пользователей работает пользовательская среда (окружение) для корректного функционирования компонентов системы — системная среда, доступная только суперпользователю.
Во время выполнения вы также можете установить временные переменные среды, которые доступны текущему пользователю и только на время текущего сеанса.
Ниже приведены некоторые из наиболее часто используемых переменных среды:
Имя | Описание |
ДОМ | Указывает путь к домашнему каталогу текущего пользователя |
PWD | Указывает текущий активный каталог |
OLDPWD | Предыдущий активный каталог |
ЧИСТИТЬ | Указывает программу-оболочку |
СРОК | Содержит имя запущенной в данный момент терминальной программы |
ЗАЯВИТЕЛЬ | Определяет программу для разбиения на страницы справочных страниц |
РЕДАКТОР | Определяет программу для редактирования текстовых файлов |
ВИЗУАЛЬНО | Определяет программу для редактирования текстовых файлов с расширенными функциями (vim, emacs) |
ПОЧТА | Указывает путь к каталогу, в котором должны храниться входящие почтовые файлы. |
ВЕБ-ЧИТАТЕЛЬ | Указывает браузер по умолчанию |
ftp_proxy
http_proxy |
Определить соответственно адреса для прокси-серверов по протоколам FTP и HTTP |
ПУТЬ | Указывает каталог, содержащий подкаталоги, содержащие справочные страницы системы для команды man |
ИНФО-КАТАЛОГ | Указывает список каталогов для поиска информационных страниц для команды info |
ТЗ | Указывает часовой пояс. Доступные часовые пояса хранятся в /usr/share/zoneinfo |
Системные переменные
По стандартам Linux переменные окружения для организации системного окружения хранятся в нескольких файлах:
- /etc/bash.bashrc — хранилище переменных оболочки;
- /etc/profile — хранилище переменных для интерактивных оболочек;
- /etc/environment — переменные из этого файла используются модулем
Конечно, такое разделение для хранения переменных окружения сделано разработчиками неспроста, и эти стандарты необходимо соблюдать, чтобы не засорять систему бесполезной конфигурацией, вносящей путаницу, то есть нужно тщательно выбирать нужный файл в зависимости от конкретной задачи и ситуации.
Пользовательские переменные
Для многопользовательских систем, таких как хостинг веб-сайтов, конкретному пользователю полезно иметь возможность гибко настраивать собственную рабочую среду, создавая новые переменные или добавляя в них новые значения. Например, владелец сайта для своего виртуального хоста, обслуживающего сайт на CMS Drupal, хотел установить инструмент drush, облегчающий и ускоряющий обслуживание CMS.
В этом случае после установки drush локально (в подкаталог домашнего каталога) достаточно добавить в переменную PATH значение, содержащее путь к утилите drush в файле ~/.bashrc. В результате оболочка сможет выполнить команду drush для этого пользователя.
В соответствии с соглашениями систем Linux конфигурация пользовательской среды должна храниться в следующих файлах:
- ~/.bashrc — для хранения параметров инициализации выбранной командной оболочки для пользователя;
- ~/.profile — для инициализации доступных пользователю командных оболочек;
- ~/.pam_environment — для использования модуля
Временные или переменные сеанса
Переменные среды также могут быть установлены временно. Это означает, что переменная будет действительна только в течение текущего сеанса пользователя. В таких случаях удобно иметь определенный скрипт, содержащий код с нужными переменными, который можно запустить в любой момент командой:
$ исходный файл сценария
Или установите их вручную с помощью команды экспорта.
Пример использования переменной среды Windows
Рассмотрим следующий пример: пользователю необходимо открыть системную папку «AppData», которая содержит различные данные от программ, установленных в операционной системе Windows. Скрытая папка «AppData» находится в профиле пользователя, обычно на диске «C:». Данные приложения располагаются по пути:
C:ПользователиИмя пользователяAppDataРоуминг
Для доступа к этой папке нужно выполнить несколько последовательных действий: открыть Проводник, включить отображение скрытых папок и файлов в Windows, а затем пройти весь путь до нужной папки.
С помощью переменной «%APPDATA%» (переменная используется без кавычек) можно сразу открыть нужную директорию в системе, без ввода имени пользователя, включения отображения скрытых папок или указания полного пути. Это экономит много времени.
Чтобы открыть нужный каталог, вам достаточно ввести «%APPDATA%» в поле поиска Windows, в адресной строке проводника или в диалоговом окне «Выполнить», а затем нажать клавишу «Enter».
Переменные среды Windows заключаются в специальный оператор «%», который ставится с обеих сторон от имени переменной. Это необходимо для того, чтобы система обработала запрос.
Пользователь может самостоятельно создавать переменные среды или изменять существующие. В статье мы рассмотрим несколько способов просмотра переменных окружения и создания переменной самостоятельно. В руководстве вы найдете таблицу со списком переменных, используемых в операционных системах Windows 10, Windows 8.1, Windows 8, Windows 7.
Переменные PATH и PATHEXT
Если с обычными переменными все понятно (одна ссылка — одно значение), то эти две отличаются друг от друга. При ближайшем рассмотрении видно, что они относятся к нескольким объектам одновременно. Давайте посмотрим, как это работает.
«ПУТЬ» позволяет запускать исполняемые файлы и скрипты, «лежащие» в определенных каталогах, без указания их точного местонахождения. Например, если вы наберете в «Командной строке»
проводник.exe
система выполнит поиск по папкам, указанным в значении переменной, найдет и запустит соответствующую программу. Вы можете использовать это в своих интересах двумя способами:
- Поместите нужный файл в одну из указанных директорий. Полный список можно получить, выделив переменную и нажав «Изменить».
- Создайте свою папку в любом месте и укажите путь к ней. Для этого (после создания каталога на диске) нажмите «Создать», введите адрес и ОК.
%SYSTEMROOT% указывает путь к папке Windows независимо от буквы диска.
Затем нажмите OK в окнах «Переменные среды» и «Свойства системы».
Возможно, вам придется перезапустить проводник, чтобы применить настройки. Вы можете сделать это быстро следующим образом:
откройте «Команда» и введите команду
taskkill/F/IM explorer.exe
Все папки и панель задач исчезают. Затем снова запустите «Проводник».
изучение
Еще момент: если вы работали с «Командной строкой», ее тоже следует перезапустить, то есть консоль не «знает», что настройки изменены. То же самое касается фреймворков, в которых вы отлаживаете свой код. Вы также можете перезагрузить компьютер или выйти из системы и снова войти в нее.
Теперь все файлы, расположенные в «C:Script», можно открыть (выполнить), набрав только их имя.
«PATHEXT», в свою очередь, дает возможность даже не указывать тип файла, если он прописан в значениях.
Принцип работы следующий: система перебирает расширения одно за другим, пока не будет найден соответствующий объект, и делает это в каталогах, указанных в «ПУТИ».
Как посмотреть переменные среды Windows 10
Теперь мы увидим, как получить доступ к переменным среды в операционной системе Windows 10. В других версиях Windows вы должны выполнить аналогичные действия.
Чтобы просмотреть переменные среды Windows 10, выполните следующее:
- Нажмите клавиши «Win» + «R».
- В окне «Выполнить» введите команду: «systempropertiesadvanced» (без кавычек), затем нажмите кнопку «ОК».
- В окне «Свойства системы» на вкладке «Дополнительно» нажмите кнопку «Переменные среды…».
- В окне «Переменные среды» отображаются переменные среды пользователя и системные переменные среды.
Доступ к переменным средам из реестра Windows
Можно получить доступ к переменным среды из системного реестра Windows. Пользователь должен открыть редактор реестра, а затем перейти по пути к определенной ветке.
Переменные системной среды расположены по следующему пути:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment
Переменные среды локального пользователя находятся в следующей ветке реестра:
HKEY_CURRENT_USERОкружающая среда
Вы можете создавать новые переменные в редакторе реестра или изменять существующие.
Читайте также: Как откатить обновление Windows 10: способы вернуть предыдущую версию
Как посмотреть все переменные среды в командной строке
Пользователь может получить список переменных окружения с помощью системного инструмента — командной строки Windows.
В cmd переменные окружения открываются так:
- Запустите командную строку от имени администратора.
- Запустите команду:
установлен
Чтобы получить список переменных в виде текстового файла, выполните следующую команду в командной строке:
установить > C:Variables.txt
После выполнения этой команды на локальном диске «С:» появится текстовый файл «Переменные» (можно использовать любое имя), который содержит список переменных среды Windows.
Открытие списка переменных среды в Windows PowerShell
открытие списка переменных среды возможно с помощью системного инструмента Windows PowerShell.
Сделайте следующее:
- Запустите Windows PowerShell от имени администратора.
- Введите команду и нажмите клавишу «Enter»:
dirEnv:
- Откроется окно PowerShell со списком переменных среды Windows.
Создание переменной среды в Windows
Пользователь может самостоятельно создать новую переменную для открытия каталогов на компьютере или для запуска программ.
Прежде чем вносить изменения в переменные среды, имейте в виду, что неосторожное изменение значений переменных среды Windows может привести к сбоям или сбоям в работе операционной системы.
Сделайте следующее:
- В окне Переменные среды выберите одну из групп переменных: пользовательские переменные или системные переменные.
- Нажмите кнопку «Создать…».
В этом примере я создам отдельную переменную среды для запуска программы TeamViewer.
- В окне «Редактировать пользовательскую переменную» добавьте имя переменной и в поле «Значение переменной:» введите полный путь к исполняемому файлу.
- В окно «Переменные среды» добавлена новая переменная. Нажмите кнопку «ОК», чтобы применить изменения.
- В диалоговом окне «Выполнить» введите «%VariableName%», в нашем случае «%TeamViewer%», нажмите кнопку «ОК».
- На рабочем столе компьютера открывается окно с запущенной программой.
Аналогично, после ввода переменной в адресную строку проводника, запускается программа или открывается каталог на ПК.
Переменная среды пути «Путь» содержит список каталогов на компьютере, где система должна искать исполняемые файлы. Переменная окружения пути «PATH» добавляется не к исполняемым файлам, а только к каталогам, в которых эти файлы находятся.
Вас также могут заинтересовать:
- Команды командной строки Windows: список
- Команды запуска Windows: полный список
Если в переменную окружения Path Windows добавить путь к каталогу с исполняемым файлом, например, для браузера Google Chrome: C:Program Files (x86)GoogleChromeApplication, программа будет запущена командой строка, после выполнения команды «chrome», без указания полного пути к исполняемому файлу.
При необходимости пользователь может удалить ненужную переменную из операционной системы Windows.
Список переменных среды Windows в таблице
Для удобства посетителей сайта я собрал переменные, их описание и значения в операционной системе Windows в общую таблицу. В подавляющем большинстве случаев системная папка находится на диске «С:», поэтому пути в значениях даны для этого диска.
%ALLUSERSPROFILE% | Папка ProgramData | C:ПрограммДата |
%ДАННЫЕ ПРИЛОЖЕНИЯ% | Папка данных программы | C:ПользователиПользовательAppDataРоуминг |
%CommonProgramFiles% | Папка Common Files в Program Files | C:Program FilesCommon Files |
%CommonProgramW6432% | Папка Common Files в Program Files | C:Program FilesОбщие файлы |
%ИМЯ КОМПЬЮТЕРА% | Имя компьютера | РАБОЧИЙ СТОЛ-XXXXXXX |
%ComSpec% | Запуск командной строки | C:WINDOWSsystem32cmd.exe |
%ДрайверДата% | Папка DriverData | C:WindowsSystem32DriversDriverData |
%HOMEDRIVE% | Системный диск | С: |
% ДОМАШНЯЯ ПУТЬ% | Папка профиля пользователя | C:ПользователиПользователь |
%LOCALAPPDATA% | Локальная папка данных программы | C:UsersПользовательAppDataLocal |
%СЕРВЕР ВХОДА% | Имя контроллера домена | DESKTOP-XXXXXXX |
%NUMBER_OF_PROCESSORS% | Количество потоков процессора | |
%Один диск% | Папка OneDrive | C:ПользователиПользовательOneDrive |
%Дорожка% | Исполняемый путь поиска | C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;… |
%ПУТЬ% | Расширения исполняемых файлов | .com; .EXE; .летучая мышь; .CMD; .ВБС; .ВБЕ; .js .jse .WSF; .ВШ; .MSC |
%ПРОЦЕССОР_АРХИТЕКТУРА% | Архитектура процессора | Драм64; х86; IA64 |
%PROCESSOR_IDENTIFIER% | Описание процессора | |
%PROCESSOR_LEVEL% | Номер модели процессора | |
%PROCESSOR_REVISION% | Аудит процессора | |
%Данные программы% | Папка ProgramData | C:ПрограммДата |
%Программные файлы% | Папка ProgramFiles | C:Программные файлы |
%ProgramFiles(x86)% | Папка Program Files (x86) | C:Program Files (x86) |
%ПрограммаW6432% | Папка ProgramFiles | C:Программные файлы |
%БЫСТРЫЙ% | Возвращает параметры командной строки | |
%PSModulePath% | Пути расположения модулей PowerShell | C:Program FilesWindowsPowerShellModules;C:WINDOWSsystem32WindowsPowerShellv1.0Modules |
%ПУБЛИК% | Общая папка в профиле пользователя | C:ПользователиОбщедоступные |
%системдрайв% | Системный диск Windows | С: |
%SystemRoot% | Папка Windows | C:виндовс |
%TEMP% | Временный каталог | C:ПользователиПользовательAppDataLocalTemp |
%ТМП% | Временный каталог | C:ПользователиПользовательAppDataLocalTemp |
%USERDOMAIN% | Доменное имя | РАБОЧИЙ СТОЛ-XXXXXXX |
%ИМЯ ПОЛЬЗОВАТЕЛЯ% | Имя пользователя | Пользователь |
%ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ% | Профиль пользователя | C:ПользователиПользователь |
%Ветер% | Папка Windows | C:виндовс |
Переименовать значение переменной
Чтобы изменить значение переменной, просто замените значение другим. Начнем с пользовательской среды:
- setx MYWEBPC «C:Новости»
Изменить системную системную переменную:
- setx /m MYWEBPC «C:Новости»
Два значения в переменной
Мы можем добавить два или более значений для одной и той же переменной, разделенных точкой с запятой. Индивидуальные:
- setx MYWEBPC «C:Новости;C:mywebpc»
Два значения в системной переменной окружения:
- setx /m MYWEBPC «C:Новости;Cmywebpc»
Удалить значение в переменной
Чтобы удалить значение в переменной, нужно просто оставить поле в кавычках пустым. Для пользовательской среды:
- setx MYWEBPC «»
Удалить значение для системной среды:
- setx /m MYWEBPC «»
Удалить переменную
Чтобы удалить саму переменную, необходимо удалить запись из реестра. Удалить пользовательскую переменную:
- REG удалить «HKCUEnvironment» /F /V «MYWEBPC»
Удалить системную переменную среды:
- REG удалить «HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment» /F /V «MYWEBPC»
Ошибки
Основная ошибка пользователей — неправильно написанный путь к нужному документу. В этом случае функционал не будет работать как надо. Подобным сервисом часто пользуются программисты. Если стандартных предметов недостаточно, вы можете создать новые очки за несколько минут.
Переменные окружения (environment) работают на ускорение обработки определенных операций. Часто используется профессиональными программистами при настройке операционной системы персонального компьютера (настольного компьютера, ноутбука). Не рекомендуется пользоваться таким сервисом, если навыков обработки информационных средств через специальные режимы недостаточно.