这个问题困扰我很久,我明明改了~/.bashrc文件,重新通过ssh登录的时候每次我都要手动输入source ~/.bashrc,配置才会生效,很是头疼,于是我就研究了一下解决办法以及问题的原因是什么。
解决方法
vim ~/.bash_profile在文件内部输入
# 加载.bashrc文件
if test -f .bashrc ; then
source .bashrc
fi
在.bash_profile文件中自动加载.bashrc文件。
.bashrc文件与.bash_profile文件的区别
在研究二者区别之前,我们先了解两个概念login shell和no 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了。
作者:沙漠中的猴
链接:https://www.jianshu.com/p/c4946024b946
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。