Переменные окружения в Linux ー это динамически именованные значения, доступные программам и скриптам. Они влияют на поведение системы и приложений. Настройка переменных окружения необходима для управления PATH, указания местоположения библиотек (PYTHONPATH, JAVA_HOME) и других важных параметров.
Способы настройки
- Командная строка (export): Для временной установки переменной в текущей сессии используйте
export VAR_NAME=value. - Файлы конфигурации:
.bashrc(для конкретного пользователя, применяется при каждом запуске нового терминала bash).profile(для конкретного пользователя, применяется при входе в систему)/etc/environment(системный файл, влияет на все сессии)
Примеры
Добавление в PATH: export PATH=$PATH:/opt/myprogram/bin (временное), либо запись в .bashrc для постоянного эффекта.
Удаление переменной: unset VAR_NAME;
Просмотр переменных: env, printenv.
Переменные окружения в Linux ー это динамически именованные значения, доступные программам и скриптам. Они влияют на поведение системы и приложений. Настройка переменных окружения необходима для управления PATH, указания местоположения библиотек (PYTHONPATH, JAVA_HOME) и других важных параметров.
- Командная строка (
export): Для временной установки переменной в текущей сессии shell (например, bash) используйте командуexport VAR_NAME=value. Данный метод позволяет оперативно изменять переменные среды, но изменения не сохраняются после закрытия терминала или завершения сессии. Это удобно для тестирования или выполнения однократных задач. Синтаксис командыexportпрост:export, затем имя переменной, знак равенства и значение. - Файлы конфигурации: Для персистентной настройки переменных окружения Linux, необходимо отредактировать соответствующие системные файлы или файлы конфигурации пользователя.
~/.bashrc(для конкретного пользователя, применяется при каждом запуске нового терминала bash). Файл.bashrcявляется shell script, выполняемым при каждом запуске интерактивного не-логинного экземпляра bash. Здесь можно определить пользовательские переменные и алиасы.~/.profile(для конкретного пользователя, применяется при входе в систему). Файл.profileвыполняется при логине пользователя в систему. Содержит команды для настройки окружения пользователя. В отличие от.bashrc, выполняется только один раз при входе в систему./etc/environment(системный файл, влияет на все сессии). Файл/etc/environmentпредназначен для определения глобальных переменных, доступных всем пользователям системы. Изменения в этом файле требуют перезагрузки системы или повторного входа в систему для применения. Важно отметить, что в этом файле следует использовать только простой синтаксисVAR_NAME=value, без использования командыexport./etc/bash.bashrc(системный файл, влияет на все сессии bash). Этот файл выполняется для каждого пользователя при запуске bash, если не существует~/.bashrc. Рекомендуется избегать прямого редактирования этого файла, а использовать/etc/environmentили~/.bashrc.
Добавление в PATH: export PATH=$PATH:/opt/myprogram/bin (временное), либо запись в .bashrc для постоянного эффекта. При редактировании .bashrc, после внесения изменений необходимо выполнить source ~/.bashrc или открыть новый терминал для применения изменений. Пример записи в .bashrc: PATH=$PATH:/opt/myprogram/bin.
Удаление переменной: unset VAR_NAME. Команда unset удаляет переменную окружения как из текущей сессии, так и из файлов конфигурации (если там было произведено добавление). Для удаления из файла конфигурации, необходимо вручную удалить соответствующую строку.
Просмотр переменных окружения: env, printenv. Команда env выводит список всех переменных окружения. Команда printenv VAR_NAME выводит значение конкретной переменной. Для просмотра системных переменных и пользовательских переменных можно использовать обе команды.
Подробности и особенности
- Синтаксис: При настройке переменных окружения в файлах конфигурации, необходимо соблюдать правильный синтаксис. Обычно используется формат
VAR_NAME=value. Следует избегать пробелов вокруг знака равенства. Для экранирования специальных символов, таких как пробелы, можно использовать кавычки:VAR_NAME="value with spaces". - Локальные и глобальные переменные: Переменные, установленные с помощью
exportв командной строке, являются локальными переменными для текущей сессии. Глобальные переменные определяются в/etc/environmentи доступны всем пользователям и процессам в системе. - Автоматизация: Для автоматизации процесса настройки переменных окружения, можно использовать shell script. Например, можно создать скрипт, который будет устанавливать необходимые переменные при запуске системы.
- PATH: Переменная
PATHсодержит список каталогов, в которых система ищет исполняемые файлы. При добавлении новых программ, необходимо добавить каталог с исполняемыми файлами вPATH. - HOME, USER, DISPLAY:
HOMEー это каталог пользователя.USERー имя пользователя.DISPLAY‒ информация о дисплее (для графических приложений). - PYTHONPATH, JAVA_HOME:
PYTHONPATHуказывает путь к Python библиотекам.JAVA_HOMEー путь к установленной Java Development Kit (JDK). Правильная настройка этих переменных важна для корректной работы Python и Java приложений. - Изменение и удаление: Для изменения значения переменной, необходимо присвоить ей новое значение. Для удаления используется команда
unset. - Перезагрузка: После внесения изменений в
/etc/environment, требуется перезагрузка системы или повторный вход в систему для применения изменений. - Переменные окружения bash, ubuntu, debian, centos, fedora, arch linux: Методы настройки переменных окружения в Ubuntu, Debian, CentOS, Fedora, Arch Linux практически идентичны, поскольку все они используют Linux. Однако, расположение и содержание системных файлов могут немного отличаться.
- Документация и tutorial: Для получения более подробной информации о настройке переменных окружения, рекомендуется обратиться к официальной документации вашей операционной системы и к различным tutorial в интернете.

Дополнительные ресурсы
Полезную информацию можно найти на сайтах LinuxPhone.ru и Redmotor.ru (примеры, не обязательно связанные с переменными окружениями, но полезные для Linux в целом).
Данное руководство предоставляет базовую информацию о том, как установить и как настроить переменные окружения в Linux. Для более глубокого понимания рекомендуется изучить документацию по переменным окружения shell и переменным окружения bash.
