欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

.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

相关标签: 设置环境变量