bash shell 使用环境变量存储关于shell会话和工作环境的信息(这也是环境变量的由来)。
bash shell中共有两种类型的环境变量:
1、全局环境变量
全局环境变量在shell会话和该shell产生的任何子进程中都可见。
本地变量只在创建它们的shell中可见。
在产生需要父进程信息的子进程的应用中,全局变量非常重要。
Linux系统在开始bash会话时设置一些全局环境变量,系统环境变量使用全大写字母来区别于普通用户环境变量。
1> 使用 printenv命令查看全局环境变量
[root@hadoop tmp]# printenv
XDG_SESSION_ID=2
HOSTNAME=hadoop
SELINUX_ROLE_REQUESTED=
TERM=xterm
SHELL=/bin/bash
HADOOP_HOME=/opt/hadoop/hadoop-2.7.6
HISTSIZE=1000
SSH_CLIENT=192.168.119.1 49224 22
SELINUX_USE_CURRENT_RANGE=
SQOOP_HOME=/opt/sqoop-1.4.7
OLDPWD=/root
SSH_TTY=/dev/pts/0
USER=root
2> 使用echo命令显示某个环境变量的值
当引用环境变量时,需要在环境变量名称前添加一个美元符号:
[root@hadoop tmp]# echo $SHELL
/bin/bash
3> set命令显示特定进程的所有环境变量,包括全局环境变量
printenv里的所有环境变量都出现在set命令中,但是包括一些额外的环境变量,它们是本地环境变量。
[root@hadoop tmp]# set
BASH=/bin/bash
BASH_VERSION='4.2.46(2)-release'
HADOOP_COMMON_LIB_NATIVE_DIR=/opt/hadoop/hadoop-2.7.6/lib/native
HADOOP_CONF_DIR=/opt/hadoop/hadoop-2.7.6/etc/hadoop
HADOOP_HOME=/opt/hadoop/hadoop-2.7.6
HADOOP_OPTS=-Djava.library.path=/opt/hadoop/hadoop-2.7.6/lib
HIVE_CONF_DIR=/opt/hive-2.3.5/conf
HIVE_HOME=/opt/hive-2.3.5
HOME=/root
2、本地环境变量
本地环境变量只在定义它们的本地进程中可见。