Ответы:
/etc/bash.bashrc
относится ко всем пользователям
~/.bashrc
применяется только к пользователю, в котором он находится.
readonly
в /etc/bash.bashrc
: \
Согласно документации GNU Bash :
Когда Bash вызывается как интерактивная оболочка входа в систему или как неинтерактивная оболочка с параметром --login, она сначала читает и выполняет команды из файла / etc / profile , если этот файл существует. После прочтения этого файла он ищет ~ / .bash_profile , ~ / .bash_login и ~ / .profile в указанном порядке, а также читает и выполняет команды из первой, которая существует и доступна для чтения. Опция --noprofile может использоваться, когда оболочка запущена, чтобы запретить это поведение.
Вызывается как интерактивная оболочка без входа в систему. Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, Bash читает и выполняет команды из ~ / .bashrc , если этот файл существует. Это может быть запрещено с помощью параметра --norc. Опция --rcfile file заставит Bash читать и выполнять команды из файла вместо ~ / .bashrc.
Итак, обычно ваш ~ / .bash_profile содержит строку
if [-f ~ / .bashrc]; тогда . ~ / .Bashrc; фи
после (или до) любых специфичных для входа инициализаций.
Для ваших личных предпочтений и личных сценариев или функций bash вы должны использовать .bashrc (псевдонимы, добавлены функции для bash ...)
В тот момент, когда вы хотите поделиться чем-то со всеми пользователями (или большинством пользователей) или для вещей общего пользования (путь для общих исполняемых файлов, путь для документации ...), поместите это в /etc/bash.bashrc
Я сказал большинству пользователей, потому что даже допустим, вы указываете скрипт greetings.sh, который печатает "Hello world!"
для всех пользователей, но пользователь Pepe хочет использовать вместо него скрипт greetings.sh, который печатает "Hola el mundo!"
. Он может изменить свой путь в своем .bashrc, чтобы он указывал на свой сценарий вместо вашего. Другими словами, пользователь всегда может настроить свою сессию в .bashrc так, как он хочет.