Ответ
В Linux есть несколько способов добавления переменных окружения, которые я использую в зависимости от задачи:
1. Временная переменная (для текущей сессии shell):
export MY_VAR="some_value"
2. Постоянная для пользователя (добавляется в профиль):
echo 'export MY_VAR="some_value"' >> ~/.bashrc
source ~/.bashrc # или перезапустить терминал
3. Глобальная для всех пользователей:
# В Debian/Ubuntu (без export)
echo 'MY_VAR="some_value"' | sudo tee -a /etc/environment
# Или через профиль системы
sudo echo 'export MY_VAR="some_value"' >> /etc/profile.d/custom.sh
4. Для конкретного процесса:
MY_VAR="value" ./my_script.sh
Ключевые файлы, которые я проверяю:
~/.bashrc— для пользовательских переменных в bash~/.profileили~/.bash_profile— для логин-сессий/etc/environment— системные переменные (толькоVAR=value, безexport)/etc/profile.d/*.sh— кастомные системные скрипты
В DevOps-контексте я чаще всего настраиваю переменные через:
- Файлы окружения (
.env) для приложений - Конфигурацию systemd юнитов (
Environment=в[Service]) - CI/CD переменные (GitLab CI, GitHub Actions)
- Оркестраторы (Kubernetes ConfigMaps/Secrets, Docker Compose)