Linux 中的 export 命令用于创建环境变量。 你可以像这样使用它:
export myvar
或像这样的速记立即为其赋值:
export myvar=5
您可以使用 echo 命令查看导出变量的值:
echo $myvar
要使更改永久生效,您应该将其添加到 ~/.bashrc 文件中。
这只是一个简短的总结。 让我们详细看看它以更好地理解它。
了解导出命令的工作原理
在里面 example 下面,我声明一个 shell 变量 var 并为其赋值 3。它现在是一个 shell 变量。
[email protected]:~$ var=3
[email protected]:~$ echo $var
3
如果我退出终端并打开一个新终端,这个 shell 变量就会消失。 如果我想在 shell 脚本中使用这个变量,它将无法工作。 同样,如果我切换用户(并因此用这个用户启动一个新的 shell),这个 shell 变量将不可用:
[email protected]:~$ su prakash
Password:
[email protected]:/home/abhishek$ echo $var
现在,让我们回到前一个用户(以及我声明 shell 变量的前一个 shell)。 你可以看到变量仍然存在这里(因为我们还没有终止这个 shell 会话):
[email protected]:/home/abhishek$ exit
exit
[email protected]:~$ echo $var
3
所以,现在如果我在变量上使用导出命令 var
在这里,它将成为一个环境变量,它将可供本次会话中的所有子 shell、用户和 shell 脚本使用。
[email protected]:~$ export var
[email protected]:~$ echo $var
3
[email protected]:~$ su prakash
Password:
[email protected]:/home/abhishek$ echo $var
3
您可以使用 printenv 命令检查所有环境变量:
printenv
使用 bashrc 文件将导出的 shell 变量设为“永久”
但斗争并没有就此结束。 如果你 close 会话,退出终端,注销或重新启动系统,您的环境变量将再次消失。
这就是为什么将导出命令添加到 shell 的运行时配置 (rc) 文件的常见做法。
每个 shell 都有这个位于用户主目录中的 rc 文件,用于在 shell 启动时确定变量和其他配置。 作为用户,您可以使用此 rc 文件来自定义您的 shell 及其行为。
如果您正在使用 bash shell,你应该有一个 bashrc 文件 ~/.bashrc. 您可以在 Vim 等文本编辑器中编辑此文件,也可以将 export var=3(或您要导出的任何内容)附加到此文件。
完成后,您应该使用 source 命令使更改立即可用。
一个好的做法是将所有用户定义的环境变量保存在一个位置。
为什么要使用导出命令?
导出命令最常见的用途之一是当您想在路径中添加一些内容以便您的 Linux 系统找到某个命令/可执行文件时。
为了 example如果你安装了 行家 并且您希望能够运行它,您应该将 maven 可执行文件的目录位置添加到路径中,如下所示:
export PATH=/opt/maven/bin:$PATH
它有什么作用? 它将这个目录位置添加到路径中。 当您尝试在 Linux 中运行命令时,系统会在 PATH 变量中提到的目录中搜索其可执行文件(通常在 bin 目录中)。
[email protected]:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
[email protected]:~$ export PATH=/opt/maven/bin:$PATH
[email protected]:~$ echo $PATH
/opt/maven/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
我强烈建议阅读有关 Linux 目录结构的内容,以便更好地了解。
额外提示:从导出列表中删除变量
假设您要删除“导出”变量。 您可以以这种方式使用 negate 选项:
export -n myvar
请记住,这不会重置变量的值。 它只会将导出的全局变量转换为局部变量。 它将继续具有您之前设置的相同值。
如果要从导出列表中删除变量并删除其分配的值,请使用 unset 选项:
unset myvar
我希望您现在对 Linux 中的导出命令有了更好的了解。 如果您有任何疑问,请随时在评论部分提出。