Файлы запуска 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 дистрибутивах.