如何在 Linux 中设置环境变量
admin
2023-07-31 15:07:03
0

Linux-Featured-1Linux-Featured-1

在自定义和配置 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-1typical-output-of-set-command-1

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

jeff@UbuntuVM:~$ set | less

typical-output-of-set-commandtypical-output-of-set-command-1

如果要打印特定的 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 之类的文件时,您可能需要先创建一个备份文件。

相关内容

热门资讯

Windows 11 和 10... Windows 11/10 文件夹属性中缺少共享选项卡 – 已修复 1.检查共享选项卡是否可用 右键...
Radmin VPN Wind... Radmin VPN 是一款免费且用户友好的软件,旨在牢固地连接计算机以创建一个有凝聚力的虚拟专用网...
如何修复 Steam 内容文件... Steam 内容文件锁定是当您的 Steam 文件无法自行更新时出现的错误。解决此问题的最有效方法之...
事件 ID 7034:如何通过... 点击进入:ChatGPT工具插件导航大全 服务控制管理器 (SCM) 负责管理系统上运行的服务的活动...
Hive OS LOLMine... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
在 Windows 11 中打... 什么是链路状态电源管理? 您可以在系统控制面板的电源选项中看到链接状态电源管理。它是 PCI Exp...
如何在 iPhone 14 P... Apple 的 iPhone 14 Pro 是第一款配备 48MP 传感器的 iPhone。所有以前...
在 iCloud 上关闭“查找... 如果您是 Apple 的长期用户,您肯定会遇到过 Find My 应用程序,它本机安装在 iPhon...
farols1.1.501.0... faro ls 1.1.501.0(64bit)可以卸载,是一款无需连接外部PC机或笔记本计算机即可...
Hive OS 部署 PXE ... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...