Гид по технологиям

Переменные окружения в Linux — как просматривать и задавать

• 4 min read • Linux • Обновлено 27 Nov 2025
Переменные окружения в Linux — просмотр и настройка
Переменные окружения в Linux — просмотр и настройка

Кратко

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

Среда: просмотр и настройка переменных окружения в Linux

Что такое переменные окружения

Переменная окружения — это пара имя=значение, которую операционная система передаёт процессам при их запуске. Они помогают программам узнавать, где домашняя папка пользователя, какие каталоги искать в PATH, какой язык использовать и т. д. Коротко: переменные влияют на поведение программ без правки их конфигов.

Важно: дочерние процессы наследуют переменные родителя. Изменение в одной сессии по умолчанию не меняет системные файлы и не влияет на другие сессии.

Быстрый справочник терминов

  • Переменная окружения — name=value, доступна процессу и его детям.
  • export — команда оболочки, которая маркирует переменную как окружение для дочерних процессов.
  • shell variable — переменная только для текущей оболочки, пока она не экспортирована.

Как просмотреть переменные

Есть два основных сценария: вывести все переменные или посмотреть значение одной.

Показать все текущие переменные окружения:

printenv

Альтернативы: env показывает схожий список; в bash declare -x отобразит экспортированные переменные.

Узнать значение конкретной переменной:

printenv HOME

Можно передать несколько имён:

printenv HOME PWD

Частая ошибка — не ставить пробел между командой и переменной. Правильно использовать знак $ с именем переменной и пробел при передаче в команду:

ls $HOME

Просмотр списка переменных через терминал

Как временно задать переменную

Чтобы задать переменную только для текущей сессии, достаточно присвоить значение:

EXAMPLE_VAR=hello

Чтобы значение было видно дочерним процессам, экспортируйте переменную:

export EXAMPLE_VAR=hello

Проверка:

echo $EXAMPLE_VAR

Если вы закроете терминал или выйдете из сессии, эти изменения исчезнут. Это удобно для тестирования.

Настройка переменной в терминале

Как сохранить переменные постоянно

Чтобы переменные сохранялись между сессиями, добавьте их в системные или пользовательские конфигурационные файлы.

Типичные файлы и когда их использовать:

  • /etc/environment — простая пара name=value, действует для всех пользователей (системная переменная окружения).
  • /etc/profile — скрипт, который выполняется при логине для всех оболочек логина.
  • ~/.bashrc — выполняется при запуске интерактивной неприходной bash-оболочки (обычно для терминалов).
  • ~/.profile или ~/.bash_profile — выполняются при логин-сессии, в зависимости от дистрибутива и оболочки.

Пример добавления в ~/.bashrc:

echo 'export EXAMPLE_VAR=hello' >> ~/.bashrc

После правки можно выполнить:

source ~/.bashrc

чтобы изменение вступило в силу без выхода из сеанса.

Важно: при изменении системных файлов используйте привилегии root и проверяйте синтаксис, чтобы не нарушить процесс логина.

Примеры и готовые сниппеты

Часто нужные паттерны:

  • Добавить каталог в PATH для текущего пользователя:
export PATH="$HOME/bin:$PATH"
  • Установить переменную только для одной команды:
VAR=value command --option
  • Добавить переменную в /etc/environment (с правами root):
echo 'MY_VAR=production' | sudo tee -a /etc/environment

Когда переменные не применяются или ведут себя иначе

  • Изменили ~/.bashrc, но новые ssh-сессии не видят переменную — проверьте, используется ли при логине ~/.profile или ~/.bash_profile.
  • Переменная есть в оболочке, но не видна программе — убедитесь, что вы сделали export.
  • PATH перестал работать после правки — возможно, вы перезаписали PATH вместо добавления в него. Всегда используйте конструкцию PATH=”$HOME/bin:$PATH”.

Отладка и тесты приёма

Критерии приёмки

  • Переменная задана и видна в текущей оболочке: echo $VAR выводит значение.
  • Переменная экспортирована и доступна дочерним процессам: sh -c 'echo $VAR' или запуск программы видит значение.
  • После добавления в конфиг и перезагрузки новой сессии значение сохраняется.

Тесты

  • Временное: EX=1; echo $EX — должно вывести 1.
  • Экспорт: export EX=2; bash -c 'echo $EX' — должно вывести 2.
  • Персистентность: добавить строку в ~/.bashrc, открыть новый терминал и проверить echo $VAR.

Роли и чеклисты

Для пользователя

  • Проверить значение: printenv NAME.
  • Временно задать: NAME=value или export NAME=value.
  • Сохранить для себя: добавить в ~/.bashrc или ~/.profile.

Для администратора

  • Для системных значений используйте /etc/environment или /etc/profile.
  • Минимизируйте изменения PATH глобально, чтобы не нарушить сервисы.
  • Документируйте изменения и используйте контроль версий для конфигов.

Безопасность и приватность

  • Не храните секреты (пароли, ключи API) в простых переменных окружения, если система доступна многим пользователям.
  • Для сервисов используйте менеджеры секретов или ограничьте доступ к файлам с переменными.
  • Осторожно с sudo: sudo echo $VAR не передаёт переменные окружения по умолчанию; используйте sudo -E или настройку env_keep в sudoers при необходимости.

Совместимость оболочек

  • Bash, Dash, Zsh и другие имеют схожую семантику переменных, но файлы и моменты загрузки отличаются. Проверьте, какой файл инициализации использует ваша оболочка.
  • POSIX-совместимые конструкции (name=value, export) работают в большинстве оболочек.

Быстрый чек-лист для типичных задач

  • Посмотреть всё: printenv.
  • Посмотреть одну: printenv NAME.
  • Временно задать: NAME=value.
  • Сделать доступным дочерним процессам: export NAME=value.
  • Сохранить навсегда для пользователя: добавить export NAME=value в ~/.bashrc.
  • Сохранить для всех: добавить NAME=value в /etc/environment или export NAME=value в /etc/profile.

Краткое резюме

Переменные окружения — простой и мощный механизм настройки поведения программ и оболочки. Используйте временные переменные для тестов и конфигурационные файлы для постоянных изменений. Всегда проверяйте, экспортирована ли переменная, и где именно вы внесли изменения.

Полезное напоминание

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

1‑строчный глоссарий

  • export — пометить переменную как окружение для дочерних процессов.
  • PATH — список каталогов для поиска исполняемых файлов.

Mermaid диаграмма выбора файла для сохранения переменных

flowchart TD
  A[Нужно ли менять для всех пользователей?] -->|Да| B[/etc/environment или /etc/profile]
  A -->|Нет| C[~/.bashrc или ~/.profile]
  B --> D[Тест и перезагрузка]
  C --> D
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро