Список змінних середовища в Linux/Unix

⚡ Розумний підсумок

Змінні середовища в Linux та Unix — це динамічні іменовані значення, які формують поведінку програм та оболонки, зберігаючи такі налаштування, як ваш шлях (PATH), домашній каталог, редактор за замовчуванням, мова та оболонка, що використовується на даний момент.

  • ???? які вони: Змінні середовища містять динамічні значення, що впливають на процеси, і їх можна створювати, редагувати та видаляти.
  • 🧭 ШЛЯХ: Змінна PATH містить список каталогів, які оболонка шукає для пошуку та запуску виконуваних команд.
  • 🔎 Значення зчитування: Команда echo показує одну змінну, тоді як env та printenv перераховують усі змінні середовища.
  • 🆕 Створення: Призначте значення за допомогою NAME=value, а потім використовуйте export, щоб зробити його доступним для дочірніх процесів.
  • 🗑️ Видалення: Команда unset видаляє змінну та її значення з поточного сеансу оболонки.
  • 💾 Постійність: Додайте рядки експорту до ~/.bashrc або /etc/environment, щоб зберігати змінні в різних сесіях.
  • 🤖 Допомога ШІ: Асистенти штучного інтелекту та GitHub Copilot можуть перевіряти змінні та створювати сценарії оболонки, які їх використовують.

Список поширених змінних середовища в Linux та Unix

Змінні середовища – це одна з перших речей, яку варто зрозуміти в будь-якому Linux або систему Unix, оскільки вони непомітно контролюють поведінку ваших програм та оболонки. У цьому посібнику пояснюється, що вони собою являють, які з них найпоширеніші, а також як їх читати, створювати та видаляти.

Що таке обчислювальне середовище?

Обчислювальне середовище – це платформа (платформа = операційна система + процесор), де користувач може запускати програми.

Що таке змінна?

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

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

Що таке змінні середовища?

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

Змінні середовища можуть змінювати поведінку програмного забезпечення та програм. Наприклад, змінна середовища $LANG зберігає мову, яку розуміє користувач. Це значення зчитується програмою, щоб китайському користувачеві відображався інтерфейс мандаринською мовою, а американському користувачеві — англійський інтерфейс.

Давайте розглянемо деякі поширені змінні середовища:

Змінна Опис
PATH Ця змінна містить список каталогів, розділених двокрапками (:), у яких ваша система шукає виконувані файли. Коли ви вводите команду в терміналі, оболонка шукає команду в каталогах, перелічених у змінній $PATH. Якщо команда знайдена, вона виконується. В іншому випадку повертається помилка «команда не знайдена».
USER Ім'я користувача
ГОЛОВНА Шлях за замовчуванням до домашнього каталогу користувача
РЕДАКТОР Шлях до програми, яка редагує вміст файлів
UID Унікальний ідентифікатор користувача
ТЕРМІН Стандартний емулятор терміналу
SHELL Оболонка, яку використовує користувач

Доступ до значень змінних

Щоб визначити значення змінної, скористайтеся командою echo:

echo $VARIABLE

Наприклад, на скріншоті нижче показано значення змінної PATH, яке відображається за допомогою команди echo.

Відображення значення змінної PATH за допомогою команди echo

Будь-яку змінну середовища можна прочитати так само. Наведений нижче вивід показує, як echo повертає значення змінної.

Вивід команди echo, що показує значення змінної середовища

Змінні чутливі до регістру, тому переконайтеся, що ви вводите назву змінної з правильним регістром літер; інакше ви можете не отримати бажаного результату. Щоб перерахувати всі змінні середовища одночасно, скористайтеся командою env, як показано нижче.

Команда env, яка відображає всі змінні середовища в терміналі

Встановіть нові змінні середовища

Ви можете створити власну користувацьку змінну за допомогою цього синтаксису:

VARIABLE_NAME=variable_value

Знову ж таки, пам’ятайте, що імена змінних чутливі до регістру та зазвичай пишуться у верхньому регістрі. Змінна, створена таким чином, є локальною змінною оболонки, яку може бачити лише поточна оболонка. Щоб підвищити її до змінної середовища, яку також успадковують дочірні процеси, скористайтеся командою export:

export VARIABLE_NAME=value

На скріншоті нижче показано створення нової змінної, яка потім відображається за допомогою echo.

Створення та відображення нової користувацької змінної середовища

Видалення змінних

Наступний синтаксис видаляє змінну з системи:

unset variablename

Це видаляє змінну та її значення з поточного сеансу оболонки, як показано нижче.

Видалення змінної середовища за допомогою команди unset

Поширені запитання

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

Змінні, встановлені в терміналі, зникають після закриття сеансу. Щоб зберегти їх, додайте рядок експорту до файлу запуску: ~/.bashrc або ~/.profile для окремого користувача, або /etc/environment для кожного користувача в системі. Перезавантажте файл або знову відкрийте термінал, щоб застосувати його.

Додайте новий каталог до існуючого PATH, щоб не перезаписати його: export PATH=$PATH:/ваш/новий/каталог. Це додасть вашу папку до списку команд, які шукає оболонка. Вставте той самий рядок у ~/.bashrc, щоб зміни збереглися після нових сеансів.

Команда printenv відображає лише змінні середовища та може відображати лише одну з них, наприклад, printenv HOME. Команда env також відображає змінні середовища та може запускати програму зі зміненим середовищем. Команда set відображає все, включаючи змінні оболонки та функції, а не лише експортовані.

Зазвичай це означає, що ви перезаписали PATH замість того, щоб додавати до нього зміни, тому оболонка більше не може знаходити стандартні команди. Завжди додавайте $PATH під час його встановлення. Щоб відновити дані в поточному сеансі, виконайте export PATH=/usr/local/bin:/usr/bin:/bin, а потім виправте файл запуску.

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

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

Так. Копілот GitHub може генерувати оператори експорту, редагування ~/.bashrc та скрипти оболонки, які зчитують такі змінні, як $HOME або $PATH. Він пропонує синтаксис під час введення, хоча вам слід переглянути будь-який код, який обробляє облікові дані, перш ніж запускати його.

Підсумуйте цей пост за допомогою: