您的位置:首页 > 运维架构 > Linux

Linux下环境变量的设置

2016-03-26 11:24 423 查看

Linux下环境变量的设置

概述

设置Linux环境变量可以通过export实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别。

通过文件设置Linux环境变量

首先是设置全局环境变量,对所有用户都会生效:

/etc/profile:此文件为系统的每个用户设置环境信息。当用户登录时,该文件被执行一次,并从/etc/profile.d目录的配置文件中搜集shell的设置。一般用户设置所有用户使用的全局变量。

/etc/bashrc:当bash shell被打开时,该文件被读取。也就是说,每次新打开一个终端shell,该文件就会被读取。

下面文件与上面相对,仅仅对单个用户是有效的:

~/.bash_profile或者~/.profile:只对单个用户生效,当用户登录时该文件仅仅被执行一次,用户可以使用该文件添加自己使用的shell变量信息。另外在不同的linux操作系统下,这个文件可能是不同的,可能是:~/.bash_profile、~/.bash_login、~/.profile其中的一种或者几种,如果存在几种的话,那么它的执行顺序是:~/.bash_profile、~/.bash_login、~/.profile。比如对于Centos文件一般是~/.bash_profile,而对于Ubuntu一般是~/.profile。

~/.bashrc,只对单个用户生效,等登陆以及每次打开新的shell时,该文件会被读取。

此外,修改/etc/environment文件也能实现环境变量的设置。/etc/environment设置的也是全局变量,从文件本身的作用上来说/etc/environment设置的时整个系统的环境,而/etc/profile是设置所有用户的环境,有几点需要注意:

系统有限读取/etc/profile再读取/etc/envoronment

/etc/environment中不能包含命令,即可以直接通过
VAR="..."
不能使用export。

使用
source /etc/environment
可以使变量设置在当前窗口立即生效,需要注销/重启之后,才能对每个新终端窗口都生效。

修改Linux环境变量实例

下面是一组设置环境变量的例子,都是上面一部分涉及到的文件中进行修改的。

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:$JAVA_HOME/bin  #可以看出PATH中的值最多,并且每个不同的PATH值是通过:进行分割的,所有的bin目录都应该放到这个路径下。
export HADOOP_PREFIX=/usr/local/hadoop
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop


通过shell命令export修改Linux环境变量

当然上面的一组变量都可以在中设置为临时环境变量,但是这样做太复杂,每次新打开一个shell都需要进行重复的设置,生产力极其的低下,建议使用修改文件的方式。

export只对当前终端shell有效

使用export设置的变量,只对当前终端shell有效,也就是说如果新打开一个终端,那么这个export设置的变量在新终端中是无法读取到的,该种方式只适合设置一些临时变量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux shell