Скрипты (файлы) запускаемые вместе с Bash используются программой оболочки /bin/bash для создания окружения оболочки. Каждый скрипт имеет специфическое применение и по-разному влияет на рабочее окружение после входа. Каждый последующий выполняемый скрипт может перезаписать значения, присвоенные предыдущими скриптами.
Скриптами, запускаемыми при каждом открытии Bash, являются:
- ~/.bashrc
- /etc/bashrc
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
- /etc/profile
- /etc/profile.d/*
1) ~/.bashrc
- Скрипт запуска, специфичный для каждого пользователя.
- Используется для установки локальных переменных и определения псевдонимов (Aliases) и функций.
- Вызывается процессом входа во время создания как Login shells (оболочек с входом), так и Non-Login shells (оболочек без входа).
- Вызывает скрипт /etc/bashrc.
2) /etc/bashrc
- Глобальный скрипт запуска.
- Используется для установки локальных переменных и определения псевдонимов (Aliases) и функций.
- Вызывается скриптом ~/.bashrc, во время создания как Login shells (оболочек входа), так и Non-Login shells (оболочек без входа).
- Вызывает скрипты в директории /etc/profile.d/ в случае запуска оболочки без входа (Non-Login shells).
3) ~/.bash_profile
- Специфичный для пользователя скрипт запуска.
- Используется для установки переменных рабочего окружения и запуска команд.
- Вызывается процессом входа во время создания оболочки входа (Login shells).
- Вызывает скрипт ~/.bashrc.
4) ~/.bash_login
- Специфичный для пользователя скрипт запуска.
- Используется для установки переменных рабочего окружения и запуска команд.
- Во время создании оболочки входа (Login shell) вызывается процессом входа если ~/.bash_profile не представлен.
- Поддерживается для совместимости с оболочкой C shell и скриптом запуска оболочки Tenex C, ~/.login.
5) ~/.profile
- Специфичный для пользователя скрипт запуска.
- Используется для установки переменных рабочего окружения и запуска команд.
- Во время создании оболочки входа (Login shell) вызывается процессом входа если ~/.bash_profile и в последствии ~/.bash_login не представлены.
- Поддерживается для совместимости со скриптами запуска Bourne shell и Korn shell, ~/.profile.
6) /etc/profile
- Глобальный скрипт запуска.
- Используется для установки переменных рабочего окружения и запуска команд.
- Во время создании оболочки входа (Login shell) вызывается процессом входа.
- Вызывает скрипты в директории /etc/profile.d/.
7) /etc/profile.d/*
- Директория, содержащая глобальные скрипты запуска.
- Используется для установки переменных рабочего окружения и запуска команд.
- Вызывается скриптом /etc/profile, во время создания оболочки входа (Login shells).
- Вызывается скриптом /etc/bashrc, во время создания оболочки без входа (Non-Login shell).
Смотрите также: Различия между Login shell и Non login shell (оболочкой с входом и оболочкой без входа).
Источник: Bash startup scripts.
Связанные статьи:
- Различия между Login shell и Non login shell (оболочка с входом и оболочка без входа) (95.5%)
- Как закрыть терминал без убийства запущенной в нём команды (60.1%)
- Как пользоваться screen для управления терминалами Linux и отсоединения процессов от терминала (60.1%)
- Как пользоваться tmux для создания нескольких терминалов внутри одной консоли (60.1%)
- Terminator: эмулятор терминала для управления несколькими окнами терминала на Linux (60.1%)
- Что такое башизм (bashisms) (RANDOM - 4.6%)