TGViewer
DevOps Ready | IT DevOps Ready | IT @devops_ready · 7.64K subscribers
Post #893 1.25K
Переменные окружения в Linux: управление поведением процессов!

Переменные окружения (environment variables) задают контекст выполнения программ. Через них настраиваются shell, компиляторы, интерпретаторы, библиотеки и большинство CLI-утилит. Это базовый механизм конфигурации в Unix-подобных системах.

Посмотреть все переменные окружения текущего процесса (shell):
printenv


или:
env


Обе команды выводят окружение текущего процесса (экспортированные переменные). env также часто используют для запуска команды с заданными переменными.

Посмотреть значение конкретной переменной:
echo "$PATH"


Кавычки важны при подстановке переменных: они предотвращают нежелательное разбиение на слова и обработку спецсимволов (особенно если значение содержит пробелы или символы glob).

Временная переменная для одного запуска программы:
DEBUG=true ./app


Переменная будет доступна только процессу ./app и его дочерним процессам. В текущем shell она не сохранится.

Экспорт переменной в текущей сессии shell:
export NODE_ENV=production


После export переменная становится частью окружения текущего shell и наследуется всеми дочерними процессами, но не влияет на другие терминалы и будущие входы в систему.

Удаление переменной:
unset NODE_ENV


Удаляет переменную из текущего shell и его окружения.

Постоянные переменные пользователя - задаются в конфигурационных файлах shell и применяются при старте сессии. Для Bash обычно используют: ~/.bashrc — интерактивные shell; ~/.profile или ~/.bash_profile — login-shell

Конкретный файл зависит от способа запуска shell в системе.

Пример:
export EDITOR=vim
export PATH="$HOME/bin:$PATH"


После изменения применить настройки можно:
source ~/.bashrc


или просто открыть новый терминал.

Глобальные переменные для всех пользователей - можно задать в файле:
/etc/environment


Этот файл обычно обрабатывается при входе в систему через PAM. Он поддерживает только простые присваивания без shell-синтаксиса, экспорта и подстановок.

Пример:
JAVA_HOME=/usr/lib/jvm/java-17


Посмотреть окружение конкретного запущенного процесса:
cat /proc/<PID>/environ | tr '\0' '\n'


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

Порядок PATH критичен - поиск исполняемых файлов идёт слева направо:
echo "$PATH"


Будет запущена первая найденная программа с совпадающим именем.

🔥 Переменные окружения передаются процессам через механизм fork/exec, существуют только в памяти процесса и наследуются его потомками. Они не изменяют систему глобально сами по себе и являются стандартным способом управления поведением программ в Linux.

🚪 Linux Ready | #практика
  • 👍 11
  • ❤ 7
  • 🔥 5
  • 🤝 3
More from @devops_ready
  1. Oct 5, 2026Изоляция процессов в Linux через Unshare без Docker и тяжелых утилит. Мы научимся использо…
  2. Oct 5, 2026Как оплачивать зарубежные сервисы в 2026 году? Можно бегать между посредниками и бояться б…
  3. Oct 5, 2026DigitalOcean Community собирает подробные руководства по Linux! В разделе Linux Basics ест…
  4. Oct 2, 2026Знали, почему настройки systemd-сервиса лучше менять через systemctl edit? Допустим, прило…
  5. Oct 2, 2026⚡️5 фундаментальных курсов по ИБ по цене одного Это предложение для тех, кто готов войти в…
  6. Oct 2, 2026Этот инструмент поможет поять из чего на самом деле состоит Docker-образ! Он содержит терм…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →