Linux中的export命令
Linux中的export命令用于创建环境变量。
我们可以像这样使用它:
export myvar
或者类似这样的速记即可立即为其分配值:
export myvar=5
我们可以使用echo命令查看导出变量的值:
echo $myvar
要使更改永久生效,应将其添加到~/.bashrc文件中。
那只是快速总结。
让我们对其进行详细了解以更好地理解它。
了解导出命令的工作方式
在下面的示例中,我声明了一个shell变量var并为其分配了一个值3.
目前,这是一个shell变量。
Hyman@theitroad:~$var=3 Hyman@theitroad:~$echo $var 3
如果我退出终端并打开一个新终端,则此shell变量将消失。
如果我想在Shell脚本中使用此变量,它将无法正常工作。
同样,如果我切换用户(并由此用户启动一个新的shell程序),则该shell程序变量将不可用:
Hyman@theitroad:~$su theitroad Password: Hyman@theitroad:/home/igi$echo $var
现在,让我们回到上一个用户(以及我声明了shell变量的前一个shell)。
我们可以看到该变量仍在此处(因为我们尚未终止此Shell会话):
Hyman@theitroad:/home/igi$exit exit Hyman@theitroad:~$echo $var 3
因此,现在,如果我在此处对变量var使用export命令,它将成为一个环境变量,并且该会话中的所有子shell,用户和shell脚本都可以使用它。
Hyman@theitroad:~$export var Hyman@theitroad:~$echo $var 3 Hyman@theitroad:~$su theitroad Password: Hyman@theitroad:/home/igi$echo $var 3
我们可以使用printenv命令检查所有环境变量:
printenv
使用bashrc文件将导出的Shell变量设为“永久”
但是斗争并没有就此结束。
如果关闭会话,退出终端,注销或者重新引导系统,则环境变量将再次消失。
这就是为什么通常的做法是将导出命令添加到Shell的运行时配置(rc)文件中。
每个shell程序都有一个rc文件,该文件位于用户的主目录中,该文件用于在启动shell程序时确定变量和其他配置。
作为用户,我们可以使用此rc文件来自定义Shell及其行为。
如果使用的是bash shell,则应在~/.bashrc中有一个bashrc文件。
我们可以在文本编辑器(如Vim)中编辑此文件,也可以仅将export var = 3(或者要导出的内容)添加到此文件。
完成后,我们应该使用source命令使更改立即可用。
一个好的做法是将所有用户定义的环境变量都放在一个位置。
为什么要使用export命令?
导出命令export最常见的用途之一是当我们想向路径中添加一些内容时,以便Linux系统找到特定的命令/可执行文件。
例如,如果安装了maven并且希望能够运行它,则应将maven可执行文件的目录位置添加到以下路径中:
export PATH=/opt/maven/bin:$PATH
它有什么作用?
它将此目录位置添加到路径。
当我们尝试在Linux中运行命令时,系统会在PATH变量中提到的目录中搜索其可执行文件(通常在bin目录中)。
Hyman@theitroad:~$echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin Hyman@theitroad:~$export PATH=/opt/maven/bin:$PATH Hyman@theitroad:~$echo $PATH /opt/maven/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
温馨提示:从导出列表中删除变量
假设我们要删除“已导出”变量。
我们可以通过以下方式使用negate选项:
export -n myvar