Переменные среды – это набор динамически заданных значений, хранящихся внутри машины, которые используются программами, работающими в терминалах или подоболочках на платформах Ubuntu и Linux. Переменная среды, в основном, представляет собой атрибут с заголовком и значением. Переменные среды включают изменение способа функционирования системы, а также поведения программ устройства. Переменная среды может содержать такие данные, как обычный текстовый процессор или поисковая машина, путь к исполняемым документам, языковой стандарт компьютера и настройки раскладки клавиатуры, среди прочего.
Вы должны понимать, что переменные среды инициализируются так же, как инициализируются другие переменные в языке программирования, то есть переменные bash. Хотя заголовок переменной среды всегда чувствителен к регистру, т. е. должен быть в верхнем регистре. Переменной среды можно присвоить более двух значений с помощью двоеточия «:».
Вот простой общий синтаксис инициализации переменной среды. Встроенная команда set широко известна для установки значений переменных среды. Если вы используете его без каких-либо аргументов или какого-либо установленного флага, он заставит вашу оболочку отображать все переменные среды, как вы можете видеть на изображении ниже. Типичными примерами встроенного «set» являются «set –x» для раскрытия и отображения, «set –e» для выхода из программы при обнаружении любого ненулевого состояния, «set –u» и «set –o» для отображать ошибку при обнаружении переменной без установленного значения, «set –n», чтобы избежать выполнения команд и многого другого.
$ set
Давайте начнем использовать разные команды в оболочке для печати переменных среды. Перед этим запустите консольное приложение с помощью «Ctrl + Alt + T» на рабочем столе Ubuntu 20.04. Самый первый способ отобразить все переменные среды – использовать команду «env» в оболочке. Но он будет отображать только текущие активные переменные среды системы.
Вы также можете передать в него некоторые аргументы, чтобы изменить вывод. Мы использовали простую команду «env», чтобы отобразить все текущие переменные среды в нашей оболочке в соответствии с показанным выводом.
$ env
Давайте посмотрим на другой пример вывода всех переменных среды в оболочке. На этот раз мы использовали для этого команду «printenv» в оболочке. Команда «printenv» отображает текущие активные переменные среды и ранее указанные переменные среды в оболочке.
Вы можете увидеть результат использования команды «printenv» для отображения всех переменных среды в оболочке, как показано на снимке ниже. У нас есть множество переменных среды вместе с присвоенными им значениями, например, переменные оболочки, переменные отображения, переменные аутентификации и многое другое, как показано на рисунке.
$ printenv
Вы также можете использовать ту же команду с ключевыми словами «больше» и «меньше». Дополнительные команды будут полезны, если вы захотите увидеть больше при необходимости. В то время как команда less автоматически покажет меньшее количество переменных среды на экране вашей оболочки, чтобы избежать неудобств. Команды для большего и меньшего отображения сформулированы следующим образом:
$ printenv | more
Более четкое представление вывода команды «more» для переменных среды печати показано на изображении ниже. Нажмите клавишу «Ввод», чтобы изучить другие переменные.
Команда printenv очень удобна, когда дело доходит до передачи данных переменных в другие файлы. Это означает, что мы также можем перенести все переменные среды и их значения в какой-нибудь файл bash с помощью команды «printenv». Вы должны использовать знак «больше» после ключевого слова «printenv» вместе с именем файла, в котором будут храниться данные переменных.
После этого вы увидите, что в файле будут все переменные среды. Вывод такой же для отображения содержимого файла с помощью команды cat и команды «printenv» в оболочке.
$ printenv > new.sh $ cat new.sh
С другой стороны, вы также можете использовать аргументы в команде printenv, чтобы сделать это конкретным. Скажем, если вы хотите проверить значения переменной окружения «HOME» в оболочке, вы должны указать ее в команде «printenv» с ключевым словом «grep». Если в системе существует переменная с именем «HOME», она отобразится в оболочке. Как видите, он отображает переменную «HOME» и ее значение, то есть путь в оболочке.
$ printenv | grep HOME
Давайте проверим некоторые другие переменные среды. Скажем, проверьте папку «tmp» с помощью ключевого слова «grep». Папка «tmp» принадлежит переменной «SESSION_MANAGER» в нашей системе.
$ printenv | grep tmp
Теперь давайте посмотрим на папку «bin», которая широко используется в системе. После запуска команды мы получаем взамен 4 переменные среды, что показывает, что она является частью всех этих переменных среды системы Ubuntu 20.04.
$ printenv | grep bin
Проверка переменной, которой даже нет в вашей системе, приводит к пустому результату. Поскольку в системе нет переменной окружения для папки или файла «new».
$ printenv | grep new
Вы также можете использовать другую команду для отображения всех переменных, обнаруженных в вашей системе, то есть не только переменных среды. Для этой цели можно использовать команду declare вместе с флагом «-p» в запросе.
$ declare -p
Если вы хотите отобразить только переменные среды в своей оболочке, вы также можете сделать это, объявив команду. Вы должны объявить флаг «-xp» вместо флага «-p», как показано на рисунке. Вы можете посмотреть на вывод, который отображает только переменные среды.
$ declare -xp
Эта статья было разработано для всех пользователей системы Linux на bash, несмотря на их способности к обучению. Это потому, что все примеры, реализованные в этой статье, очень просты и хорошо объяснены, чтобы сделать ее понятной для всех типов пользователей.