Что такое переменные окружения
Перейти к содержимому

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

Доступные переменные окружения в Windows

Доступные переменные окружения в Windows

При написании различных bat-скриптов, а также некоторых действиях, осуществляемых через командную строку, может пригодиться знание различных переменных окружения (которые иногда называются переменные среды / системные переменные / environment variables), которыми можно воспользоваться. В данной статье приведены основные переменные для различных версий ОС Windows.

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

Переменная окружения (Environment variables) — работает как алияс для дисков, файлов и различных других путей в ОС Windows.
При просмотре различных bat-файлов или информационных статей в интернете, можно столкнуться с конструкциями вида %windir%\Resources , %programfiles%\Internet Explorer и так далее. Которые могут вызвать замешательство, т.к. не очень понятно что значит указанный путь. Поэтому в данной статье мы покажем доступные переменные окружения для различных версий ОС Windows.

Переменные среды Windows¶

Переменная окружения (переменная среды́, англ. environment variable) — текстовая переменная операционной системы, хранящая какую-либо информацию — например, данные о настройках системы или сведения о текущем пользователе.

Работа с переменными¶

В качестве примера можно привести переменную %APPDATA% , которая указывает путь до папки, в которой хранятся настройки некоторых программ текущего пользователя. Обычно это C:\Documents And Settings\Пользователь\Application Data , где Пользователь это изменяемое значение. Для каждой учетной записи используется своё имя пользователя.

Чтобы каждый раз не узнавать имя учетной записи текущего пользователя и не подставлять в путь к папке Application Data соответствующее значение и используется переменная окружения %APPDATA% .

Это позволяет, к примеру, быстро открывать папку Application Data , для этого в меню «Пуск →Найти» или в «Пуск →Выполнить» введите %APPDATA% и нажмите клавишу Enter .

Чтобы получить значение переменной окружения через командную строку, используется команда echo , например:

Введенная в командной строке, эта комбинация отобразит архитектуру процессора текущего компьютера. Возможен один из трёх вариантов: x86 , IA64 , AMD64 .

Список переменных¶

Далее приводится список основных переменных, более подробный список приведен в статье Переменная среды Windows.

Environment variables (Русский)

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

Contents

Утилиты

Пакет coreutils содержит программы printenv и env. Программа printenv позволяет отобразить список текущих переменных окружения:

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

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

Чтобы увидеть переменные окружения конкретных процессов, откройте файл /proc/pid/environ , где pid — числовой идентификатор интересующего процесса. Записи в этом файле отделены друг от друга нулевым байтом ( \x0 ), который обычно не виден в терминале. Вы можете использовать, например, sed для отображения переменных окружения процесса в более читабельном формате, заменив нулевые байты на переносы строки: sed ‘s:\x0:\n:g’ /proc/$PID/environ

Установка переменных

На системном уровне

Большинство дистрибутивов Linux советуют изменять или добавлять переменные окружения в /etc/profile или других местах. Имейте в виду, что сразу множество файлов могут содержать переменные окружения и переопределять их, вроде /etc/locale.conf . По сути, любой скрипт может быть использован для этого, однако, по принятым в UNIX соглашениям, следует использовать для этого только определенные файлы.

Для установки переменных окружения на уровне всей системы можно использовать следующие файлы (каждый со своими ограничениями):

  • /etc/environment используется модулем pam_env. Он не привязан к командным оболочкам, поэтому скрипты или glob-выражения использовать здесь нельзя. Здесь можно указывать только пары имя=значение .
  • /etc/profile устанавливает переменные только при логине в командные оболочки. Он может запускать любые скрипты в оболочках, совместимых с Bourne shell.
  • Файлы настроек, специфичные для конкретных командных оболочек — глобальные файлы для вашей командной оболочки, инициализирует переменные и запускает скрипты. Например, Bash (Русский)#Файлы настроек или Zsh (Русский)#Файлы Запуска/Завершения.

Ниже приведён пример скрипта, который позволяет добавлять каталог

/bin пользователя в PATH . Чтобы это сделать, просто поместите код в один из системных файлов инициализации окружения ( /etc/profile или /etc/bash.bashrc ):

На уровне пользователя

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

Например, чтобы добавить каталог в PATH , поместите следующее в

Для применения изменений перезайдите в командную оболочку или используйте команду source: $ source

    Демон dbus и пользовательский экземпляр systemd не наследуют никакие переменные окружения из мест вроде
Графические приложения

Если переменная окружения влияет только на графические приложения, можно ограничить область её применения, установив её только в рамках графического сеанса.

Чтобы установить переменные окружения только для определённого приложения вместо целого сеанса, измените .desktop файл этого приложения. Смотрите Ярлыки приложений#Изменение переменных среды.

Использование скрипта запуска

Некоторые графические окружения (например, KDE Plasma), поддерживают запуск скриптов при входе: можно использовать их для установки переменных окружения. Пример есть в статье KDE (Русский)#Автозапуск приложений.

Окружение Xorg

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

    Большинство экранных менеджеров выполняют source файла xprofile. и SLiM выполняют xinitrc. выполняет

Хотя конец скрипта зависит от того, какой это файл, а любой расширенный синтаксис зависит от используемой оболочки, базовое использование универсально:

Окружение Wayland

Так как Wayland не использует Xorg-специфичные файлы, GDM и KDE Plasma вместо них загружают пользовательские переменные окружения systemd.

Другие экранные менеджеры (например, SDDM) пока что не поддерживают это.

На уровне сеанса

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

В таком случае можно определить переменную PATH в текущем сеансе с помощью команды export. Пока командная оболочка продолжает работать, все запускаемые в ней процессы будут использовать изменённое значение переменной.

С помощью pam_env

PAM-модуль pam_env(8) загружает переменные для прописывания в окружение из этих файлов в указанном порядке: /etc/security/pam_env.conf , /etc/environment (и устаревший

/etc/environment должен содержать только простые пары вида ПЕРЕМЕННАЯ=значение на отдельных строках, наприммер:

/.pam_environment имеют одинаковый формат:

@ и @ являются специальными переменными, значение которых берётся из /etc/passwd . Следующий пример показывает, как использовать переменную HOME внутри другой переменной:

Формат также позволяет расширить уже определённые переменные значениями из других переменных с помощью $<ПЕРЕМЕННАЯ> , например:

Пары ПЕРЕМЕННАЯ=значение тоже допускаются, но расширение переменных здесь не поддерживается. Подробнее смотрите pam_env.conf(5) .

Примеры

В этом разделе описываются типовые переменные окружения, используемые в Linux.

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

переменные среды windows

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

Что такое переменные среды windows

Давайте разберемся в понятии, и так переменная окружения ( environment variable ) это специального рода ссылки уменьшенного размера, на определенные объекты операционной системы Windows, используемые разными программами для хранения информации и взаимодействия с ней. Можно провести аналогию с относительными ссылками на сайтах, где нет явного указания на протокол. Чаще всего это пути до конкретных директорий в ОС.

ИЛИ

Переменная среды — это динамический «объект» на компьютере, содержащий редактируемое значение, которое может использоваться одной или несколькими программами в Windows. Переменные среды помогают программам узнать, в какой каталог устанавливать файлы, где хранить временные файлы и где найти настройки профиля пользователя. Они помогают формировать среду, которую программы на вашем компьютере используют для запуска.

Где используют переменные среды Windows

Приведу несколько примеров:

  • В скриптах > когда нужно например каждому пользователю сделать какую-то настройку, для примера положить на рабочий стол новую папку с документами. Так как для каждого пользователя путь до рабочего стола свой, вида C:\Users\lacky\Desktop, а можно обратиться и по относительному пути за счет переменной %HOMEPATH%, если вы в проводнике введете %HOMEPATH%\Desktop, то попадете на рабочий стол текущего пользователя.

переменные среды windows 10

  • в групповой политике, для настройки пользовательских окружений, например перемещаемые профили.
  • Оптимизация кода > если в коде очень часто используются одни и те же пути к файлам или папкам, а так же ключам реестра, вы можете легко назначить короткую переменную для дальнейшего использования. Ниже я вам приведу сводный список по переменным средам windows 10 и предыдущих версий, а так же покажу как их создавать и менять.

Список переменных сред windows 10

Приведенный глобальный список, в полной мере подойдет и для Windows 7 и для Windows 8.1, все проверено лично. Уверен, что данные знания, очень сильно вам помогут оптимизировать свою работу.

  • %ALLUSERSPROFILE% > данная переменная отправит вас в папку C:\ProgramData
  • %windir% > это папка C:\Windows
  • %APPDATA% > вы попадается в скрытую папку C:\Users\Имя_пользователя\AppData\Roaming
  • %CommonProgramFiles% > папка C:\Program Files\Common Files
  • %CommonProgramFiles(x86)% > перекинет вас в C:\Program Files (x86)\Common Files
  • %CommonProgramW6432% > перекинет вас C:\Program Files\Common Files
  • %COMPUTERNAME% > Имя_компьютера, используется скриптах
  • %ComSpec% > откроет командную строку Windows 10 C:\Windows\system32\cmd.exe
  • %HOMEDRIVE% > путь к диску C:
  • %HOMEPATH% > эта переменная среды windows перекинет вас в папку пользователя \Users\Имя_пользователя
  • %LOCALAPPDATA% > эта переменная среды windows перекинет вас в папку C:\Users\Имя_пользователя\AppData\Local
  • %LOGONSERVER% > Имя_компьютера
  • %NUMBER_OF_PROCESSORS% > Количество_процессоров
  • %OS% > Windows_NT, так же используется в скриптах
  • %Path% > C:\Windows\system32;C:\Windows;C:\Windows\System32Wbem;
  • %PATHEXT% .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
  • %PROCESSOR_ARCHITECTURE% > x86 или AMD64, архитектура Windows
  • %PROCESSOR_IDENTIFIER% > Intel64 Family 6 Model 37 Stepping 5, GenuineIntel
  • %PROCESSOR_LEVEL% > 6
  • %PROCESSOR_REVISION% > 2505 (пример)
  • %ProgramData% > папка C:\ProgramData
  • %ProgramFiles% > C:\Program Files
  • %ProgramFiles(x86)% > папка C:\Program Files (x86)
  • %ProgramW6432% > C:\Program Files
  • %PROMPT% > $P$G
  • %PSModulePath% > C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ согласитесь очеь быстро
  • %PUBLIC% > C:\Users\Public
  • %SystemDrive% > диск C:
  • %SystemRoot% > C:\Windows
  • %TEMP% > C:\Users\Имя_пользователя\AppData\Local\Temp (по умолчанию)
  • %TMP% > C:\Users\Имя_пользователя\AppData\Local\Temp (по умолчанию)
  • %USERDOMAIN% > Имя_компьютера
  • %USERDOMAIN_ROAMINGPROFILE% > Имя_компьютера
  • %USERNAME% > Имя_пользователя
  • %USERPROFILE% > C:\Users\Имя_пользователя

Как вывести список всех переменных Windows

В Windows 10 и других версиях, можно вывести список всех переменных сред Windows, для этого откройте командную строку от имени администратора и введите команду SET. В результате вы получите все переменные среды windows 10 по умолчанию для конкретной операционной системы.

переменные среды windows 10 по умолчанию

Для удобства вы можете экспортировать весь этот список в текстовый файл, для этого введите:

переменная среды path windows 10

Вот содержимое данного документы.

переменные среды windows 10-2

То же самое можно посмотреть и с помощью оболочки PowerShell, в которой нужно ввести:

Системные переменные powershell

Name Value
—- ——
ALLUSERSPROFILE C:\ProgramData
APPDATA C:\Users\Администратор\AppData\Roaming
CommonProgramFiles C:\Program Files\Common Files
CommonProgramFiles(x86) C:\Program Files (x86)\Common Files
CommonProgramW6432 C:\Program Files\Common Files
COMPUTERNAME DC01
ComSpec C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK NO
HOMEDRIVE C:
HOMEPATH \Users\Администратор
LOCALAPPDATA C:\Users\Администратор\AppData\Local
LOGONSERVER \\DC01
NUMBER_OF_PROCESSORS 4
OS Windows_NT
Path C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windo.
PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.CPL
PROCESSOR_ARCHITECTURE AMD64
PROCESSOR_IDENTIFIER Intel64 Family 6 Model 44 Stepping 2, GenuineIntel
PROCESSOR_LEVEL 6
PROCESSOR_REVISION 2c02
ProgramData C:\ProgramData
ProgramFiles C:\Program Files
ProgramFiles(x86) C:\Program Files (x86)
ProgramW6432 C:\Program Files
PSModulePath C:\Users\Администратор\Documents\WindowsPowerShell\ Modules;C:\Program Files\WindowsPo.
PUBLIC C:\Users\Public
SESSIONNAME Console
SystemDrive C:
SystemRoot C:\Windows
TEMP C:\Users\836D

1\AppData\Local\Temp\1
TMP C:\Users\836D

1\AppData\Local\Temp\1
USERDNSDOMAIN ROOT.PYATILISTNIK.ORG
USERDOMAIN ROOT
USERDOMAIN_ROAMINGPROFILE ROOT
USERNAME Администратор
USERPROFILE C:\Users\Администратор
windir C:\Windows

Еще одним методом посмотреть переменные операционной системы, выступает реестр Windows. Нажимаем WIN+R и вводим regedit. В открывшемся окне редактор реестра, перейдите в ветку:

Для просмотра переменных для компьютера

Для просмотра переменных для пользователя

реестр, переменные среды windows 10-1

реестр, переменные среды windows 10-2

Создаем переменные среды windows 10 (Графический метод)

ПО мимо уже имеющихся переменных Windows 10, вы можете создать и новые, это очень легко и не запрещается. Что от вас требуется, вам необходимо зайти в свойства системы. Тут несколько методов, если мы говорим про Windows 10, то можно сделать через правый клик по кнопке «Пуск», выбрав пункт система.

Как создать переменные среды windows 10-1

Универсальный метод, это зайти в свойства моего компьютера или нажать сочетание клавиш WIN+Pause Breake.

Как создать переменные среды windows 10-2

С окне свойства системы, вы должны перейти в пункт «Дополнительные параметры системы»

изменение переменных среды windows 7-1

Далее пункт переменные среды.

изменение переменных среды windows 7-2

И перед вами два вида переменных сред Windows:

  • Временные переменные temp
  • Системные переменные

И те и другие можно легко изменить или создать.

изменение переменных среды windows 10-1

Для примера я создам новую системную переменную, назову ее SYSPREP и укажу путь до папки C:\Windows\System32\Sysprep

создать переменные среды windows 10-1

Проверяю, что все добавилось. И теперь вбив переменную %SYSPREP% у меня откроется C:\Windows\System32\Sysprep.

создать переменные среды windows 10-2

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

Управление переменными средами Windows через PowerShell

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

PowerShell есть функция, называемая провайдерами, которая создает один или несколько дисков, представляющих собой иерархические структуры, подобные файловой системе, которые позволяют пользователю управлять различными областями в Windows. Один из этих провайдеров предназначен для переменных среды под названием Environment .

В PowerShell переменные среды хранятся на Env:, доступном через поставщика среды PowerShell. Это не физический диск, а виртуальная файловая система.

Get-PSProvider

Как вы можете видеть выше, у поставщика среды есть диск с именем Env. Этот диск предоставляет все переменные среды в системе Windows. Например, командлет Get-ChildItem можно использовать для перечисления всех переменных пользовательской среды в вашей системе.

Вывод переменных сред Get-ChildItem

Как установить локальную переменную среды Windows

Когда вы создаете обычную переменную, она считается локальной, то есть она не определена вне оболочки, которая ее создала, как только вы закроете текущее окно PowerShell, ваша переменная исчезнет — это есть локальная переменная. Давайте создадим ее.

Создание локальной переменной среды Windows

Чтобы изменить значение нужной переменной, просто повторите команду с нужным значением.

Изменение локальной переменной среды Windows

Чтобы добавить к текущему значению, еще одно, то используйте оператор += и разделите значение точкой с запятой (;)

Добавление второго значения в переменную среду Windows

Но не забываем, что это временная переменная для текущего сеанса.

Как сделать постоянные переменные среды Windows для пользователя

Чтобы установить переменную среды Windows, которая будет доступна для всех процессов, запускаемых вашей учетной записью, используйте следующее:

Как сделать постоянные переменные среды Windows для компьютера

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

Тут PowerShell использует класс [System.Environment] с методом SetEnvironmentVariable для переменной среды.

Или такой вариант:

Как удалить переменную среды Windows

Чтобы удалить нужную переменную используйте вот такую конструкцию, в моем примере я удалю переменную siteName.

Как выгрузить переменные среды Windows в файл через PowerShell

Если вы хотите сохранить список текущих переменных сред Windows в текстовом файле, то введите команду:

На этом у меня все, если у вас остались вопросы, то пишите постараемся вместе в них разобраться.

Создание и управление переменными средами Windows через командную строку

Не будим списывать со счетов старую, добрую командную строку, так как она умеет так же работать с переменными Windows. Запустите ее от имени администратора.

  • Создадим новую пользовательскую переменную MY-EMAIL, для этого пишем:

Не забываем перезапустить командную строку, иначе новую переменную вы не увидите.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *