Linux配置文件启动顺序

关于linux配置文件的学习

总结如下


 

① /etc/profile,/etc/bashrc 是系统全局环境变量设定  

/etc/profile与/etc/bashrc的区别? 

前一个主要用来设置一些系统变量,比如JAVA_HOME等等,后面一个主要用来保存一些bash的设置.  
~/.profile,~/.bashrc用户家目录下的私有环境变量设定 


 

② 当登入系统时候获得一个shell进程时,其读取环境设定档有三步 


1 首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/profile.d和/etc/inputrc 
2 然后根据不同使用者帐号,去其根目录读取~/.bash_profile,如果这读取不了就读取~/.bash_login,这个也读取不了才会读取 ~/.profile,这三个文档设定基本上是一样的,读取有优先关系 
3 然后再根据用户帐号读取~/.bashrc 


~/.profile与~/.bashrc的区别:二者都具有个性化定制功能 
~/.profile可以设定本用户专有的路径,环境变量等,它只能登入的时候执行一次 
~/.bashrc也是某用户专有设定文档,可以设定路径,命令别名,每次shell script的执行都会使用它一次 




下面是几个例子: 
1. 图形模式登录时,顺序读取:/etc/profile和~/.profile 

 

2. 图形模式登录后,打开终端时,顺序读取:/etc/bash.bashrc和~/.bashrc 


3. 文本模式登录时,顺序读取:/etc/bash.bashrc,/etc/profile和~/.bash_profile 


4. 从其它用户su到该用户,则分两种情况: 
    (1)如果带-l参数(或-参数,--login参数),如:su -l username,则bash是lonin的,它将顺序读取以下配置文件:/etc/bash.bashrc,/etc/profile和~ /.bash_profile。 

    (2)如果没有带-l参数,则bash是non-login的,它将顺序读取:/etc/bash.bashrc和~/.bashrc 


5. 注销时,或退出su登录的用户,如果是longin方式,那么bash会读取:~/.bash_logout 


6. 执行自定义的shell文件时,若使用“bash -l a.sh”的方式,则bash会读取行:/etc/profile和~/.bash_profile,若使用其它方式,如:bash a.sh, ./a.sh,sh a.sh(这个不属于bash shell),则不会读取上面的任何文件。 


7. 上面的例子凡是读取到~/.bash_profile的,若该文件不存在,则读取~/.bash_login,若前两者不存在,读取~ /.profile。 

posted on 2012-07-20 16:38  melburg  阅读(324)  评论(0)    收藏  举报