美文网首页linux
解决.bashrc文件每次打开终端都需要source的问题

解决.bashrc文件每次打开终端都需要source的问题

作者: 沙漠中的猴 | 来源:发表于2018-03-08 20:51 被阅读0次

    这个问题困扰我很久,我明明改了~/.bashrc文件,重新通过ssh登录的时候每次我都要手动输入source ~/.bashrc,配置才会生效,很是头疼,于是我就研究了一下解决办法以及问题的原因是什么。

    解决方法

    vim ~/.bash_profile在文件内部输入

       # 加载.bashrc文件
    if test -f .bashrc ; then
    source .bashrc 
    fi
    

    .bash_profile文件中自动加载.bashrc文件。

    .bashrc文件与.bash_profile文件的区别

    在研究二者区别之前,我们先了解两个概念login shellno login shell

    1. login shell

    需要输入用户名和密码,进入的 shell就是loginshell

    注意:在shell里使用su - user_name 切换用户,登录的shell也是login shell

    login shell会读取的文件有:
    /etc/profile$HOME/.bash_profile,$HOME/.bash_login$HOME/.profile,按以上顺序读取。

    2. no login shell。

    在登录shell时不需要输入用户名和密码,那么这个就是no login shell

    在图形界面下,打开一个shell也是no login shell

    no login shell 在打开的时候,执行的文件是:
    $HOME/.bashrc,而.bashrc又会执行/etc/bashrc文件。

    总结

    .bash_profile文件中加载.bashrc文件,重新登录终端的时候,就不需要再手动source了。

    相关文章

      网友评论

        本文标题:解决.bashrc文件每次打开终端都需要source的问题

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