.bash_profile 和 .bashrc

你是否在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值