Как проверить, установлена ли переменная окружения в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь основным техникам работы с переменными окружения в Linux. Вы узнаете, как отобразить значение конкретной переменной с помощью команды echo, проверить, установлена ли переменная, и отобразить ее значение с помощью команды printenv, а также вывести список всех текущих переменных окружения с помощью команды set. Эти навыки являются важными для понимания и взаимодействия с оболочкой Linux и системным окружением.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") linux/UserandGroupManagementGroup -.-> linux/set("Shell Setting") subgraph Lab Skills linux/echo -.-> lab-558782{{"Как проверить, установлена ли переменная окружения в Linux"}} linux/env -.-> lab-558782{{"Как проверить, установлена ли переменная окружения в Linux"}} linux/set -.-> lab-558782{{"Как проверить, установлена ли переменная окружения в Linux"}} end

Отображение переменной с помощью echo

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

Одной из распространенных переменных, с которой вы столкнетесь, является $HOME, которая хранит путь к вашему домашнему каталогу. Попробуем отобразить ее значение.

Введите следующую команду в терминале и нажмите Enter:

echo $HOME

Вы должны увидеть путь к вашему домашнему каталогу, выведенный в терминал. В этой среде это обычно /home/labex.

/home/labex

Символ $ перед именем переменной имеет важное значение. Он сообщает оболочке, что вы хотите увидеть значение переменной, а не литеральную строку "$HOME".

Теперь попробуем отобразить переменную, которая не существует.

Введите следующую команду и нажмите Enter:

echo $MY_VARIABLE

Вы не увидите никакого вывода. Это происходит потому, что переменная MY_VARIABLE не была установлена, поэтому ее значение пусто.

Вы также можете отобразить несколько переменных одновременно:

echo $HOME $USER

Эта команда выведет значение переменной $HOME, за которым будет следовать значение переменной $USER (ваше имя пользователя, labex).

/home/labex labex

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

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка переменной с помощью printenv

На предыдущем этапе вы использовали команду echo для отображения значения переменной. Еще одна полезная команда для работы с переменными окружения - это printenv.

printenv специально разработана для вывода значений переменных окружения. Переменные окружения - это особый тип переменных, которые доступны процессам, запущенным в системе.

Давайте используем printenv для отображения значения переменной $USER.

Введите следующую команду в терминале и нажмите Enter:

printenv USER

Вы должны увидеть ваше имя пользователя, labex, выведенное в терминал.

labex

Обратите внимание, что при использовании printenv перед именем переменной не нужно использовать символ $. printenv ожидает в качестве аргумента само имя переменной.

Что произойдет, если вы попытаетесь вывести переменную, которая не существует, с помощью printenv?

Введите следующую команду и нажмите Enter:

printenv MY_VARIABLE

Как и в случае с echo, вы не увидите никакого вывода, так как переменная MY_VARIABLE не установлена как переменная окружения.

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

Нажмите Продолжить, чтобы перейти к следующему этапу.

Вывод всех переменных с помощью команды set

На предыдущих этапах вы узнали, как отображать отдельные переменные с помощью команд echo и printenv. Но что, если вы хотите увидеть все переменные, установленные в текущей оболочке?

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

Введите следующую команду в терминал и нажмите Enter:

set

Вы увидите длинный список переменных и их значений. Этот вывод включает переменные окружения (например, HOME, USER, PATH), а также переменные, специфичные для текущей сессии оболочки.

...
HOME=/home/labex
HOSTNAME=...
HOSTTYPE=x86_64
...
LANG=C.UTF-8
...
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
...
SHELL=/usr/bin/zsh
...
USER=labex
...

Вывод может быть довольно обширным. Вы можете прокрутить его, чтобы увидеть различные переменные, установленные по умолчанию в вашей среде.

Сравнивая вывод команд set и printenv (если вы запустите printenv без аргументов), вы заметите, что set выводит больше переменных. Это потому, что set показывает все переменные оболочки, в то время как printenv показывает только переменные окружения.

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

Теперь вы узнали три способа взаимодействия с переменными в Linux: echo (для отображения отдельных переменных), printenv (для отображения переменных окружения) и set (для вывода всех переменных оболочки).

Нажмите Продолжить, чтобы завершить этот практический урок.

Резюме

В этом практическом уроке вы изучили основные методы взаимодействия с переменными окружения в Linux. Сначала вы рассмотрели использование команды echo с префиксом $ для отображения значения конкретной переменной и поняли, что неустановленная переменная не даст никакого вывода. Также вы практиковались в одновременном отображении нескольких переменных с помощью echo. Затем вас познакомили с командой printenv, специальным инструментом для проверки и отображения значений переменных окружения.