В чем разница между .bashrc и /etc/bash.bashrc?

14

.bashrc и / etc / bashrc

Какая разница между /etc/bash.bashrcа ~/.bashrc?

Ильяс Мэнсонс
источник
Я /etc/bashrcнигде не вижу .
Что бы ни было
2
Смотрите раздел справки bash. ФАЙЛЫ.
Сайрус
1
@mikewh независимо, вы можете найти /etc/bash.bashrc.
Ильяс Мэнсонс
@Cyrus Я проверил раздел справочника ФАЙЛЫ справочной страницы, и там не отображается «bash.bashrc», появляется только «~ / .bashrc». Не могли бы вы предоставить ссылку на справочную страницу, которую вы просматривали? Я смотрел на страницу Bash Man
WinEunuuchs2Unix
1
@Cyrus, я нашел ответ по ссылке, которой ты поделился!
Ильяс Мэнсонс

Ответы:

24

Когда bash инициализирует интерактивную оболочку bash без входа в систему, подобную Debian / Ubuntu, оболочка сначала читает, /etc/bash.bashrcа затем читает ~/.bashrc.

Причина, по которой /etc/bash.bashrcэто не встречается в обычной документации bash (например, здесь или здесь ), заключается в том, что это функция, добавленная Debian и принятая Ubuntu. Как объясняет это Debian ( readme.debian ):

  1. Что такое /etc/bash.bashrc? Кажется, это не задокументировано.

    Версия bash для Debian скомпилирована со специальной опцией ( -DSYS_BASHRC), которая делает чтение bash /etc/bash.bashrcранее ~/.bashrc для интерактивных оболочек без входа в систему. Так, в системах Debian, /etc/bash.bashrcявляется , ~/.bashrcкак /etc/profileэто ~/.bash_profile .

Таким образом, /etc/bash.bashrcзадокументировано в справочных страницах Debian и Ubuntu, но не в справочных страницах из других дистрибутивов, которые не поддерживают эту функцию.

John1024
источник
1
Стоит отметить, что использование распространяется. Git Bash, основанный на MSYS2, также имеет это соглашение. Кажется, он принят для установления адаптаций / конфигураций / стандартов на уровне системы.
BenPen
4

Общесистемный файл инициализации /etc/bash.bashrc и стандартный персональный файл инициализации, ~/.bashrc если оболочка является интерактивной.

Ильяс Мэнсонс
источник