В чем разница между /etc/bash.bashrc и ~ / .bashrc? Какой я должен использовать?

19169
cfischer

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

19

3 ответа на вопрос

32
Loïc Wolff

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

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

В ответе Декса подразумевается ... Используйте ваш локальный ~ / .bashrc во всех случаях, кроме случаев, когда вы хотите применить свою волю ко всем, кто использует эту машину. dacracot 15 лет назад 3
Строго говоря, вы ничего не применяете в /etc/bash.bashrc, потому что пользователи всегда могут изменить это в своих собственных ~ / .bashrc Kim 15 лет назад 0
... за исключением случаев, когда кто-то решает сделать все переменные `readonly` в` / etc / bash.bashrc`: \ grawity 15 лет назад 0
В Ubuntu этот файл, как отмечалось в начале, должен быть "получен" из файла / etc / profile. Я добавил команду псевдонима в конце /etc/bash.bashrc и добавил команду «source /etc/bash.bashrc» в конец файла / etc / profile. Работает как шарм. jfmessier 14 лет назад 1
2
Felipe Alvarez

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

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

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

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

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

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

На самом деле, нет. Посмотрите на этот файл http://git.savannah.gnu.org/cgit/bash.git/tree/shell.c в функции run_startup_files (), где используется SYS_BASHRC, определенной в http: //git.savannah.gnu. орг / cgit / bash.git / дерево / конфиг-top.h mloskot 12 лет назад 1
1
Debugger

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

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

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

Похожие вопросы