Список переменных среды в Linux/Unix

⚡ Умное резюме

В Linux и Unix переменные среды — это динамические именованные значения, которые определяют поведение программ и оболочки, храня такие параметры, как переменная PATH, домашний каталог, редактор по умолчанию, язык и используемая в данный момент оболочка.

  • ???? Что они: Переменные среды содержат динамические значения, влияющие на процессы, и могут быть созданы, отредактированы и удалены.
  • 🧭 ПУТЬ: Переменная PATH отображает каталоги, в которых оболочка ищет и запускает исполняемые команды.
  • 🔎 Значения показаний: Команда echo отображает одну переменную, а команды env и printenv выводят список всех переменных окружения.
  • 🆕 Создание: Присвойте значение с именем NAME=value, а затем используйте команду export, чтобы сделать его доступным для дочерних процессов.
  • 🇧🇷 Удаление: Команда `unset` удаляет переменную и её значение из текущей сессии оболочки.
  • 💾 Упорство: Добавьте строки экспорта в файл ~/.bashrc или /etc/environment, чтобы сохранять переменные между сессиями.
  • 🤖 Помощь ИИ: Искусственный интеллект и GitHub Copilot могут проверять переменные и генерировать скрипты командной оболочки, которые их используют.

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

Экологические факторы — это один из первых аспектов, которые стоит понимать в любом случае. Linux или системы Unix, потому что они незаметно контролируют поведение ваших программ и оболочки. В этом руководстве объясняется, что это такое, какие из них наиболее распространены, а также как их читать, создавать и удалять.

Что такое вычислительная среда?

Вычислительная среда — это платформа (платформа = операционная система + процессор), где пользователь может запускать программы.

Что такое переменная?

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

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

Что такое переменные среды?

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

Переменные среды могут изменять поведение программного обеспечения и программ. Например, переменная среды $LANG хранит язык, который понимает пользователь. Это значение считывается приложением, так что пользователю из Китая отображается интерфейс на китайском языке, а пользователю из США — на английском.

Рассмотрим некоторые распространенные переменные окружающей среды:

Технология Описание
PATH Эта переменная содержит список каталогов, разделённых двоеточием (:), в которых ваша система ищет исполняемые файлы. Когда вы вводите команду в терминале, оболочка ищет эту команду в каталогах, перечисленных в переменной $PATH. Если команда найдена, она выполняется. В противном случае она возвращает ошибку «команда не найдена».
USER Имя пользователя
Главная Путь по умолчанию к домашнему каталогу пользователя
РЕДАКТОР Путь к программе, которая редактирует содержимое файлов.
UID Уникальный идентификатор пользователя
СРОК Эмулятор терминала по умолчанию
SHELL Оболочка, используемая пользователем

Доступ к значениям переменных

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

echo $VARIABLE

Например, на скриншоте ниже показано значение переменной PATH, отображаемое при выполнении команды echo.

Отображение значения переменной PATH с помощью команды echo

Любую переменную окружения можно прочитать таким же образом. Приведённый ниже вывод показывает, как команда `echo` возвращает значение переменной.

Вывод команды echo, отображающий значение переменной среды.

Переменные чувствительны к регистру, поэтому убедитесь, что вы вводите имя переменной с правильным регистром букв; в противном случае вы можете не получить желаемый результат. Чтобы вывести список всех переменных окружения одновременно, используйте команду env, как показано ниже.

Команда `env` выводит список всех переменных окружения в терминале.

Установите новые переменные среды

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

VARIABLE_NAME=variable_value

Ещё раз напоминаем, что имена переменных чувствительны к регистру и обычно пишутся заглавными буквами. Переменная, созданная таким образом, является локальной переменной оболочки, которую видит только текущая оболочка. Чтобы преобразовать её в переменную окружения, которую также наследуют дочерние процессы, используйте команду export:

export VARIABLE_NAME=value

На скриншоте ниже показано создание новой переменной и её последующее отображение с помощью команды echo.

Создание и отображение новой пользовательской переменной среды.

Удаление переменных

Следующий синтаксис удаляет переменную из системы:

unset variablename

Это удаляет переменную и её значение из текущей сессии оболочки, как показано ниже.

Удаление переменной среды с помощью команды unset

Часто задаваемые вопросы (FAQ)

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

Переменные, установленные в терминале, исчезают при закрытии сессии. Чтобы сохранить их, добавьте строку export в файл автозагрузки: ~/.bashrc или ~/.profile для одного пользователя или /etc/environment для каждого пользователя в системе. Перезагрузите файл или снова откройте терминал, чтобы применить изменения.

Добавьте новый каталог к ​​существующему PATH, чтобы избежать его перезаписи: export PATH=$PATH:/your/new/directory. Это добавит вашу папку в список, в котором оболочка будет искать команды. Добавьте ту же строку в ~/.bashrc, чтобы изменения сохранялись в новых сессиях.

Команда printenv выводит только переменные окружения и может отображать только одну из них, например, printenv HOME. Команда env также выводит переменные окружения и может запускать программу с измененным окружением. Команда set отображает все, включая переменные и функции оболочки, а не только экспортированные.

Обычно это означает, что вы перезаписали переменную PATH вместо того, чтобы добавить к ней новые, поэтому оболочка больше не может найти стандартные команды. Всегда указывайте переменную $PATH при её настройке. Чтобы восстановить работу в текущей сессии, выполните команду `export PATH=/usr/local/bin:/usr/bin:/bin`, а затем исправьте файл автозагрузки.

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

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

Да. Второй пилот GitHub Может генерировать операторы экспорта, редактировать файлы ~/.bashrc и создавать скрипты оболочки, считывающие такие переменные, как $HOME или $PATH. Он предлагает синтаксис по мере ввода, однако перед запуском следует проверить любой код, обрабатывающий учетные данные.

Подведем итог этой публикации следующим образом: