红联Linux门户
Linux帮助

登录启动shell时候调用的几个配置文件简单总结

发布时间:2012-10-09 19:28:41来源:红联作者:静静飞舞
最近接手一台服务器,用root登录以后,感觉设置的bash shell环境特别不舒服,就想改改,结果一看发现,都是写在/etc/profile文件中的了。所以就总结了一下,启动一个bash,主要会调用哪些文件,如果要配置自己的bash环境的话,应该修改什么文件,不应该修改什么文件。
当用户输入帐号密码登录一个用户终端的时候,那么,首先,系统会读取文件/etc/profile,加载其中的配置,/etc/profile这个文件又会调用几个文件,包括/etc/sysconfig/i18n这个文件用来设置终端的语言信息,/etc/inputrc这个文件主要设置终端的输入方式,比如Ctrl+C之类的情况,还有一个比较重要的就是/etc/profile.d/目录下的脚本文件,那么如果真的需要修改一些全局的bash环境的话,最好是将环境写成一个shell脚本,放在/etc/profile.d/目录中,那么登录的时候,/etc/profile会自动去调用。
那么,上面说到的是用户登录的时候 ,执行的全局文件,那么在自己的家目录下,还会执行个人的shell配置文件,主要有.bash_profile,.bash_login,.profile这三个文件,一般情况下,你的家目录下应该只有.bash_profile这个文件,因为系统只执行这三个文件中的一个,如果没有找到.bash_profile,才会继续搜索.bash_login,没有的话,搜索.profile。
用vim编辑器打开.bash_profile,可以看到,这个文件又会调用~/.bashrc这个文件,可以看到一些alias设置,所以,如果你需要设置你自己个人的一些alias和一些环境变量的时候,强烈建议写在这个文件中或者~/.bash_profile中。但是还是写在~/.bashrc中比较好,为什么呢?因为有一种情况,比如你在X window下,直接开启一个命令行终端的话,是不用输入帐号密码登录的,都有印象吧,那么在这个情况下,实际上是不会去读取/etc/profile,~/.bash_profile这些文件的,而是直接读取./bashrc这个文件,所以,如果你想你的环境设置在任何时候都有效的话,建议写入这个文件。
最后再提一点,那么看~/.bashrc这个文件中的内容,可以看到,这个文件其实还会调用/etc/bashrc文件的内容,用vim打开/etc/bashrc这个文件看看,会发现在这个文件的最后又会调用/etc/profile.d/里面的sh文件,呵呵,很有趣吧~~~其实Linux中很多都是这样,最后都是殊途同归,到一个文件中。
最后,祝大家玩的开心,学的愉快~~~
文章评论

共有 17 条评论

  1. william2011 于 2014-07-28 21:34:00发表:

    学习了

  2. dddxxxlll8888 于 2014-02-17 20:10:56发表:

    学习试验中,谢了!

  3. chushihua 于 2014-01-12 21:02:16发表:

    路过!!!
    不发表意见……

  4. asd001897 于 2013-10-16 20:55:33发表:

    好东西mark一下

  5. seve5r 于 2013-10-05 23:12:06发表:

    我是新人来学习学习!!!

  6. seve5r 于 2013-10-05 23:11:46发表:

    很专业

  7. jijinlong 于 2013-09-05 14:30:17发表:

    祝大家玩的开心,学的愉快

  8. qwer5111 于 2013-08-20 16:36:25发表:

    学习了

  9. tuonioooo 于 2013-03-19 13:42:26发表:

    收下了

  10. 12700696 于 2012-12-25 10:33:51发表:

    登录启动shell时候调用的几个配置文件简单总结
    最近接手一台服务器,用root登录以后,感觉设置的bash shell环境特别不舒服,就想改改,结果一看发现,都是写在/etc/profile文件中的了。所以就总结了一下,启动一个bash,主要会调用哪些文件,如果要配置自己的bash环境的话,应该修改什么文件,不应该修改什么文件。
    当用户输入帐号密码登录一个用户终端的时候,那么,首先,系统会读取文件/etc/profile,加载其中的配置,/etc/profile这个文件又会调用几个文件,包括/etc/sysconfig/i18n这个文件用来设置终端的语言信息,/etc/inputrc这个文件主要设置终端的输入方式,比如Ctrl+C之类的情况,还有一个比较重要的就是/etc/profile.d/目录下的脚本文件,那么如果真的需要修改一些全局的bash环境的话,最好是将环境写成一个shell脚本,放在/etc/profile.d/目录中,那么登录的时候,/etc/profile会自动去调用。
    那么,上面说到的是用户登录的时候 ,执行的全局文件,那么在自己的家目录下,还会执行个人的shell配置文件,主要有.bash_profile,.bash_login,.profile这三个文件,一般情况下,你的家目录下应该只有.bash_profile这个文件,因为系统只执行这三个文件中的一个,如果没有找到.bash_profile,才会继续搜索.bash_login,没有的话,搜索.profile。
    用vim编辑器打开.bash_profile,可以看到,这个文件又会调用~/.bashrc这个文件,可以看到一些alias设置,所以,如果你需要设置你自己个人的一些alias和一些环境变量的时候,强烈建议写在这个文件中或者~/.bash_profile中。但是还是写在~/.bashrc中比较好,为什么呢?因为有一种情况,比如你在X window下,直接开启一个命令行终端的话,是不用输入帐号密码登录的,都有印象吧,那么在这个情况下,实际上是不会去读取/etc/profile,~/.bash_profile这些文件的,而是直接读取./bashrc这个文件,所以,如果你想你的环境设置在任何时候都有效的话,建议写入这个文件。
    最后再提一点,那么看~/.bashrc这个文件中的内容,可以看到,这个文件其实还会调用/etc/bashrc文件的内容,用vim打开/etc/bashrc这个文件看看,会发现在这个文件的最后又会调用/etc/profile.d/里面的sh文件,呵呵,很有趣吧~~~其实Linux中很多都是这样,最后都是殊途同归,到一个文件中。
    最后,祝大家玩的开心,学的愉快~~~

  11. gky2011514 于 2012-12-11 15:18:33发表:

    恩~

  12. gky2009514 于 2012-12-07 11:20:54发表:

    新手完成任务,求下书籍~

  13. 郝天翔001 于 2012-11-14 23:22:25发表:

    {:2_91:}

  14. majorlhzh 于 2012-11-10 17:25:09发表:

    看了,在试,有收获谢谢楼主

  15. Sucre_Yang 于 2012-10-31 15:24:00发表:

    很专业 ,对理解很有用

  16. Growth兆 于 2012-10-10 09:35:44发表:

    感谢静静飞舞的分享,本贴加入到论坛的Linux应用贴中

  17. Creation 于 2012-10-09 21:22:06发表:

    很专业