Переменная среды

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Переменные среды UNIX[править | править исходный текст]

Переменные среды устанавливаются пользователем или сценариями оболочки. Начальный набор переменных задаётся стартовыми сценариями операционной системы и сценариями, запускаемыми при регистрации пользователя в системе, в частности, /etc/profile и ~/.bash_profile.

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

Среда представляет собой набор пар «имя переменной» и «значение переменной», реализация управления которыми возложена обычно на командный интерпретатор. Так как существует достаточно большое количество интерпретаторов, синтаксис отличается в зависимости от используемого пользователем. Как «имя», так и «значение» чувствительны к регистру символов, «Имя» обычно указывается в верхнем регистре, использование пробелов недопустимо.

В сценариях обычно используются объявления вида ИМЯ_ПЕРЕМЕННОЙ="значение переменной", но конкретный синтаксис зависит от используемого интерпретатора.

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

Из командной строки управление переменными осуществляется с помощью export и env.

Переменные среды Windows[править | править исходный текст]

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

Классификация[править | править исходный текст]

Переменные среды Windows делятся на две категории:

Синтаксис[править | править исходный текст]

Обращение к некоторой переменной среды возможно таким образом: %ИМЯ_ПЕРЕМЕННОЙ%. Также возможно выделение из переменной её части (если на компьютере не отключены расширения командного процессора, по умолчанию они включены), например, печать различных частей переменной VAR с использованием командной строки Windows:

  • Вывод содержимого переменной — echo %VAR%.
  • Вывод первых четырёх символов — echo %VAR:~0,4%.
  • Вывод символов с третьего по шестой — echo %VAR:~2,4%
  • Вывод последних четырёх символов — echo %VAR:~-4%

Некоторые переменные среды[править | править исходный текст]

Список переменных среды Windows можно узнать, набрав в командной строке: set или нажав кнопку «Переменные среды» на вкладке «Дополнительно» в диалоговом окне «Свойства системы» («Мой компьютер»→"Свойства").

Имя Назначение Пример значения
%ALLUSERSPROFILE% Указывает путь до папки общих документов и настроек, общих для всех пользователей. C:\Documents And Settings\All Users
%APPDATA% Указывает путь до папки, в которой хранятся настройки некоторых программ текущего пользователя. C:\Documents And Settings\Администратор\Application Data
%CLIENTNAME% Переменная определена только в среде удаленного подключения к рабочему столу. Хранит имя компьютера (%COMPUTERNAME%) клиента удаленного доступа. MyPC
%COMMONPROGRAMFILES% Указывает путь до папки, в которой хранятся общие для установленных программ файлы. C:\Program Files\Common Files
%COMPUTERNAME% Хранит имя компьютера в локальной сети. Начальник
%COMSPEC% Хранит путь до текущего командного интерпретатора Windows. C:\Windows\System32\cmd.exe
%HOMEDRIVE%, %SYSTEMDRIVE% Хранит имя системного диска. C:
%HOMEPATH%, %USERPROFILE% Хранит путь до домашней папки пользователя C:\Documents And Settings\Администратор
%WINDIR% Хранит путь до папки, в которую установлена Windows C:\Windows
%SYSTEMROOT% Хранит путь до системной папки (где хранится ядро и т. п.) C:\Windows
%PROGRAMFILES% Хранит путь до папки с установленными приложениями C:\Program Files
%SESSIONNAME% Хранит имя пользовательского сеанса. В локальном сеансе имеет значение Console, в среде удаленного подключения к рабочему столу протоколом TCP/IP имеет вид RDP-Tcp#<номер сеанса>. Console, RDP-Tcp#1