linux

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

2018-03-08  本文已影响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了。

上一篇 下一篇

猜你喜欢

热点阅读