Переменные окружения в Linux: Полный гид по настройке и использованию
Переменные окружения: Невидимый центр управления вашей системой
Вы вводите команду ls — и она мгновенно срабатывает. Запускаете интерпретатор Python — и он готов к работе. Но задумывались ли вы, откуда система знает, в каких именно папках искать эти программы? Почему одни настройки сохраняются «навсегда», а другие исчезают сразу после закрытия терминала?
Ответ кроется в переменных окружения (Environment Variables). Это невидимый диспетчер, который управляет поведением оболочки, системных утилит и пользовательских приложений.
Что такое переменные окружения?
По сути, это именованные пары «ключ-значение» (строки), которые хранят настройки текущей сессии. Они определяют, какой язык интерфейса использовать, где хранить временные файлы, какие пути просматривать для поиска исполняемых файлов и многое другое. Любой процесс, запущенный в текущей оболочке, наследует эти переменные.
Как просмотреть список переменных
Чтобы увидеть все доступные переменные окружения, используйте следующие команды:
# Вывести все переменные окружения
env
# или
printenv
Если вам нужно значение конкретной переменной, используйте echo с префиксом $:
echo $PATH
echo $HOME
echo $SHELL
Знак $ — это специальный указатель для оболочки: «возьми значение, хранящееся в этой переменной».
Работа с собственными переменными
1. Временные переменные
Вы можете создать переменную, которая будет существовать только в рамках текущей сессии терминала:
# Локальная переменная (только для текущей оболочки)
MY_VAR="hello"
echo $MY_VAR # Выведет: hello
2. Экспорт переменных
Если вы хотите, чтобы переменная была доступна дочерним процессам (например, вашим скриптам на bash), ее нужно экспортировать:
export MY_VAR="hello"
Как сделать переменные постоянными
Чтобы настройки не сбрасывались после перезагрузки или закрытия окна терминала, их необходимо прописать в конфигурационные файлы профиля пользователя, такие как ~/.bashrc (для Bash) или ~/.zshrc (для Zsh):
echo 'export EDITOR=nano' >> ~/.bashrc
source ~/.bashrc
После выполнения команды source изменения вступят в силу немедленно, и переменная EDITOR будет автоматически устанавливаться при каждом запуске терминала.
Удаление переменных
Если переменная больше не нужна, используйте команду unset:
unset MY_VAR
Ключевая переменная: PATH
Одной из самых важных переменных является PATH. В ней через двоеточие перечислены пути к директориям, где система ищет программы.
Если вы хотите запускать свои скрипты из папки ~/bin/ просто по их имени, добавьте этот путь в PATH:
export PATH="$HOME/bin:$PATH"
Совет по безопасности: Рекомендуется добавлять свои пути в начало списка ($HOME/bin:$PATH), чтобы ваши версии команд имели приоритет. Однако никогда не добавляйте в PATH текущую директорию (точку .) — это серьезная дыра в безопасности, которой могут воспользоваться злоумышленники.
Применение в Docker и DevOps
В современной разработке и администрировании переменные окружения являются стандартом для передачи конфигураций в контейнеры.
Запуск через CLI:
docker run -e MY_VAR=value -e ANOTHER_VAR=another my_image
Пример использования в docker-compose.yml:
environment:
- MY_VAR=value
- ANOTHER_VAR=another
Это позволяет разделять код и настройки, делая инфраструктуру более гибкой и безопасной.