介绍
什么是环境变量?
环境变量是bash shell的特性,用来存储有关shell会话和工作环境的信息。允许在内存中存储数据,以便运行在shell上的程序和脚本访问。这些数据可以是用来识别用户、系统、Shell的特性以及任何其它需要存储的数据。
环境变量的分类
根据生命周期不同分为:
- 永久性变量,根据用户等级不同,细分为:
- 系统级变量
- 用户级变量
- 临时性变量
设置
系统级变量
- 对所有用户生效的永久性变量,编辑 /etc/profile 文件
# 编辑文件
linux:~$ vim /etc/profile
# 设置环境变量,eg:Java ClassPath
linux:~$ export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
# 立即生效,否则必须下次用户登陆才能生效
linux:~$ source /etc/profile
用户级变量
- 对单一用户生效的永久性变量,编辑 ~/.bash_profile 文件
# 编辑文件
linux:~$ vim ~/.bash_profile
# 设置环境变量,eg:Java ClassPath
linux:~$ export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
# 立即生效,否则必须下次用户登陆才能生效
linux:~$ source /etc/profile
临时性变量
- 临时有效的环境变量,只对当前shell有效,当退出登录或者关闭终端再重新打开时,环境变量将失效
# 使用export指令设置环境变量
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
查看
查看指定环境变量
linux:~$ echo $CLASSPATH
.:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/tools.jar
查看所有环境变量
linux:~$ env
TERM_PROGRAM=Apple_Terminal
SHELL=/bin/bash
TERM=xterm-256color
CLICOLOR=1
TMPDIR=/var/folders/pk/qdvf493s4tb6jdmcwzxj4h3h0000gn/T/
. . . . . .
. . . . . .
CLASSPATH=.:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/lib/tools.jar
删除指定环境变量
# 删除指定环境变量
linux:~$ unset CLASSPATH
# 此命令没有输出,证明环境变量CLASSPATH已经删除
env | grep CLASSPATH