环境变量是在本地计算机(运行程序的计算机)上存储值的一种方式。例如,您可以存储用于登录系统的用户 ID。您还可以使用环境变量来存储配置设置,例如数据库连接的名称。
设置环境变量时,考虑安全影响非常重要。如果攻击者能够访问您的环境变量,他们就可以访问您的用户名和密码等敏感信息。因此,确保环境变量名称的安全非常重要。
Mac 新手可能会对如何设置和管理这些环境变量感到不知所措。本指南提供了简单的方法来做到这一点。
查看当前环境变量
要查看所有环境变量,请在 macOS 上打开终端并输入:
printenv
我们还可以使用echo打印特定环境变量值的命令:
echo $JAVA_HOME
/usr/local/Cellar/openjdk@11/11.0.16.1/libexec/openjdk.jdk/Contents/Home
默认情况下,大多数 Linux 发行版将环境变量公开为 key=value 对(例如 key=”value”)。这些对通常存储在 /etc/paths 或 /etc/defaults/key1 等文件中或其他位置。在某些情况下,可以通过在 shell 的 .bashrc 或 .profile 文件中放置特殊条目来暴露它们。
设置临时环境变量:
临时环境变量是在进程缓冲区中定义的变量,仅在程序运行时存在。当程序结束或进程终止时,它就会丢失,并且对其他程序不可用。
当应用程序进程结束或终止它时,临时环境变量的值将丢失。可以使用 Process Monitor 工具检索临时环境变量的值。
export MY_VAR=value
然后使用 echo 命令打印 MY_VAR 的值。
export $MY_VAR
您将看到指定的值作为输出。但是,如果您打开一个新终端并尝试打印相同的变量。您将在输出中看到一个空行。
因此,手动导出的环境变量的范围仅限于活动 shell。
设置永久环境变量:
永久环境变量在应用程序的配置文件中定义。即使在 fork 和 exec 之后它仍然存在,并且可供同一执行上下文中的所有进程(即一台计算机上的所有进程)使用。当应用程序进程结束或终止它时,永久环境变量不会丢失。
由于最新的macOS使用Zsh shell,所以我们可以将环境变量添加到~/.zshrc or 〜/.zshenv当前用户的文件。例如,创建 JAVA_HOME 环境变量并更新 PATH 以包含 JAVA_HOME。编辑~/.zshenv
并添加以下值;
〜/.zshevn
export JAVA_HOME=$(/usr/libexec/java_home -v11)
export PATH="$JAVA_HOME/bin:$PATH"
第一行是设置 JAVA_HOME 环境变量,第二行是将 Java bin 目录作为前缀路径环境变量.
macOS 10.15 之前的版本默认使用 Bash shell。该用户编辑 ~/bash_profile 以添加永久环境变量。