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