Файлы запуска Bash#
Ссылки:
В зависимости от того как вызывается оболочка она читает (выполняет
source
) различные файлы.
Обычный запуск Bash#
Интерактивная или неинтерактивная (с использованием --login
) оболочка со
входом в систему:
При входе: /etc/profile, ~/.bash_profile, ~/.bash_login, ~/.profile
При выходе: ~/.bash_logout
Интерактивная оболочка без входа в систему:
При запуске оболочки: ~/.bashrc
При запуске оболочки в Debian: /etc/bash.bashrc, ~/.bashrc
Неинтерактивная оболочка (пример: запуск скриптов):
При запуске оболочка читает данные из переменной окружения BASH_ENV. Переменная должна содержать путь до файла, который при этом будет загружен.
Запуск как /bin/sh (POSIX-совместимая оболочка)#
Интерактивная или неинтерактивная (с --login
) оболочка со входом в
систему:
При входе: /etc/profile, ~/.profile
Неинтерактивная оболока ничего не читает при запуске.
Примечание
При входе в режим совместимости Bash сначала читает свои файлы запуска в обозначенном выше порядке и только затем читает файлы запуска в соотвествии с POSIX. Т.о. в оболочка вызванная как /bin/sh будет вести себя почти идентично обычной оболочке.
Описание файлов запуска#
- /etc/profile
Файл с глобальными настройками окружения. Здесь часто переопределяют PATH и другие глобальные переменные среды. Этот файл читают все POSIX-совместимые оболочки.
- ~/.profile
Файл с пользовательскими настройками окружения. Чаще всего используется только для установки переменных среды, реже для пользовательских функций и алиасов. Не специфичен для Bash, поэтому в нём не следует использовать башизмы.
- ~/.bash_profile
Специфичный для Bash файл, аналог POSIX ~/.profile. Часто в него записывают следующий код:
[ -f ~/.bashrc ] && source ~/.bashrc
- ~/.bash_login
Запускается при входе в систему. На практике не пригождался. По идее в него можно записать функции, которые должны выполняться в момент входа пользователя.
- ~/.bash_logout
Аналогично ~/.bash_login, но читается при закрытии сессии.
- /etc/bash.bashrc
Присутствует в Debian и производных дистрибутивах. В репозиториях Debian Bash собирают с опцией, которая добавляет этот файл. Это ничто иное как глобальный .bashrc. В нём можно смело пользоваться башизмами в отличие от /etc/profile.
- ~/.bashrc
Не думаю что стоит дополнительно пояснять. Файл для пользовательских функций и настроек среды.
- ~/.bash_aliases
Вроде как по умолчанию запускается для интерактивных оболочек в Debian-based дистрибутивах.