Объяснение переменных окружения

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

Введение

Представьте, что вы переезжаете в новый офис. У стола есть определённая высота, а на табличке указано ваше имя. В Linux «переменные окружения» работают примерно так же. Они хранят информацию о вашем сеансе.

Любая запущенная вами программа может обратиться к этим переменным, чтобы определить своё поведение.

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

В этой лабораторной работе вы научитесь:

  • выводить значение переменной;
  • определять, какую программу-оболочку вы используете;
  • просматривать все активные настройки.

Вывод значения пользователя ($USER)

Переменная похожа на подписанную коробку. У коробки есть имя (USER) и значение (labex).

Чтобы увидеть значение, используйте echo со знаком доллара $. Знак $ — это ключ, который открывает коробку.

Точнее, оболочка видит $USER и перед выполнением команды заменяет это выражение сохранённым значением. Благодаря такой подстановке переменные особенно полезны при работе в командной строке.

Введите:

echo $USER

Результат:

labex

Текст можно объединять с переменными:

echo "Hello, $USER"

Результат:

Hello, labex

Благодаря этому команды становятся гибкими. Выражение Hello, $USER будет работать для любого пользователя.

Вывод используемой оболочки ($SHELL)

Оболочка — это программа, в которую вы вводите команды. Она интерпретирует ваши команды.

Разные оболочки используют немного разные «диалекты» — например, Bash и Zsh.

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

Проверьте, какую оболочку вы используете:

echo $SHELL

Результат:

/usr/bin/zsh

Вы используете Zsh. В других системах может отображаться /bin/bash.

Просмотр всех переменных (env)

Чтобы увидеть общую картину, используйте env.

Эта команда выводит все переменные окружения, заданные в вашем сеансе.

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

env

Вы увидите большой блок текста:

HOSTNAME=labex-instance
PWD=/home/labex/project
HOME=/home/labex
LANG=en_US.UTF-8
...

Обратите внимание на полезные переменные:

  • PWD: текущий каталог;
  • HOME: ваш домашний каталог;
  • LANG: настройка языка.

Итоги

В этой лабораторной работе вы сделали первые шаги к пониманию окружения Linux. Вы узнали:

  • Переменные — это контейнеры: они хранят такие сведения, как имя пользователя или предпочтения.
  • Знак $: с помощью знака доллара, например $USER, можно обратиться к переменной и прочитать её значение.
  • Оболочка: интерфейс, который вы используете (/bin/zsh или /bin/bash), указан в переменной $SHELL.
  • Окружение: полный список системных настроек можно просмотреть с помощью команды env.

Эти понятия лежат в основе настройки Linux. В следующих лабораторных работах вы научитесь создавать собственные переменные и изменять поведение системы!