-
系统级别:
- /etc/profile:对所有用户有效,第一个用户登陆后运行,修改了这个文件,使其生效,可以选择重启或者source命令
- /etc/environment:与用户无关,直接影响全局。修改后是否立即生效未知,从目前来看修改环境变量一般不使用这个文件。
-
用户级别:
- ~/.bash_profile:对当前用户有效,需要重启或者source命令才生效。
-
shell级别:
- /etc/bashrc:对所有用户有效,需要source命令,对登陆shell有效(比如ssh或者su),对非登陆shell无效。对交互shell有效,不交互shell无效(比如直接运行脚本文件)。
- ~/.bashrc:对当前用户有效,其他同上。这也就解释了之前出现的问题,在这个文件里添加的环境变量,在终端里面$HADOOP_HOME有值,但是在脚本里面跑的时候却报错说没有设置HADOOP_HOME变量,因为直接运行shell脚本是无效的。
还有一些其他文件比如 .bashrc .bash_rc .profile等等,这些文件目前本人的理解是跟上面的文件作用相同,或者是不同的linux发行版的文件命令不同,但是否真是这样,有待后续验证。
网友评论