在自定义和配置 Linux 系统时,您需要知道如何设置环境变量。让我们带您了解一下。
如果您使用的是 PC,操作系统需要知道在哪里可以找到某些文件或如何显示时间和日期。Windows 通常使用配置文件和注册表来执行此操作。
在 Linux 等基于 Unix 的系统上,这是使用环境变量设置的。了解如何在 Linux 中设置环境变量会有很大帮助,本教程将帮助您入门。
这些变量有两种类型 – environment和shell。环境变量会影响整个系统,无论是在命令行上还是在图形界面中。这些变量存储默认文本编辑器或 Web 浏览器、可执行文件的路径或系统区域设置和键盘布局设置等内容。
另一方面,shell 变量的范围更有限。它是非持久的,仅适用于当前 shell(或命令行)实例。不同的 shell 环境,如zsh和bash,有自己的一组内部 shell 变量。
两者的共同点是格式。每个环境和 shell 变量都将遵循以下基本格式之一:
KEY=value
KEY=\"Some value including spaces\"
KEY=value1:value2
使用环境和 shell 变量时,请牢记以下要求:
有几个命令可用于在 Linux 中列出、设置和取消设置环境变量。这些包括:
在开始更改环境变量之前,您应该始终检查您当前的配置。使用printenv,您可以找出您的 Linux 系统已经拥有的环境和 shell 变量。
要查看所有当前环境变量,请运行不带任何参数的printenv命令。警告,输出会相当长。
例如,要显示HOME变量的值,您可以使用以下内容。
jeff@UbuntuVM:~$ printenv HOME
/home/jeff
jeff@UbuntuVM:~$
您还可以为printenv提供多个参数,以一次检查多个变量。
jeff@UbuntuVM:~/documents$ printenv LANG PWD
en_US
/home/jeff/documents
jeff@UbuntuVM:~/documents$
您将遇到的一些最常见的环境变量是:
在 Linux 上设置环境变量需要执行两个步骤。首先,您将其定义为 shell 变量。接下来,您将其导出为环境变量。例如,此命令设置一个名为MY_VAR的变量并将其定义为groovy。
jeff@UbuntuVM:~$ MY_VAR=\'groovy\'
jeff@UbuntuVM:~$
您不会看到任何对此的确认,但您可以检查它是否已实际设置。
jeff@UbuntuVM:~$ echo $MY_VAR
groovy
jeff@UbuntuVM:~$
此时发出命令printenv MY_VAR不应返回任何输出,表明没有名为MY_VAR的环境变量。要改变它,你可以使用export命令。
jeff@UbuntuVM:~$ export MY_VAR
jeff@UbuntuVM:~$
现在,printenv MY_VAR应该有不同的输出。
jeff@UbuntuVM:~$ printenv MY_VAR
groovy
jeff@UbuntuVM:~$
当然,还有另一种方法可以做到这一点。您可以使用如下命令在一行中设置环境变量:
jeff@UbuntuVM:~$ export MY_NEW_VAR=\"Another groovy variable\"
jeff@UbuntuVM:~$
需要注意的一点是,以这种方式设置的环境变量仅适用于当前会话。一旦您注销或打开一个新的 shell,环境变量就会丢失。
如果你知道你需要使用跨登录持久的环境变量,你需要在你的 bash 配置文件中定义它们。这些可以在几个地方找到。
FOO=bar
VAR_TEST=“Test Variable”
export JAVA_HOME=“/path/to/java/home”
export PATH=“$HOME/bin:$PATH”
如果您设置了新的环境变量并希望在当前的 shell 会话中快速加载它们,则不必注销。只需使用source命令。
jeff@UbuntuVM:~$ source ~/.bashrc
jeff@UbuntuVM:~$
您可能不需要像环境变量那样经常声明它们,但set命令用于设置和列出所有 shell 变量。如果要列出所有这些,只需发出不带任何参数的命令。
jeff@UbuntuVM:~$ set
输出可能会有很多页。为了使其更具可读性,请通过less命令对其进行管道传输:
jeff@UbuntuVM:~$ set | less
如果要打印特定的 shell 变量,也可以使用echo命令。
jeff@UbuntuVM:~$ echo $BASH_VERSION
5.0.17(1)-release
jeff@UbuntuVM:~$
设置 shell 变量就像键入变量名、=符号和值一样简单。
jeff@UbuntuVM:~$ MY_VAR=\"groovy\"
jeff@UbuntuVM:~$
设置 shell 和环境变量在 Linux PC 或服务器上可能是一项强大的功能,但请谨慎操作。在您提交之前,请务必仔细检查您输入的内容。在更改/etc/profile 之类的文件时,您可能需要先创建一个备份文件。
上一篇:如何保护自己免受网络攻击