liunx 中如何删除export设置的环境变量
export 命令
功能说明:设置或显示环境变量。
语 法:export [-fnp][变量名称]=[变量设置值]
补充说明:在 shell 中执行程序时,shell 会提供一组环境变量。 export 可新增,修改或删除环境变量,供后续执行的程序使用。
export 的效力仅及于该此登陆操作。
参 数:
-f 代表 [变量名称] 中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的 shell 赋予程序的环境变量。
一个变量创建时,它不会自动地为在它之后创建的 shell 进程所知。而命令 export 可以向后面的 shell 传递变量的值。当一个 shell 脚本调用并执行时,它不会自动得到原来脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。
export 命令可以用于传递一个或多个变量的值到任何后继脚本。
env 命令即可查看到设置后的环境变量
在 linux 里设置环境变量的三种实现方法(export PATH):
1. 直接使用 export 命令 (我们以 mysql 服务举例说明)
[root@liyao ~]# export PATH=$PATH:/usr/local/mysql/bin
查看是否已经设置好,可以使用命令 export 命令来查看,也可以直接 $# 变量名 #来查看
zhongweichaomatoMacBook-Pro:~ zhongweichao$ $PATH
-bash: :/Users/zhongweichao/.local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/zhongweichao/Develop/jboss-5.1.0.GA/bin
需要注意: 直接使用 export 设置的变量都是临时变量,也就是说退出当前的 shell ,为该变量定义的值便不会生效了。如何能让我们定义的变量永久生效呢?那就看我们的第二种定义的方式。
2. 修改 /etc/profile
[root@liyao ~]# vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin # 在配置文件中加入此行配置
需要注意的是:修改完这个文件必须要使用 以下命令在不用重启系统的情况下使修改的内容生效。
[root@liyao ~]# source /etc/profile
或者是用 ‘.’:
[root@liyao ~]# . /etc/profile
查看:
[root@liyao ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
# 配置已经生效
3. 修改 .bashrc 文件是在当前用户 shell 下生效
# vi /root/.bashrc? 在里面加入:
export PATH=$PATH:/usr/local/mysql/bin
修改这个文件之后同样也需要使用 source 或者是 . 使配置文件生效。
再来使用 echo $PATH 看下变量是否生效
[root@liyao ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
4. 删除变量
unset 命令删除
shell 与 export 命令
用户登录到 Linux 系统后,系统将启动一个用户 shell。在这个 shell 中,可以使用 shell 命令或声明变量,也可以创建并运行 shell 脚本程序。运行 shell 脚本程序时,系统将创建一个子 shell。此时,系统中将有两个 shell,一个是登录时系统启动的 shell,另一 个是系统为运行脚本程序创建的 shell。当一个脚本程序运行完毕,它的脚本 shell 将终止,可以返回到执行该脚本之前的 shell。从这种意义上来 说,用户可以有许多 shell,每个 shell 都是由某个 shell(称为父 shell)派生的。
在子 shell 中定义的变量只在该子 shell 内有效。如果在一个 shell 脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内 的一个局部变量,其他的 shell 不能引用它,要使某个变量的值可以在其他 shell 中被改变,可以使用 export 命令对已定义的变量进行输出。 export 命令将使系统在创建每一个新的 shell 时定义这个变量的一个拷贝。这个过程称之为变量输出。
原文出处:https://blog.csdn.net/shenshendeai/article/details/49794699