如果我没记错的话,我记得在基因组终端中打开一个新标签将运行.bashrc,并且打开一个新的 gnome 终端窗口也会运行。
这两者是否读取相同的 bash init 文件?
例如 ~/.bashrc,而不是 ~/.bash_profile?
谢谢。
答案1
是的。打开新选项卡或新终端的作用完全相同:它会$SHELL
以交互、非登录模式启动您的新实例(默认情况下为 bash)。这意味着将读取以下文件:
/etc/bash.bashrc
~/.bashrc
如果你启动登录 shell,bash 将读取/etc/profile
,它找到的第一个是:/.bash_profile
、~/.bash_login
和~/.profile
。这一切都在 的调用部分中解释man bash
:
当 bash 作为交互式登录 shell 或使用 --login 选项作为非交互式 shell 调用时,它首先从文件 /etc/profile 中读取并执行命令(如果该文件存在)。读取该文件后,它会按顺序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,然后从第一个存在且可读的文件中读取并执行命令。启动 shell 时可以使用 --noprofile 选项来禁止此行为。
[...]
当启动非登录 shell 的交互式 shell 时,bash 会从 /etc/bash.bashrc 和 ~/.bashrc 读取并执行命令(如果这些文件存在)。
有关在不同条件下获取或执行的各种文件的更多详细信息,请参阅我的回答这里。