.bash_profile和.bashrc

我们在CentOS上面配置程序时,看到有些地方写着在.bash_profile中写入xxx,有些地方写着在.bashrc中写入xxx。到底这两个文件有什么区别呢?

根据bash man page,.bash_profile会在登录shell中生效,.bashrc会在交互非登录shell中生效。登录shell指的是我们输入用户名和密码之后打开的shell,比如我们通过ssh登录到远程主机,打开的shell就是登录shell,此时写在.bash_profile中的命令会生效。交互非登录shell指的是登录之后打开的不需要输入用户名和密码就可以操作的交互shell,非交互shell的例子是运行shell脚本时指定的shell,它运行完脚本后自动退出,没有和人交互的过程。

知道了它们的区别之后我们就可以明白它们不是一样的,各有各的用途,但是如果要维护两个文件的话显得很麻烦,我们可以只在.bashrc中写入需要的命令,然后在.bash_profile的开头加入这样的一条命令:

if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

if [ -f ~/.bashrc ]的意思是如果 ~/.bashrc文件存在,且它是普通文件,则返回true,这时候就会执行source ~/.bashrc命令。source命令的作用是把指定文件中的命令加载到当前shell,跟MySQL中执行.sql文件的source命令差不多一个意思。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值