Linux 中的环境变量是什么?你需要知道的一切
通过创建和配置环境变量来设置 Linux 上的自定义首选项和默认应用程序。
如果您已经使用 Linux 一段时间,您可能想知道如何从命令行设置某些参数,以便跨程序保留您的设置。环境变量就是你如何做到这一点的。
最后,您将深入了解什么是环境变量,以及如何从命令行创建此类变量。
什么是环境变量?
环境变量是指在 Linux shell 的所有实例中保持一致的变量。当您从 shell 启动程序时,它会复制自身或“分叉”,然后用它将要运行的程序(称为“exec”)替换自身。
环境变量将在 shell 生成的任何 shell 副本中继承,也称为“导出”变量。即使 Windows 也使用环境变量,可以追溯到 MS-DOS 时代,但在现代,大多数程序都依赖注册表和它们自己的设置菜单进行配置。
环境变量可能会定义您最喜欢的编辑器,因此当程序启动文本编辑器来更改配置文件时,该编辑器每次都会出现。
系统管理员可以在系统范围内设置环境变量,但更常见的是在单个用户的启动文件中定义环境变量。按照惯例,它们以大写形式打印,并由前导“$”符号指示,例如默认文本编辑器的“$EDITOR”。
列出环境变量
要查看任何环境变量的值,请使用echo命令。例如,要查看变量 $EDITOR 的值,请运行以下命令:
echo $EDITOR
如果设置了,shell 将打印该值,例如“vim”,但如果它为空,则只会打印一个空行。
要查看当前设置的所有环境变量,请在命令行中键入“set”。
在Linux上设置环境变量
您可以通过两种方式设置环境变量:从命令行或在 shell 配置文件中。
第一种方法很简单。在 Bash 中,您可以使用“导出”命令。例如,设置 $EDITOR 环境变量:
export EDITOR='vim'
请注意,在此语法中,您省略了前导“$”。您还可以使用 VARIABLE='value',但这只会扩展到 shell 的特定实例,这意味着一旦您关闭终端,shell 将重置更改的值。
现在,您的编辑器将是 Vim 或您在此会话中使用的任何文本编辑器及其启动的每个子 shell。如果要在不同的 shell 会话之间保留环境变量,请在 shell 的启动文件中定义它们。
Bash 在启动时读取多个文件:/etc/profile、/etc/bash/bashrc、.bash_profile 和 .bashrc 。前两个是系统范围的,只有系统管理员可以修改它们,而其余的则位于您的主目录中。
.bashrc 文件是您要编辑的文件,因为它会影响交互式 shell,无论它是否作为登录 shell 运行。如果您使用终端模拟器中的 shell,则将读取 .bashrc 内容。
在文件中设置环境变量的方法与在命令行中设置环境变量的方法相同。只需将 export VARIABLE='value' 命令附加到 shell 配置文件即可。完成后,保存文件并启动新的 shell。
请注意,Linux 用户还可以将默认 shell 从 Bash 更改为其他 shell。对于那些已经这样做的人,您必须编辑 shell 的配置文件,而不是 .bashrc,这是 Bash 的配置文件。
现在您知道环境变量是如何工作的
通过环境变量,您可以在所有 shell 会话中拥有一致的设置。 Shell 变量是 shell 脚本的重要组成部分,每个 Linux 用户都应该了解这一点。