.bashrc 和 /etc/bash.bashrc 有什么区别?

.bashrc 和 /etc/bash.bashrc 有什么区别?

.bashrc 和 /etc/bashrc

/etc/bash.bashrc和有什么区别~/.bashrc

答案1

当 bash 在类 Debian/Ubuntu 系统上初始化非登录交互式 bash shell 时,shell 首先读取/etc/bash.bashrc,然后读取~/.bashrc

在正常的 bash 文档中没有出现的原因/etc/bash.bashrc(例如这里或者这里) 是 Debian 添加并被 Ubuntu 采用的功能。正如 Debian 解释的那样 (自述文件):

  1. /etc/bash.bashrc 是什么?它似乎没有记录。

Debian 版 bash 编译时带有特殊选项 ( -DSYS_BASHRC),该选项使 bash 在交互式非登录 shell /etc/bash.bashrc之前进行读取。因此,在 Debian 系统上,是, 是。~/.bashrc/etc/bash.bashrc~/.bashrc/etc/profile~/.bash_profile

因此,/etc/bash.bashrcDebian 和 Ubuntu 手册页中记录了该功能,但其他不支持该功能的发行版的手册页中却没有记录该功能。

更新:更多发行版

/etc/bash.bashrc已经在 Debian 圈子之外被采用,因为评论表明它在 Arch Linux、MSYS2 和 Git Bash 等发行版中使用。

答案2

如果 shell 是交互的,则为系统范围的初始化文件/etc/bash.bashrc 和标准个人初始化文件。~/.bashrc

相关内容