美文网首页
.bash_profile 还是 .bashrc

.bash_profile 还是 .bashrc

作者: zerob13 | 来源:发表于2014-10-21 13:59 被阅读711次

    事情的起因是昨天同事问了我一下 bash 的这两个初始化文件有啥区别,然后我突然发现用了那么久的 shell 确实从来没考虑过这个问题。似乎我一直以来,不管是 Linux 还是 Mac 都是使用 .bashrc 来进行 bash 的配置的。

    既然有问题,那么就去查查资料呗。顺便做个笔记。

    第一个想法就是去看看 man bash 是怎么说的,考虑到 Mac 的一些东西可能比较特殊,所以先远程了一台 Linux 来看看。因为我接触的比较多的还是 ~ 目录下的个人配置,所以全局部分的我就跳过了,区别就是一个作用域在全局,一个在局部。

           ~/.bash_profile
                  The personal initialization file, executed for login shells
           ~/.bashrc
                  The individual per-interactive-shell startup file
    

    嗯,.bash_profile 这个比较好懂,就是说每次你 login shell 的时候会执行的一个初始化文件。那么 .bashrc 这个 startup 是个啥玩意。

    于是我做了个试验,我新建了一个用户,并且在 .bash_profile.bashrc 里面都打了 log ,结果就是当你用 login 命令去登录新用户的时候,走的是 .bash_profile 而不是用 login 命令打开 bash 的时候走的则是 .bashrc 。但是有个情况比较有趣,当你的目录下没有 .bash_profile 的时候,直接用 login 登录也会走 .bashrc 。这个和 bash 的文档里说的似乎有所不同,后来去查了查文档,发现对于 .bashrc 的处理方式还和发行版的默认的一些东西有关系。不过一般建议就是如果要用 .bash_profile 记得在最后调用下 .bashrc 如下代码:

    [[ -r ~/.bashrc ]] && . ~/.bashrc
    

    另外,推荐用 zsh 就没那么多事情了。zsh 是会每次执行 .zshrc 的。

    相关文章

      网友评论

          本文标题:.bash_profile 还是 .bashrc

          本文链接:https://www.haomeiwen.com/subject/cdfmtttx.html