如何在 Linux 中检查环境变量是否已设置

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习在 Linux 中处理环境变量的基本技术。你将探索如何使用 echo 命令显示特定变量的值,如何使用 printenv 命令验证变量是否已设置并显示其值,以及如何使用 set 命令列出当前所有已设置的环境变量。这些技能对于理解和与 Linux shell 及系统环境进行交互至关重要。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") linux/UserandGroupManagementGroup -.-> linux/set("Shell Setting") subgraph Lab Skills linux/echo -.-> lab-558782{{"如何在 Linux 中检查环境变量是否已设置"}} linux/env -.-> lab-558782{{"如何在 Linux 中检查环境变量是否已设置"}} linux/set -.-> lab-558782{{"如何在 Linux 中检查环境变量是否已设置"}} end

使用 echo 显示变量

在这一步中,你将学习如何使用 echo 命令显示变量的值。Linux 中的变量用于存储可供 shell 和其他程序访问和使用的信息。

你会遇到的一个常见变量是 $HOME,它存储了你主目录的路径。让我们来显示它的值。

在终端中输入以下命令并按回车键:

echo $HOME

你应该会看到主目录的路径被打印到终端上,在这个环境中通常是 /home/labex

/home/labex

变量名前的 $ 符号至关重要。它告诉 shell 你想要查看变量的 ,而不是字面字符串 "$HOME"。

现在,让我们尝试显示一个不存在的变量。

输入以下命令并按回车键:

echo $MY_VARIABLE

你不会看到任何输出。这是因为变量 MY_VARIABLE 尚未设置,所以它的值为空。

你还可以同时显示多个变量:

echo $HOME $USER

这将先打印 $HOME 变量的值,然后打印 $USER 变量的值(即你的用户名 labex)。

/home/labex labex

理解如何显示变量是 Linux 中的一项基本技能,因为变量在脚本编写和系统配置中被广泛使用。

点击 继续 进入下一步。

使用 printenv 验证变量

在上一步中,你使用 echo 来显示变量的值。另一个处理环境变量的有用命令是 printenv

printenv 专门用于打印环境变量的值。环境变量是一种特殊类型的变量,可供系统中运行的进程使用。

让我们使用 printenv 来显示 $USER 变量的值。

在终端中输入以下命令并按回车键:

printenv USER

你应该会看到你的用户名 labex 被打印到终端上。

labex

注意,使用 printenv 时,你 不需要 在变量名前使用 $ 符号。printenv 期望将变量名本身作为参数。

如果你尝试使用 printenv 打印一个不存在的变量会发生什么呢?

输入以下命令并按回车键:

printenv MY_VARIABLE

echo 类似,你不会看到任何输出,因为变量 MY_VARIABLE 未被设置为环境变量。

虽然 echo 可以显示任何变量,但 printenv 专门用于环境变量。在很多情况下,你可以使用其中任何一个,但当你专门想处理环境变量时,通常会首选 printenv

点击 继续 继续下一步。

使用 set 命令列出所有变量

在前面的步骤中,你学习了如何使用 echoprintenv 显示单个变量。但如果你想查看当前 shell 环境中 所有 已设置的变量,该怎么办呢?

set 命令在不使用任何参数时,会列出所有 shell 变量,包括环境变量和特定于 shell 的变量。

在终端中输入以下命令并按回车键:

set

你会看到一长串变量及其值。这个输出包括环境变量(如 HOMEUSERPATH)以及当前 shell 会话特有的变量。

...
HOME=/home/labex
HOSTNAME=...
HOSTTYPE=x86_64
...
LANG=C.UTF-8
...
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
...
SHELL=/usr/bin/zsh
...
USER=labex
...

输出内容可能非常多。你可以滚动查看环境中默认设置的不同变量。

比较 setprintenv 的输出(如果你在不使用参数的情况下运行 printenv),你会注意到 set 包含更多变量。这是因为 set 会显示所有 shell 变量,而 printenv 仅显示环境变量。

随着你深入学习 Linux,理解 shell 变量和环境变量之间的区别很重要。环境变量会被子进程继承,而 shell 变量通常只在当前 shell 会话中有效。

现在你已经学习了在 Linux 中与变量交互的三种方法:echo(用于显示单个变量)、printenv(用于显示环境变量)和 set(用于列出所有 shell 变量)。

点击 继续 完成此实验。

总结

在本实验中,你学习了在 Linux 中与环境变量交互的基本方法。你首先探索了使用带有 $ 前缀的 echo 命令来显示特定变量的值,并了解到未设置的变量不会产生输出。你还练习了使用 echo 同时显示多个变量。随后,你了解了 printenv 命令,这是一个专门用于验证和显示环境变量值的工具。