在$HOME/.bashrc中配置PATH环境变量后source不起作用,必须重新登录的原因

问题起因

在玩Ubuntu时一不小心把文件夹Hadoop-2.9.1给删除了一部分,我需要重新下载和配置Hadoop-2.9.1,重新下载后的Hadoop-2.9.1解压到了~/hadoop/hadoop目录下,与之前的Hadoop-2.9.1放在同一个父目录下,如下:
这里写图片描述
然后在$HOME/.bashrc中配置HADOOP的环境变量,如下
这里写图片描述
最后执行如下命令

source ~/.bashr
start-dfs.sh

发现调用的还是Hadoop-2.9.1/sbin下的start-dfs.sh命令,与预期结果不符(预期结果是调用到hadoop/hadoop/sbin下的start-dfs.sh)

问题原因和解决方法

出现问题时我通过echo $HADOOP_HOME发现在.bashrc配置的环境变量已经生效了,再输出PATH环境变量的值如下:
这里写图片描述
发现PATH环境变量中即有Hadoop-2.9.1也有Hadoop,就其原因是因为在用户登录时已经执行了一遍$HOME/.bashrc,此时会将之前的Hadoop-2.9.1的环境变量也加载到PATH中,新配置Hadoop和.bashrc后,再重新加载.bashrc,由于PATH环境变量中已经包含了Hadoop-2.9.1的环境变量,导致重新加载后的PATH也包含Hadoop-2.9.1。在我的配置方法下,由于Hadoop-2.9.1的环境变量在Hadoop的前面,按照Linux搜索命令的模式,当然先搜索到Hadoop-2.9.1下的start-dfs.sh命令。重新登录之所以可以是因为重新登录时PATH环境变量中没有Hadoop-2.9.1的环境变量。
知道问题原因后,就好解决问题了,如下:
这里写图片描述

总结

像这类问题并不复杂,只要耐心分析,理解Linux搜索命令的方式,通过各种命令输出信息,可以很容易解决。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值