LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: gik

各种rc/profile什么的,加载顺序都是什么样的啊?

[复制链接]
发表于 2010-12-22 22:07:20 | 显示全部楼层
这个问题在本论坛好像已经不是第一次讨论了。

login shell会读取~/.bash_profile,而non-login shell会读取~/.bashrc。

有部分发行版在~/.bash_profile里直接source ~/.bashrc,也有个别发行版ln -s ~/.bashrc ~/.bash_profile。

Redhat会在~/.bashrc里source /etc/bashrc,而/etc/bashrc这个文件在Debian里改名了,是/etc/bash.bashrc。


不同的发行版可能会有细微的差别,但大致顺序是这样的:
  1. /etc/profile  -->  ~/.bash_profile 或 ~/.bash_login 或 ~/.profile  -->  ~/.bashrc
复制代码

当~/.bash_profile不存在时,会去尝试~/.bash_login,而~/.bash_login也不存在时,会去尝试~/.profile。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-23 01:17:27 | 显示全部楼层
Post by 狱卒;2123827
这个问题在本论坛好像已经不是第一次讨论了。

login shell会读取~/.bash_profile,而non-login shell会读取~/.bashrc。

有部分发行版在~/.bash_profile里直接source ~/.bashrc,也有个别发行版ln -s ~/.bashrc ~/.bash_profile。

Redhat会在~/.bashrc里source /etc/bashrc,而/etc/bashrc这个文件在Debian里改名了,是/etc/bash.bashrc。


不同的发行版可能会有细微的差别,但大致顺序是这样的:

  1. /etc/profile  -->  ~/.bash_profile 或 ~/.bash_login 或 ~/.profile  -->  ~/.bashrc
复制代码


当~/.bash_profile不存在时,会去尝试~/.bash_login,而~/.bash_login也不存在时,会去尝试~/.profile。


那/etc/bash.bashrc呢?
回复 支持 反对

使用道具 举报

发表于 2010-12-23 15:28:10 | 显示全部楼层
Post by gik;2123836
那/etc/bash.bashrc呢?


/etc/bash.bashrc会被Debian的non-login shell首先读取,接着再去执行~/.bashrc的设置,在这一点上与Redhat的顺序是相反的。至于Arch,不好意思了,公司最后一台运行Arch的服务器被同事干掉了,手边没有Arch可用,无法验证。你可以自己读读/etc/profile、~/.profile、~/.bashrc等文件的内容,应该能找出其中的端倪。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-25 13:40:11 | 显示全部楼层
PS什么的设置我的都是在bash.bashrc里面,貌似上次更新以后就没有再加载这个文件了。。

我看profile的开头会加载 /etc/profile.$shell 然后把bash.bashrc link到profile.bash就可以了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表