这个问题困扰我很久,我明明改了~/.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
了。
网友评论