Bash, оболочка командной строки Unix-подобных систем,  использует переменные окружения для хранения информации, влияющей на поведение команд и программ.  Понимание и умелое использование этих переменных – ключ к эффективной работе в командной строке.  В этой статье мы подробно разберем наиболее важные переменные, такие как $PATH, $HOME, и другие, объясним их принципы работы и покажем, как их настраивать.
Переменные окружения – это пары “имя-значение”, хранящие информацию, доступную для всех запущенных процессов.  Они определяют параметры среды, в которой работают программы.  Например, переменная $PATH указывает, где система должна искать исполняемые файлы, а $HOME хранит путь к домашнему каталогу пользователя.  В отличие от переменных, объявленных внутри скрипта, переменные окружения доступны глобально.
Каждая переменная имеет имя (например, PATH, HOME, USER) и значение (строка текста).  Имя переменной всегда начинается с символа доллара ($).  Значение переменной может быть любым текстом, включая пути к файлам, имена пользователей, или другие параметры.
Переменные окружения наследуются дочерними процессами от родительских. Это означает, что когда вы запускаете программу из командной строки, она наследует все переменные окружения, установленные в текущей сессии. Вы можете изменять значения переменных окружения в текущей сессии, но эти изменения не будут сохранены после закрытия терминала, если не будут сохранены в конфигурационных файлах.
Переменные окружения играют критическую роль в настройке среды работы в Bash:
Управление путями поиска исполняемых файлов ($PATH):  Эта переменная содержит список каталогов, в которых система ищет исполняемые файлы при вводе команд.  Если вы хотите запускать программы, находящиеся не в стандартных каталогах, необходимо добавить эти каталоги в $PATH.
Указание домашнего каталога ($HOME):  Эта переменная содержит путь к домашнему каталогу текущего пользователя.  Она используется многими программами для хранения настроек и данных пользователя.
Указание текущего пользователя ($USER):  Эта переменная содержит имя текущего пользователя.
Настройка параметров среды:  Многие программы используют переменные окружения для настройки своего поведения.  Например, переменная EDITOR может указать редактор по умолчанию.
Передача параметров между процессами: Переменные окружения могут использоваться для передачи информации между родительским и дочерним процессами.
Управление переменными среды: Вы можете создавать, изменять и удалять переменные окружения в вашей сессии Bash.
Переменные окружения работают на основе принципа поиска.  Когда вы вводите команду, Bash сначала проверяет, является ли это именем встроенной команды.  Если нет, Bash ищет исполняемый файл в каталогах, указанных в переменной $PATH.  Если файл найден, он запускается.  В процессе выполнения программы она может считывать и использовать значения других переменных окружения.
Настройка переменных окружения может осуществляться несколькими способами:
Временная настройка:  Для временной настройки переменной используйте команду export.  Например, чтобы временно добавить каталог /usr/local/bin в $PATH, введите:
bash
export PATH="$PATH:/usr/local/bin"
Это изменение будет действовать только в текущей сессии Bash.
Постоянная настройка:  Для постоянной настройки переменных окружения необходимо добавить соответствующие строки в файл конфигурации Bash.  Обычно это файлы .bashrc (для текущего пользователя) или /etc/profile (для всех пользователей).  Например, чтобы добавить /usr/local/bin в $PATH постоянно, добавьте строку export PATH="$PATH:/usr/local/bin" в файл .bashrc.  После этого необходимо перезагрузить Bash или выполнить команду source ~/.bashrc, чтобы изменения вступили в силу.
Использование declare:  Команда declare позволяет объявлять переменные с различными атрибутами, например, только для чтения (readonly) или экспортируемые (export).
bash
declare -x MY_VARIABLE="some value"  # Экспортируемая переменная
declare -r READONLY_VARIABLE="constant value" # Переменная только для чтения
Как вывести значение переменной окружения?  Используйте команду echo $VARIABLE_NAME.
Как удалить переменную окружения?  Используйте команду unset VARIABLE_NAME.
Какие переменные окружения являются стандартными?  PATH, HOME, USER, SHELL, PWD, UID, GID – это лишь некоторые из них.
Как узнать все переменные окружения?  Используйте команду env или printenv.
Что произойдет, если в $PATH указан неверный путь?  Bash выдаст сообщение об ошибке, если не сможет найти исполняемый файл.
Можно ли использовать пробелы в значениях переменных окружения? Да, но необходимо заключать значение в кавычки.
Как передать переменную окружения дочернему процессу? Дочерний процесс наследует переменные окружения от родительского.
Как изменить значение переменной окружения в скрипте?  Используйте команду export VARIABLE_NAME="new value".
Где хранятся переменные окружения? В памяти операционной системы.
Что делать, если переменная окружения не работает?  Проверьте правильность написания имени переменной, наличие значения и правильность пути в $PATH.
🔍 Аналитический обзор: Введение К 2025 году Россия стала одной из трёх стран мира с…
Россия без глобального интернета: что происходит и почему это важно каждому Введение ⚡ Российский интернет…
😌 Введение: почему эта инструкция обязательна к прочтению Каждый гражданин хоть раз в жизни может…
Перечень бесплатных интернет-ресурсов: Которые будут работать даже при отключенном интернете. Социально значимые сайты по постановлению…
Что такое генераторы Bash-скриптов? Генераторы Bash-скриптов – это инструменты, которые позволяют создавать скрипты Bash (командные…
Что такое скрипты с правами sudo? Скрипты с правами sudo – это программы, написанные на…