Linux环境变量命令——env、export、set

这三个命令都可以用来显示shell变量

env:显示所有的环境变量

set:显示所有本地定义的shell变量

export:把一个变量变作环境变量。export不加参数的时候,显示哪些变量被导出成了用户变量,一个shell自己的变量可以通过export “导出”变成一个用户变量(env和export显示基本一样,env多了一个_=/usr/bin/env)

关于哪些变量是环境变量,可以简单地理解成在当前进程的子进程有效则为环境变量,否则不是。

按变量的生存周期来划分,Linux 变量可分为两类:

  1. 永久的:需要修改配置文件,变量永久生效;

  2. 临时的:使用 export 命令行声明即可,变量在关闭 shell 时失效。

这里介绍两个重要文件 /etc/bashrc(有的 Linux 没有这个文件) 和 /etc/profile ,它们分别存放的是 shell 变量和环境变量。还有要注意区别的是每个用户目录下的一个隐藏文件,

可以通过命令ls -a来查看隐藏的文件(隐藏文件名前面都有一个.,如.profile)。

1. 在/etc/profile文件中添加变量【对所有用户生效(永久的)】

用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。

例如:编辑/etc/profile文件,添加CLASSPATH变量

# vi /etc/profile

export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。

2. 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】

用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。

例如:编辑guok用户目录(/home/guok)下的.bash_profile

$ vi /home/guok/.bash.profile

添加如下内容:

export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。

3. 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】

在shell的命令行下直接使用[export变量名=变量值]定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。
三、另外

1.使用readonly命令设置只读变量,如果使用了readonly命令的话,变量就不可以被修改或清除了。

2.使用unset命令来清除环境变量 $ unset TEMP_KEVIN #删除环境变量TEMP_KEVIN

原文地址:https://www.cnblogs.com/anylemons/p/7765201.html