Переменные окружения в 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