Переменные окружения в Linux

Категория: Linux

Переменные окружения (environment variable) используются для хранения общих значений переменных в пределах разных сценариев и программ. Такие переменные можно устанавливать на время, например на период работы конкретной оболочки терминала, или на период сессии пользователя, либо же установить переменную окружения на глобальном уровне - для всей системы.

Переменные окружения

$HOME
Переменная содержит путь к домашнему каталогу текущего пользователя.
$USER
Имя текущего пользователя
$PATH
Список каталогов для поиска оболочкой исполняемых программ.
$PWD
Путь к текущему рабочему каталогу (либо pwd). Пример: dir_path=$(pwd).
$SHELL
Интерпретатор по умолчанию
$RANDOM
Генерирует рандомное число 0..32767 при каждом доступе к переменной.
$SECONDS
Время в сек. с момента запуска командной оболочки.
$?
Результат выполнения предыдущей команды.
$HOSTNAME
Имя компьютера
$HISTFILE
Путь к файлу истории интерпретатора
$IFS
Список символов-разделителей команд, параметров, элементов массива (по умолчанию: пробел, таб, новая строка)
$PS1
Шаблон строки приглашения интерпретатора.

Временная установка переменной окружения

Установка переменной окружения на период сессии:

# Для нового процесса
env имя_переменной=значение [команда]
# Для текущей оболочки и всех ее подпроцессов
export имя_переменной=значение [команда]

Значение переменной сохраняется до перезагрузки системы.

Установка постоянного значения

Переменные окружения на уровне системы устанавливаются через файл /etc/environment:

ENVIRONMENT="dev"

Установка переменной окружения для конкретного пользователя через файл ~/.bashrc или ~/.bash_profile:

PATH="{$PATH}:/home/user/bin:"
Внимание!

Файл ~/.bash_profile будет выполнен при запуске интерпретатора с ключом -l. При локальном входе этот файл не читается!

Также нужно помнить, что изменения вступят в силу только после перезагрузки сеанса!

Просмотр значения переменной окружения

Для просмотра значения переменной окружения есть команда printenv:

printenv <имя_переменной>

#shell, #bash, #environment

категория: Linux