【笔记】etc/profile和~/.bashrc的区别

在搭建单节点的hadoop集群时,jdk的环境变量是在~/.bashrc 文件中配置的

这里写图片描述

而搭建三节点的hadoop集群时,是在root用户下的 etc/profile目录下配置的环境变量

这里写图片描述

两者有什么区别呢?

/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。是系统全局针对终端环境的设置,它是login时最先被系统加载的,是它调用了/etc/bashrc,以及/etc/profile.d目录下的*.sh文件,如果有一个软件包,系统上只安装一份,供所有开发者使用,建议在/etc/profile.d下创建一个新的xxx.sh,配置环境变量。
~/.bashrc:是用户相关的终端(shell)的环境设置,通常打开一个新终端时,默认会load里面的设置,在这里的设置不影响其它人。如果一个服务器多个开发者使用,大家都需要有自己的sdk安装和设置,那么最好就是设置它。

ps:
/etc/bashrc: 是系统全局针对终端环境的设置,修改了它,会影响所有用户的终端环境,这里一般配置终端如何与用户进行交互的增强功能等(比如sudo提示、命令找不到提示安装什么包等),新开的终端,已经load了这个配置,最后才load用户自己的 ~/.bashrc。
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.

bashrc与profile的区别
这里写图片描述

全局优先。

ps:交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉 的:登录、执行一些命令、签退。当你签退后,shell也终止了。 shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件 的结尾,shell也就终止了。

以上。

2018.5.18补充:
在搭建集群的时候,按照这个路径配置的环境变量
这里写图片描述

但是每次打开新的终端
这里写图片描述
这里写图片描述

换成/etc/profile配置环境变量也是这种情况
这里写图片描述
这里写图片描述

换成非交互模式的全局变量/etc/bashrc
这里写图片描述
这里写图片描述

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值