如何在Linux上打印环境变量
Linux 系统上的环境变量包含主要由脚本和系统程序引用的不断变化的值。环境变量与 shell 变量不同,因为它们可以被整个系统中的任何用户或进程访问。在本教程中,您将学习如何在 Linux 上打印环境变量。
在本教程中您将学习:
什么是环境变量?
如何打印单个环境变量
如何打印Linux系统上的所有环境变量
什么是环境变量?
让我们看一个非常简单的示例,了解环境变量如何工作以及它们存在的原因。有许多系统程序和用户编写的脚本需要访问当前用户的主目录。那么,我们如何告诉 Bash 脚本访问主目录,因为该目录将不断变化,具体取决于执行该脚本的用户?
答案是我们将使用 HOME 环境变量。这是一个变量,它将继续将其值更改为当前用户的主目录。因此,系统上的任何用户都可以使用包含以下行的脚本,并且它将生成相同的结果。
$ mkdir $HOME/.logs
另一个常见的环境变量是 SHELL,它将始终包含用户当前 shell 的路径。
$ echo $SHELL > $HOME/current-shell.log
$ cat $HOME/current-shell.log
/bin/bash
除了这两个之外,还有很多其他的环境变量。继续阅读以了解更多信息。
如何打印环境变量
printenv
命令可用于列出 Linux 系统上的所有环境变量。请记住,其中一些值会发生变化,具体取决于登录的用户。
$ printenv
要列出特定变量,只需将其名称传递给命令即可。
$ printenv SHELL
/bin/bash
您还可以同时检查多个变量。
$ printenv HOME SHELL
/home/linuxconfig
/bin/bash
要与终端中的环境变量交互或编写 Bash 脚本时,您需要在它们前面加上美元符号 $
。
$ echo "I am logged in as $USER with the $SHELL shell and my home directory is $HOME"
I am logged in as linuxconfig with the /bin/bash shell and my home directory is /home/linuxconfig
一个流行的要编辑的环境变量是 ` PATH
变量,它允许您指定输入命令时 Bash 应搜索程序的目录。我们编写了一份单独的指南,介绍如何将目录添加到 ` PATH。
$ printenv PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
要了解有关在 Linux 上设置环境变量的更多信息,请参阅有关如何在 Linux 上设置和列出环境变量以及在 Linux 中导出命令的教程以及示例。
结束语
在本教程中,我们了解了如何在 Linux 系统上打印环境变量。环境变量是 Linux shell 中的一个有用约定,有助于促进系统进程和用户脚本。如果没有环境变量,我们将无法获取根据不同场景不断变化的信息类型,例如哪个用户登录、使用哪个桌面GUI、用户位于哪个目录等。