Краткая история Bash
bash представляет собой модернизированную и усовершенствованную версию оболочки командной строки Bourne shell. В системах семейства *NIX bash на данный момент является одной из наиболее популярных и распространённых оболочек, на многих таких ОС (и например в эмуляторе unix-подобного окружения Cygwin) эта оболочка предустановлена.
Корнями bash уходит к оболочке sh за авторством Стивена Борна, разработанной им в 1978 г. и усовершенствованной в 1987 году Брайаном Фоксом. Дословно Bash можно расшифровать как Biurne-again-shell или «Ещё одна оболочка Борна». Также фамилия Борн созвучна со словом born (родившийся), что порождает альтернативное название: «вновь рождённая оболочка».
Порядок запуска Bash
При запуске bash, во-первых, считывает и исполняет команды из основного файла профиля /etc/profile
(при условии существования такого файла). Затем происходит чтение файлов из домашней директории пользователя: $HOME/.bash_profile
, $HOME/.bash_login
, и $HOME/.profile
и исполнение записанных в них команд. В момент завершения работы при выходе из оболочки вызываются команды из файла $HOME/.bash_logout
.
Помимо перечисленных выше файлов, bash также распознаёт команды, описанные в так называемом дот-файле (или .rc-файле) $HOME/.bashrc
(примеры — файлы .vimrc и .wgetrc) Обычно здесь содержатся пользовательские настройки внешнего вида оболочки, переопределения пользовательских команд и т.п. Пользовательские функции для bash в целях удобства восприятия полезно выносить в отдельный файл (например $HOME/.bash_function
), который затем подключать из .bashrc командой source (source $HOME/.bash_function
).
Примеры файлов настроек для bash
bashrc — основной файл настроек
Мой файл bashrc (открыть на новой странице) содержит основные настройки оболочки — алиасы, сохранение истории команд, вид приглашения командной строки, настройки вывода некоторых команд и т.п. Все пользовательские функции вынесены в отдельный файл .bash_functions, подгружаемый из .bashrc. Локальные настройки для разных машин (переменные окружения, цвета приглашения командной строки) также подгружаются из отдельных внешних файлов .bash_local.
bash_functions — функции оболочки
bash_functions (открыть на новой странице) — содержит определения пользовательских функций и подгружается по вызову из .bashrc.
bash_usage — справка по использованию bash
А небольшая справка по использованию самописных функций и некоторых, не слишком часто нужных, программ, у меня вынесена в отдельный файл bash_usage, который также подгружается из .bashrc:
.bash_usage (открыть на новой странице) — содержит справку по пользовательским функцям и подгружается по вызову из .bashrc.
Остальные настройки оболочки, подключаемые в bashrc
Больше конфигов? Легко!
Примеры моих конфигурационных файлов для других программ можно найти на странице Конфиги / dotfiles