Змінні середовища

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Змінні середовища — змінні, набір динамічних значень, які можуть вплинути на те як запущені процеси будуть себе поводити на комп'ютері.

Опис[ред. | ред. код]

В усіх Unix і Unix-подібних системах, кожен процес має свій власний набір змінних середовища. За замовчуванням, створений процес успадковує дубльоване середовище свого батьківського процесу за винятком змін, внесених батьківським процесом під час створення даного процесу. На рівні системного програмування, ці зміни робляться між fork і exec. З іншого боку, в командних оболонках, таких, як Bash, можна змінити значення змінних середовища для конкретної команди безпосереднім запусканням через env або з використанням нотації ЗМІННА_СЕРЕДОВИЩА = ЗНАЧЕННЯ <команда>.

Всі операційні системи подібні до Unix, а також DOS і Microsoft Windows мають змінні середовища, однак не всі вони використовують одні і ті ж назви змінних. Програми, що стартували можуть отримати доступ до значень змінних середовища для цілей конфігурації. Приклади змінних середовища включають в себе:

  • PATH в якому перераховані каталоги де знаходяться програми команд, назви яких користувач може ввеси.
  • HOME вказує, де знаходиться домашній каталог користувача у файловій системі.
  • TERM (Unix-подібні) визначає тип комп'ютерного терміналу або емулятора терміналу (наприклад vt100).
  • CVS_RSH (Unix-подібні) використовується для яких повідомити CVS RSH-подібну програму використовувати.
  • MAIL (Unix-подібні) використовується, щоб вказати місце пошти користувача.

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

В більшості систем зміна значення змінної середовища в скрипті або в програмі тільки впливає на процес цього скрипту або програми і, можливо, на дочерні процесі. Базовий процес системи і будь-які інші процеси не будуть зачеплені.

В Unix змінні середовища в основному ініціалізуються під час запуску системи системним скриптом і успадковуються усіма іншими процесами в системі. Користувачі додають їх в профільний скрипт (.profile). У Microsoft Windows, змінні середовища звичайно зберігаються в реєстрі Windows або в autoexec.bat.

Деякі змінні середовища Windows[ред. | ред. код]

Список змінних середовища 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
%COMMONPROGRAMFILES(x86)% Вказує шлях до теки, в якій зберігаються загальні для встановлених програм файли в 64-розрядних системах для додатків архітектури x86. C:\Program Files (x86)\Common Files
%COMPUTERNAME% Зберігає ім'я комп'ютера в локальній мережі. Начальник
%COMSPEC% Зберігає шлях до поточного Командного інтерпретатора Windows. C:\Windows\System32\cmd.exe
%DATE% Повертає поточну дату. Використовує той же формат, що і команда date /t. Створюється командою cmd.exe. 12.12.2012
%HOMEDRIVE%, %SYSTEMDRIVE% Зберігає ім'я системного диску. C:
%HOMEPATH%, %USERPROFILE% Зберігає шлях до домашньої папки користувача. C:\Documents And Settings\Адмін
%LOCALAPPDATA% Повертає використовуване за умовчанням локальне розміщення даних додатків. C:\Users\%UserName%\AppData\Local
%PROGRAMDATA% Повертає шлях до каталогу C:\ProgramData\ C:\ProgramData\
%PROGRAMFILES% Повертає шлях до папки з встановленими додатками. C:\Program Files
%PROGRAMFILES(x86)% Повертає шлях до папки з встановленими додатками в 64-розрядних системах для додатків архітектури x86. C:\Program Files (x86)
%PUBLIC% У Windows 7 повертає шлях до каталогу C:\Users\Public C:\Users\Public
%SYSTEMROOT% Зберігає шлях до системної папки (де зберігається ядро і т. ін.) C:\Windows
%SESSIONNAME% Зберігає ім'я користувальницького сеансу. В локальному сеансі має значення Console, в оточенні віддаленого підключення до робочого столу по протоколу TCP/IP має вид RDP-Tcp#<номер сеансу>. Console, RDP-Tcp#1
%WINDIR% Зберігає шлях до папки, в яку встановлена Windows. C:\Windows

Посилання на змінні середовища[ред. | ред. код]

Змінні можуть бути використані як в скипті і так в командному рядку. Як правило, на них посилаються на за допомогою спеціальних символів, спереду або навколо назви змінної. Наприклад, для посилання на PATH в системі на DOS або Windows, користувач може ввести наступну команду:

echo %PATH%

Також у DOS і Windows, команда set без будь-яких аргументів виводить всі змінні середовища разом з їх значеннями. Для того щоб подивитися поточне значення конкретної змінної використають:

set ЗМІННА

Для UNIX подібних з echo використовується знак долара:

echo $PATH

Задавання змінних середовища[ред. | ред. код]

Для того щоб змінити значення змінних середовища застосується:

set ЗМІННА=значення

Однак, це тимчасово. Постійна зміна значення змінної середовища може бути досягнута шляхом редагування реєстру (не рекомендується для новачків), а також за допомогою Windows Resource Kit і застосування setx.exe. З впровадженням Windows Vista, команда setx стала частиною Windows. Найпоширенішим методом визначення змінних середовища в Windows є <Панель управління:Система:Додатково:Змінні середовища>.

Для UNIX подібних є env, set, і printenv команди щоб показати всі змінні середовища і їхні значення. env, set також використовується для встановлення змінних середовища і найчастіше включаються безпосередньо в оболонку. printenv може також використовуватися для друку однієї змінної за умови, що ім'я змінної є єдиним аргументом для команди.

У UNIX також можуть бути використані наступні команди в залежності від певної оболонки.

export ЗМІННА=значення #Bourne, Bash, і суміжні оболонки
setenv ЗМІННА значення # csh і суміжні оболонки

Посилання[ред. | ред. код]