![Приєднайтесь до додаткового Ubuntu DC до Samba4 AD DC для FailOver реплікації](/f/254e74bc107fa79c8bd25fca95395e5c.jpg?width=100&height=100)
Змінні середовища це деякі спеціальні змінні, які визначені в оболонці і потрібні програмам під час виконання. Вони можуть бути визначені системою або користувачем. Системними змінними є ті, які встановлюються системою і використовуються програмами на системному рівні.
Наприклад, наприклад Інвалід команда - це дуже поширена системна змінна, яка використовується для зберігання поточного робочого каталогу. Визначені користувачем змінні зазвичай встановлюються користувачем - тимчасово для поточної оболонки або назавжди. Вся концепція встановлення та відключення змінних середовища обертається навколо деякого набору файлів та кількох команд та різних оболонок.
Якщо говорити ширше, змінна середовища може бути трьох типів:
Один, визначений для поточного сеансу. Ці змінні середовища зберігаються лише до поточного сеансу, будь то віддалений вхід до сесії або локальний термінальний сеанс. Ці змінні не вказуються в жодних файлах конфігурації, вони створюються та видаляються за допомогою спеціального набору команд.
Це змінні, які визначені для певного користувача і завантажуються кожного разу, коли користувач входить у систему за допомогою локального термінального сеансу або цей користувач входить у систему за допомогою сеансу віддаленого входу. Ці змінні зазвичай встановлюються та завантажуються з таких файлів конфігурації: .bashrc
, .bash_profile
, .bash_login
, .профіль
файли, які є у домашньому каталозі користувача.
Це змінні середовища, які доступні для всієї системи, тобто для всіх користувачів, присутніх у цій системі. Ці змінні присутні в загальносистемних файлах конфігурації, присутніх у таких каталогах і файлах: /etc/environment
, /etc/profile
, /etc/profile.d/
, /etc/bash.bashrc
. Ці змінні завантажуються щоразу, коли система вмикається, і входять в систему або локально, або віддалено будь -яким користувачем.
Тут ми коротко описуємо різні файли конфігурації, перераховані вище, які містять змінні середовища, загальносистемні або специфічні для користувача.
Цей файл є файлом, специфічним для користувача, який завантажується щоразу, коли користувач створює новий локальний сеанс, тобто простими словами, відкриває новий термінал. Усі змінні середовища, створені в цьому файлі, набудуть чинності щоразу, коли починається новий локальний сеанс.
Цей файл є файлом віддаленого входу для користувача. Змінні середовища, перелічені у цьому файлі, викликаються щоразу, коли користувач віддалено входить у систему, тобто за допомогою сеансу ssh. Якщо цього файлу немає, система шукає його .bash_login
або .профіль
файли.
Цей файл є загальносистемним файлом для створення, редагування або видалення будь -яких змінних середовища. Змінні середовища, створені у цьому файлі, доступні у всій системі кожному користувачеві, як локально, так і віддалено.
По всій системі bashrc
файл. Цей файл завантажується один раз для кожного користувача, кожного разу, коли він відкриває локальний сеанс терміналу. Змінні середовища, створені у цьому файлі, доступні для всіх користувачів, але тільки через локальний сеанс терміналу. Коли до будь -якого користувача на цій машині відкривається віддалений доступ через сеанс віддаленого входу, ці змінні не будуть видимими.
Файл загальносистемного профілю. Усі змінні, створені у цьому файлі, доступні кожному користувачеві в системі, але тільки якщо сеанс цього користувача викликається віддалено, тобто за допомогою віддаленого входу. Будь -яка змінна у цьому файлі не буде доступна для локального сеансу входу, тобто коли користувач відкриває новий термінал у своїй локальній системі.
Примітка: Змінні середовища, створені за допомогою загальносистемний або для всього користувача файли конфігурації можна видалити, видаливши їх лише з цих файлів. Просто після кожної зміни в цих файлах або вийдіть із системи, і знову увійдіть, або просто введіть таку команду на терміналі, щоб зміни вступили в силу:
$ джерело
Змінні локального середовища можна створити за допомогою таких команд:
$ var = значення АБО. $ експорт var = значення.
Ці змінні є загальносесійними і дійсні лише для поточного термінального сеансу. Щоб очистити ці змінні середовища для всього сеансу, можна використовувати такі команди:
За замовчуванням, "env"
команда перераховує всі поточні змінні середовища. Але, якщо використовувати з '-i'
switch, він тимчасово видаляє всі змінні середовища і дозволяє користувачеві виконувати команду в поточному сеансі за відсутності всіх змінних середовища.
$ env –i [Var = Значення]... аргументи команди…
Тут, var = значення
відповідає будь -якій змінній локального середовища, яку потрібно використовувати лише з цією командою.
$ env - я баш.
Дасть оболонку bash, яка тимчасово не матиме змінної середовища. Але при виході з оболонки всі змінні будуть відновлені.
Інший спосіб очищення змінної локального середовища - це використання команди unset. Щоб тимчасово відключити будь -яку змінну локального середовища,
$ не встановлено
Де, var-name
-це ім'я локальної змінної, яку потрібно відмінити або очистити.
Іншим менш поширеним способом було б встановити ім'я змінної, яку потрібно очистити, на ''
(Порожній). Це дозволить очистити значення локальної змінної для поточного сеансу, для якого вона активна.
ПРИМІТКА - ВИ МОЖЕТЕ навіть грати та змінювати значення системних чи змінних навколишнього середовища користувача, але ЗМІНИ БУДУТЬ ВІДБІВАТИ ТІЛЬКИ В ТЕРМІНІ ТЕРМІНАЛЬНОЇ СЕСІЇ І НЕ БУДУТЬ ПОСТІЙНИМИ.
У цьому розділі ми дізнаємось, як встановити або відключити локальні, загальносистемні змінні середовища в Linux, з наведеними нижче прикладами:
а.) Тут ми створюємо локальну змінну VAR1
і встановіть будь -яке значення. Потім ми використовуємо unset для видалення цієї локальної змінної, а в кінці ця змінна видаляється.
$ VAR1 = 'TecMint - найкращий сайт для статей Linux' $ echo $ VAR1. $ не встановлено VAR1. $ echo $ VAR1.
б.) Інший спосіб створення локальної змінної - це використання експорт
команду. Створена локальна змінна буде доступна для поточного сеансу. Щоб скасувати зміну, просто встановіть значення змінної на ''
.
$ export VAR = 'TecMint - найкращий сайт для статей у Linux' $ echo $ VAR. $ VAR = $ echo $ VAR.
в.) Тут ми створили локальну змінну VAR2
і встановити значення. Потім, щоб виконати команду, тимчасово очистивши всі локальні та інші змінні середовища, ми виконали 'env –i'
команду. Ця команда тут виконує оболонку bash, очищаючи всі інші змінні середовища. Після входу 'вихід'
на викликаній оболонці bash усі змінні будуть відновлені.
$ VAR2 = 'TecMint - найкращий сайт для статей у Linux' $ echo $ VAR2. $ env -i баш. $ echo $ VAR2
а.) Змінити .bashrc
файл у вашому домашньому каталозі для експорту або встановлення змінної середовища, яку потрібно додати. Після того джерело файл, щоб зміни набули чинності. Тоді ви побачите змінну ("Компакт -диск"
у моєму випадку), набравши чинності. Ця змінна буде доступна щоразу, коли ви відкриваєте новий термінал для цього користувача, але не для сеансів віддаленого входу.
$ vi .bashrc.
Додайте наступний рядок до .bashrc
файл унизу.
export CD = 'Це TecMint Home'
Тепер виконайте таку команду, щоб прийняти нові зміни та перевірити їх.
$ source .bashrc $ echo $ CD.
Щоб видалити цю змінну, просто видаліть наступний рядок .bashrc файл та повторно завантажте його:
б.) Щоб додати змінну, яка буде доступна для сеансів віддаленого входу (тобто, коли ви надсилаєте ssh користувачеві з віддаленої системи), змініть .bash_profile
файл.
$ vi .bash_profile.
Додайте наступний рядок до .bash_profile
файл унизу.
export VAR2 = 'Це TecMint Home'
Під час пошуку цього файлу змінна буде доступна, коли ви надішлете цьому користувачеві ssh, але не відкриєте новий локальний термінал.
$ source .bash_profile $ echo $ VAR2.
Тут, VAR2
спочатку недоступний, але, виконуючи ssh користувачеві на localhost, змінна стає доступною.
$ ssh [захищена електронною поштою]
$ echo $ VAR2.
Щоб видалити цю змінну, просто видаліть рядок .bash_profile
файл, який ви додали, і повторно завантажте файл.
ПРИМІТКА: Ці змінні будуть доступні кожного разу, коли ви ввійдете до поточного користувача, але не для інших користувачів.
а.) Щоб додати загальносистемну змінну без входу (тобто таку, яка доступна для всіх користувачів, коли будь-який з них відкриває новий термінал, але не при віддаленому доступі до будь-якого користувача машини), додайте змінну до /etc/bash.bashrc
файл.
export VAR = 'Це загальносистемна змінна'
Після цього завантажте файл з джерела.
$ source /etc/bash.bashrc
Тепер ця змінна буде доступна для кожного користувача, коли він відкриє новий термінал.
$ echo $ VAR. $ sudo su. $ echo $ VAR. $ su - $ echo $ VAR.
Тут та сама змінна доступна для корінь користувача, а також звичайного користувача. Ви можете перевірити це, увійшовши до іншого користувача.
б.) Якщо ви хочете, щоб будь -яка змінна середовища була доступною, коли є хтось із користувачів вашої машини віддалено увійти, але не відкриваючи новий термінал на локальній машині, тоді вам потрібно відредагувати файл файл - '/etc/profile'
.
export VAR1 = 'Це загальносистемна змінна лише для віддалених сеансів'
Після додавання змінної просто повторно завантажте файл. Тоді змінна буде доступна.
$ source /etc /profile. $ echo $ VAR1.
Щоб видалити цю змінну, видаліть рядок з /etc/profile
файл та повторно завантажте його.
в.) Однак, якщо ви хочете додати будь -яке середовище, яке має бути доступним у всій системі, на обох пультах дистанційного керування сеансів входу, а також локальних сеансів (тобто відкриття нового вікна терміналу) для всіх користувачів, просто експортуйте змінну в /etc/environment файл.
export VAR12 = 'Я доступний всюди'
Після цього просто завантажте файл із джерела, і зміни набудуть чинності.
$ source /etc /environment. $ echo $ VAR12. $ sudo su. $ echo $ VAR12. $ вихід. $ ssh локальний хост. $ echo $ VAR12.
Тут, як ми бачимо, змінна середовища доступна для звичайного користувача, користувача root, а також для сеансу віддаленого входу (тут, для localhost).
Щоб очистити цю змінну, просто видаліть запис у /etc/environment файл та повторно завантажте його або увійдіть знову.
ПРИМІТКА: Зміни набувають чинності, коли ви створюєте файл. Але, якщо ні, то вам, можливо, доведеться вийти і увійти знову.
Таким чином, це кілька способів змінити змінні середовища. Якщо ви знайдете якісь нові та цікаві прийоми, згадуйте їх у коментарях.