如何在 Linux 中设置环境变量

您所在的位置:网站首页 linux系统如何配置环境变量命令 如何在 Linux 中设置环境变量

如何在 Linux 中设置环境变量

2024-07-17 07:25| 来源: 网络整理| 查看: 265

原文: How to Set an Environment Variable in Linux

在编程时,你使用变量来临时存储信息,如字符串和数字。

变量可以在整个代码中反复使用,或者由你的操作系统提供数值。你可以编辑它们、覆盖它们,并删除它们。

在本教程中,我将教你什么是环境变量以及如何在 Linux 中设置它们。

什么是环境变量

环境变量是特定环境中的变量。例如,操作系统中的每个用户都有自己的环境,一个管理员用户拥有与其他用户不同的环境。

你可能会声明一个只有你的用户需要的环境变量(例如一个秘密令牌),不需要暴露给其他用户。

下面是 Linux 中环境变量的一些例子:

USER - 这指的是当前登录的用户。HOME - 这显示了当前用户的主目录。SHELL - 这存储了当前用户的 shell 路径,如 bash 或 zsh。LANG - 这个变量指向当前的语言 /locales 设置。MAIL - 这显示了当前用户的邮件存储的位置。

这些环境变量根据当前的用户会话而变化。

如何在 Linux 中列出环境变量

用于显示为当前会话定义的所有环境变量的命令是 env。

下面是我的会话的输出:

root@Zaira:~# env SHELL=/bin/bash PWD=/root LOGNAME=root HOME=/root LANG=C.UTF-8 LESSOPEN=| /usr/bin/lesspipe %s USER=root SHLVL=1 XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin MAIL=/var/mail/root _=/usr/bin/envenv 命令的输出如何打印 Linux 中的环境变量

有两种方法可以打印已经定义的环境变量:

printenv VARIABLE_NAMEecho $varname

让我们用这两种方法来打印变量 SHELL 的值。下面是一个使用 printenv 打印的例子:

root@Zaira:~# printenv SHELL /bin/bash使用 printenv 打印环境变量值

这是一个使用 echo 的例子:

root@Zaira:~# echo $SHELL /bin/bash使用 echo 打印环境变量值如何在 Linux 中设置环境变量

定义环境变量的基本语法如下:

export VARIABLE_NAME=value

我们来定义一个环境变量,列出它,并打印它的值。

定义变量 JAVA_HOME:root@Zaira:~# export JAVA_HOME=/usr/bin/java通过列出它来验证:root@Zaira:~# env SHELL=/bin/bash JAVA_HOME=/usr/bin/java PWD=/root LOGNAME=root HOME=/root LANG=C.UTF-8 LESSCLOSE=/usr/bin/lesspipe %s %s TERM=xterm-256color global22=yolo LESSOPEN=| /usr/bin/lesspipe %s USER=root SHLVL=1 XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin MAIL=/var/mail/root _=/usr/bin/env我们的变量 JAVA_HOME 在 #2 行中被定义打印它的值:root@Zaira:~# echo $JAVA_HOME /usr/bin/java

然而,使用这种方法定义的变量只存储在当前会话中。在下一个会话中不能使用它们。

让我们通过打开一个新的会话并打印变量的值来验证。

zaira@Zaira:/etc$ echo $JAVA_HOME 输出是空的

但是,我们可以让这些定义持久化,如下一节所示。

如何在 Linux 中使环境变量持久化

为了使 JAVE_HOME 变量持久化,编辑文件 .bashrc 并在其中定义其值。

.bashrc 是一个脚本文件,每当用户登录的时候就会执行。它是隐藏的,默认位于用户的主目录中。

我对我的 .bashrc 文件做了如下编辑:

vi ~/.bashrcimage在 .bashrc 文件的末尾添加环境变量的定义

为了使这些变化生效,使用 source 命令更新 .bashrc 文件:

source .bashrc

让我们通过打开一个新的会话来验证。

root@Zaira:~# echo $JAVA_HOME /usr/bin/java这就是我们的变量!如何在 Linux 中创建一个持久的全局变量

有时你可能需要定义一个所有用户都可以访问的全局环境变量。

为此,我们需要首先声明一个变量,并在读取环境变量的相关文件中进行修改。

让我们一步一步来。

我以用户 Zaira 的身份登录。我正在创建一个全局变量 GLOBAL_VARIABLE,像这样:zaira@Zaira:~$ export GLOBAL_VARIABLE="This is a global variable"

2. 编辑以下文件:

/etc/environment - 这个文件用来设置全系统的环境变量。image-1更新 /etc/environment 文件

为了使这些变化生效,请使用命令 source /etc/environment。

/etc/profile - 只要登录了 bash shell,就会读取该文件中设置的变量。编辑这个文件并使用 export 命令:image-2更新 /etc/profile

是时候进行测试了!

现在,我将用户切换为根用户,并验证我是否可以访问变量 GLOBAL_VARIABLE。

root@Zaira:~# echo $GLOBAL_VARIABLE This is a global variable通过根用户访问全局变量

成功了!我能够通过 root 用户访问由用户 Zaira 定义的全局变量。这一点也适用于其他用户。所以现在你也知道如何定义全局环境变量了。

总结

在本教程中,你学会了如何在 Linux 中创建和定义环境变量。你还学会了如何使它们持久化,以便你可以在多个会话中使用它们。

你在这里学到的最喜欢的东西是什么?请在 Twitter 上告诉我。

你可以在这里阅读我的其他文章。

图片来自 Freepik,作者 catalyststuff。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3