如何在 Linux 中设置环境变量

在自定义和配置 Linux 系统时,您需要知道如何设置环境变量。让我们带您了解一下。

如果您使用的是 PC,操作系统需要知道在哪里可以找到某些文件或如何显示时间和日期。Windows 通常使用配置文件和注册表来执行此操作。

在 Linux 等基于 Unix 的系统上,这是使用环境变量设置的。了解如何在 Linux 中设置环境变量会有很大帮助,本教程将帮助您入门。

Linux 中的环境和 Shell 变量

这些变量有两种类型 – environmentshell。环境变量会影响整个系统,无论是在命令行上还是在图形界面中。这些变量存储默认文本编辑器或 Web 浏览器、可执行文件的路径或系统区域设置和键盘布局设置等内容。

另一方面,shell 变量的范围更有限。它是非持久的,仅适用于当前 shell(或命令行)实例。不同的 shell 环境,如zshbash,有自己的一组内部 shell 变量。

两者的共同点是格式。每个环境和 shell 变量都将遵循以下基本格式之一:

KEY=value
KEY="Some value including spaces"
KEY=value1:value2

使用环境和 shell 变量时,请牢记以下要求:

  • 案件很重要。环境变量应始终具有大写名称。
  • 切勿在变量名、 =符号和值之间包含空格。
  • 当一个变量有多个值时,它们必须用冒号 (:)字符分隔。

如何在 Linux 中列出和设置环境变量

有几个命令可用于在 Linux 中列出、设置和取消设置环境变量。这些包括:

  • env:此命令将允许您在自定义环境中运行另一个程序,而无需更改当前程序。没有任何参数,它会打印当前环境变量的列表。
  • printenv:如果要打印所有或特定的环境变量,printenv非常有用。
  • set:此命令用于设置或取消设置 shell 变量。如果你在没有参数的情况下运行它,set将打印所有变量的列表,包括环境和 shell 变量以及 shell 函数。
  • unset:删除 shell 和环境变量的命令。
  • export:这是您最常用于设置环境变量的命令。

使用环境变量

在开始更改环境变量之前,您应该始终检查您当前的配置。使用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$

您将遇到的一些最常见的环境变量是:

  • USER:当前登录的用户。
  • HOME:当前用户的主目录。
  • EDITOR :在命令行键入edit时使用的默认文本编辑器。
  • SHELL:当前用户 shell 的路径,如bashzsh
  • PATH:执行命令时要搜索的目录列表。Linux 使用它找到的第一个匹配项以指定的顺序搜索这些目录。

更改或设置新的环境变量

在 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,环境变量就会丢失。

在 Linux 中将环境变量设置为持久化

如果你知道你需要使用跨登录持久的环境变量,你需要在你的 bash 配置文件中定义它们。这些可以在几个地方找到。

  • /etc/environment:此文件设置适用于所有 shell 和 GUI 环境的全局、系统范围的环境变量。这些设置为以下格式:
    FOO=bar
    VAR_TEST=“Test Variable”
    
  • /etc/profile:每当输入 bash 登录 shell 时都会加载这些文件。使用export命令来声明这些。
    export JAVA_HOME=“/path/to/java/home”
    
  • 用户定义的 shell 配置文件:每个用户都可以有自己的 shell 配置文件。对于bash,该文件位于~/.bashrc。在此处声明变量的方式与在/etc/profile中相同。
    export PATH=“$HOME/bin:$PATH”
    

如果您设置了新的环境变量并希望在当前的 shell 会话中快速加载它们,则不必注销。只需使用source命令。

jeff@UbuntuVM:~$ source ~/.bashrc
jeff@UbuntuVM:~$ 

配置 Shell 变量

您可能不需要像环境变量那样经常声明它们,但set命令用于设置和列出所有 shell 变量。如果要列出所有这些,只需发出不带任何参数的命令。

jeff@UbuntuVM:~$ set

typical-output-of-set-command-1

输出可能会有很多页。为了使其更具可读性,请通过less命令对其进行管道传输:

jeff@UbuntuVM:~$ set | less

typical-output-of-set-command

如果要打印特定的 shell 变量,也可以使用echo命令。

jeff@UbuntuVM:~$ echo $BASH_VERSION
5.0.17(1)-release
jeff@UbuntuVM:~$ 

设置 shell 变量就像键入变量名、=符号和值一样简单。

jeff@UbuntuVM:~$ MY_VAR="groovy"
jeff@UbuntuVM:~$ 

明智地管理您的 Linux 桌面或服务器

设置 shell 和环境变量在 Linux PC 或服务器上可能是一项强大的功能,但请谨慎操作。在您提交之前,请务必仔细检查您输入的内容。在更改/etc/profile 之类的文件时,您可能需要先创建一个备份文件。

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun135112.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2022年3月2日 上午8:14
下一篇 2022年3月4日 上午8:57

相关推荐