19

Когда я должен использовать каждый из двух файлов .bashrc для установки своих псевдонимов, подсказок и т.д.?

3 ответа3

33

/etc/bash.bashrc применяется ко всем пользователям

~/.bashrc применяется только к пользователю, в домашней папке которого он находится.

2

Согласно документации GNU Bash:

Когда Bash вызывается как интерактивная оболочка входа в систему или как неинтерактивная оболочка с параметром --login, она сначала читает и выполняет команды из файла /etc/profile, если этот файл существует. После прочтения этого файла он ищет ~/.bash_profile, ~/.bash_login и ~/.profile в указанном порядке, а также читает и выполняет команды из первой, которая существует и доступна для чтения. Опция --noprofile может использоваться, когда оболочка запущена, чтобы запретить это поведение.

Вызывается как интерактивная оболочка без входа в систему Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, Bash читает и выполняет команды из ~/.bashrc, если этот файл существует. Это может быть запрещено с помощью параметра --norc. Опция --rcfile file заставит Bash читать и выполнять команды из файла вместо ~/.bashrc.

Так что, как правило, ваш ~/.bash_profile содержит строку

если [-f ~/.bashrc]; затем . ~/.Bashrc; фи

после (или до) любых инициализаций, специфичных для входа в систему.

1

Для ваших личных предпочтений и личных сценариев или функций bash вы должны использовать .bashrc (псевдонимы, добавлены функции для bash ... )

В тот момент, когда вы хотите поделиться чем-то со всеми пользователями (или большинством пользователей) или для вещей общего пользования (путь для общих исполняемых файлов, путь для документации ...), поместите это в /etc/bash.bashrc

Я сказал большинству пользователей, потому что даже допустим, вы указываете скрипт greetings.sh, который печатает "Hello world!" для всех пользователей, но пользователь Pepe хочет использовать вместо этого скрипт greetings.sh, который печатает "Hola el mundo!" Он может изменить свой путь в своем .bashrc так, чтобы он указывал на свой сценарий, а не на ваш. Другими словами, пользователь всегда может настроить свою сессию в .bashrc так, как он хочет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .