美文网首页
Mac 使用踩坑之旅-.bashrc文件不生效

Mac 使用踩坑之旅-.bashrc文件不生效

作者: 五城十九洲 | 来源:发表于2019-10-16 18:25 被阅读0次

    Mac下配置环境变量配置不生效.bashrc文件每次打开终端都需要source的问题

    先了解Mac环境变量加载顺序

    /etc/profile
    /etc/paths
    ~/.bash_profile
    ~/.bash_login
    ~/.profile
    ~/.bashrc
    

    其中/etc/profile/etc/paths是系统级别的,系统启动就会加载,
    后几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取,如果/.bash_profile文件存在,则后面的几个文件就会被忽略不读了,如果/.bash_profile文件不存在,才会以此类推读取后面的文件。
    ~/.bashrc没有上述规则,它是bash shell打开的时候载入的。
    也就是说在当前用户的目录下,如果有了.bash_profile文件就不会去加载.bashrc文件。

    login shellvsno login shell

    1. login shell
      需要输入用户名和密码,进入的 shell就是loginshell。
      注意:在shell里使用su - user_name 切换用户,登录的shell也是login shell
      login shell会读取的文件有:
      /etc/profile~/.bash_profile,~/.bash_login~/.profile,按以上顺序读取。
    2. no login shell。
      在登录shell时不输入输入用户名和密码,那么这个就是no login shell。
      在图形界面下,打开一个shell也是no login shell
      no login shell 在打开的时候,执行的文件是:
      ~/.bashrc,而.bashrc又会执行/etc/bashrc文件。

    解决方案:要加载.bashrc文件,需要在.bash_profile文件中直接加载该文件。

    在.bash_profile文件中加入以下代码:

    if [ -f ~/.bashrc ]; then
       source ~/.bashrc
    fi
    

    改完需要source 命令生效
    参考

    上述修改时针对终端时bash的修改,假如终端是zsh的话,需要找到用户目录下的.zlogin文件,加入上述代码

    相关文章

      网友评论

          本文标题:Mac 使用踩坑之旅-.bashrc文件不生效

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