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

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

我应该何时使用这两个 .bashrc 文件来设置我的别名、提示等?

答案1

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

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

答案2

根据GNU Bash 文档

当 Bash 作为交互式登录 shell 或使用 --login 选项作为非交互式 shell 调用时,它首先从文件/etc/配置文件,如果该文件存在。读取该文件后,它会查找的〜/ .bash_profile、~/.bash_login 和 ~/.profile,并读取和执行来自第一存在且可读。启动 shell 时可以使用 --noprofile 选项来禁止此行为。

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

因此,通常你的 ~/.bash_profile 包含以下行

如果 [ -f ~/.bashrc ]; 则 . ~/.bashrc; fi

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

答案3

对于您的个人偏好和个人脚本或 bash 函数,您应该使用 .bashrc(别名、向 bash 添加的函数...)

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

我说大多数用户是因为即使你指定了一个"Hello world!"为所有用户打印的脚本greetings.sh,但用户Pepe想要使用打印的脚本greetings.sh "Hola el mundo!"。他可以在他的.bashrc中修改他的路径以指向他的脚本而不是你的脚本。换句话说,用户可以随时在.bashrc中自定义他的会话以达到他想要的效果。

相关内容