[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-linux-kak-rabotayut-peremennye-okruzheniya-v-linux":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},1005,"kak-rabotayut-peremennye-okruzheniya-v-linux",18,"linux","Linux","🐧","Как работают переменные окружения в Linux?","Переменные окружения (environment variables) — именованные значения, доступные процессам. Используются для передачи конфигурации приложениям без изменения кода.\n\n### Основные переменные\n\n| Переменная | Описание |\n|---|---|\n| `PATH` | Список каталогов для поиска исполняемых файлов (через `:`) |\n| `HOME` | Домашний каталог текущего пользователя |\n| `USER` | Имя текущего пользователя |\n| `SHELL` | Путь к текущей оболочке |\n| `LANG` | Текущая локаль |\n| `JAVA_HOME` | Путь к JDK |\n\n### Просмотр и установка\n\n```bash\n# Просмотр\necho $JAVA_HOME\nprintenv JAVA_HOME\nenv              # Все переменные окружения\n\n# Установка для текущей сессии\nexport JAVA_HOME=\u002Fusr\u002Flib\u002Fjvm\u002Fjava-21-openjdk-amd64\nexport PATH=$JAVA_HOME\u002Fbin:$PATH\n\n# Только для одной команды\nSPRING_PROFILES_ACTIVE=dev java -jar app.jar\n```\n\n### Файлы конфигурации (порядок загрузки)\n\n| Файл | Область действия | Когда загружается |\n|---|---|---|\n| `\u002Fetc\u002Fenvironment` | Все пользователи | При входе в систему. Формат: `KEY=VALUE` (не bash-скрипт) |\n| `\u002Fetc\u002Fprofile` | Все пользователи | При login-shell |\n| `\u002Fetc\u002Fprofile.d\u002F*.sh` | Все пользователи | Подгружаются из `\u002Fetc\u002Fprofile` |\n| `~\u002F.profile` | Текущий пользователь | При login-shell |\n| `~\u002F.bashrc` | Текущий пользователь | При каждом запуске интерактивного bash |\n| `~\u002F.bash_profile` | Текущий пользователь | При login-shell (если есть, `~\u002F.profile` не загружается) |\n\n### Примеры\n\n```bash\n# Для всех пользователей (\u002Fetc\u002Fenvironment — не bash-скрипт!)\nJAVA_HOME=\"\u002Fusr\u002Flib\u002Fjvm\u002Fjava-21-openjdk-amd64\"\n\n# Для текущего пользователя (~\u002F.bashrc)\nexport JAVA_HOME=\u002Fusr\u002Flib\u002Fjvm\u002Fjava-21-openjdk-amd64\nexport PATH=$JAVA_HOME\u002Fbin:$PATH\n\n# Применить изменения без перелогина\nsource ~\u002F.bashrc\n```\n\n### Для Java-разработчика\n\nПеременные окружения — стандартный способ конфигурации в 12-factor приложениях и Spring Boot (`SPRING_DATASOURCE_URL`, `SERVER_PORT`). При запуске через systemd переменные задаются через `Environment=` или `EnvironmentFile=`.\n\n> **На собеседовании:** интервьюер хочет убедиться, что вы понимаете механизм конфигурации приложений через окружение. Частая ошибка — путать `~\u002F.bashrc` и `~\u002F.profile` или не знать, что `\u002Fetc\u002Fenvironment` — это не bash-скрипт (нельзя использовать `export` или подстановку переменных).","","junior",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":19,"featuredSnippetReady":22},"Как работают переменные окружения в Linux? — Gymterview","Переменные окружения (environment variables) — именованные значения, доступные процессам. Используются для передачи конфигурации приложениям без изменения кода.","Переменные окружения (environment variables) — именованные значения, доступные процессам. Используются для передачи конф",[7,13],true]