.bash_profile 和 .bashrc
程序员文章站
2022-06-03 22:59:41
...
你是否在Linux/Mac系统下设置环境变量的时候,为到底设置在哪个文件(.bash_profile ? .bashrc ?还是其他)而感到困惑?
首先,要我们要区分 login shell、non-login shell。
login shell:当你通过console进行用户名/密码登录(不管是本地还是远程登录)的时候,.bash_profile会在提示语出现之前被执行。
non-login shell:当你已经登入系统、在可视化界面(像KDE、Gnome诸如此类)下打开一个新的命令窗口(xterm)的时候,.bashrc
在你打开新窗口(准确说是执行类似/bin/bash)的时候被执行。
他们之间有何区别
当知道以上信息的时候,你可以根据实际需要来决定放在哪个文件,那么设置环境变量似乎两者皆可行,只是设置环境变量的时间点不一样。
Mac os 是个例外
Mac OS X(最新的系统我晚点试试,这是我找文章的时候路过的笔记)的 Terminal.app执行的是上述所说的结合体:当每次打开桌面终端的时候都会去执行login shell。顺带说一句,其他的仿真终端也可能会这样干,但是大多数不会。
建议
把以下添加到.bash_profile文件当中:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
然后每次从console登陆之后会正常调用.bashrc
参考文章:http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html
上一篇: 编程调试笔记
下一篇: 【蓝桥杯】Python实现蛇行矩阵