/etc/bash.bashrc和〜/ .bashrc有什么区别?我应该使用哪一个?


20

什么时候应该使用两个.bashrc文件中的每一个来设置别名,提示等?

Answers:


34

/etc/bash.bashrc 适用于所有用户

~/.bashrc 仅适用于主文件夹所在的用户。


3
dex的答案是……在所有情况下都使用本地〜/ .bashrc,除非您想对使用该计算机的每个人都执行自己的意愿。
dacracot

严格来说,您不需要在/etc/bash.bashrc中执行任何操作,因为用户可以随时在自己的〜/ .bashrc中进行更改
Kim

...除非有人决定readonly/etc/bash.bashrc:\
grawity

1
在Ubuntu下,如开头所述,该文件必须从/ etc / profile文件中“获取”。我在/etc/bash.bashrc的末尾添加了一个别名命令,并在/ etc / profile文件的末尾附加了命令“ source /etc/bash.bashrc”。奇迹般有效。
jfmessier 2010年

2

根据GNU Bash文档

当Bash作为交互式登录Shell或使用--login选项作为非交互式Shell调用时,它首先从文件/ etc / profile(如果存在)读取并执行命令。读取该文件后,它将按该顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从存在的且可读的第一个命令中读取并执行命令。启动外壳程序时,可以使用--noprofile选项来禁止此行为。

作为交互式非登录shell调用当启动非登录shell的交互式shell时,Bash从〜/ .bashrc读取并执行命令(如果该文件存在)。使用--norc选项可以禁止这种情况。--rcfile file选项将强制Bash从文件而不是〜/ .bashrc中读取并执行命令。

因此,通常,您的〜/ .bash_profile包含以下行

如果[-f〜/ .bashrc]; 然后 。〜/ .bashrc; 科幻

在任何特定于登录的初始化之后(或之前)。


1
并不是的。看这个文件git.savannah.gnu.org/cgit/bash.git/tree/shell.c,在run_startup_files()函数在使用SYS_BASHRC,在定义git.savannah.gnu.org/cgit/bash.git/ tree / config-top.h
mloskot 2012年

1

对于您的个人喜好和个人脚本或bash函数,应使用.bashrc(别名,为bash添加了功能...)

您想与所有用户(或大多数用户)共享某些内容或用于一般用途(共享可执行文件的路径,文档的路径...)的那一刻,将其放在/etc/bash.bashrc中

我说了大多数用户,因为甚至可以说您指定了一个"Hello world!"为所有用户打印的脚本greetings.sh ,但是用户Pepe希望改为使用打印的脚本greetings.sh "Hola el mundo!"。他可以在.bashrc中修改其路径,以指向其脚本而不是您的脚本。换句话说,用户可以随时根据自己的需要自定义.bashrc中的会话。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.