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 socket 初步
- android wifi 无线调试
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)