Mac环境变量设置位置

Anonim

在命令行中,环境变量是为当前shell 定义的,并由任何正在运行的命令或进程继承。他们可以确定从默认 shell、PATH、用户主目录到终端仿真类型、当前工作目录、历史文件所在位置、语言和本地化设置的任何内容,并进一步包括 shell 变量,其中包括所有内容从自定义到 bash 提示符、彩色 ls 输出、终端外观的更改、别名等等。

让我们来看看如何列出环境变量和shell 变量,然后介绍如何在Mac OS X 的命令行中设置和添加新的环境变量。我们将针对bash 和zsh shell 介绍这一点。

在 Mac OS X 上的 bash 中显示当前环境和 Shell 变量

要快速获取环境变量列表,可以在bash中使用以下命令:

printenv

要在zsh中列出环境变量,请使用以下命令:env

或可选:

echo $ENV_VAR

如果你想查看shell变量的完整列表,也可以使用'set'命令:

这些命令的输出可能很长,因此您可能希望通过 less 或 more 命令输出管道。

在macOS命令行中使用zsh设置环境变量

zsh shell通过zshenv文件设置环境变量,位于用户主目录:

~/.zshenv

因此,您可以通过使用nano、vim 等修改该文件或使用echo 来添加zsh 环境变量,如下所示:

echo 'export ENV_VAR=example' >> ~/.zshenv

例如:

echo 'JAVA_HOME=$(/usr/libexec/java_home)' >> ~/.zshenv

在Mac OS X命令行中使用bash设置环境变量

因为Mac默认使用bash shell,你可以在用户目录.bash_profile中设置环境变量,对于活跃的用户帐户,该文件的路径位于:

~/.bash_profile

如果你改变了你的shell或者你不确定你使用的是什么shell,你总是可以通过发出echo $SHELL命令来检查,它会显示正在使用的shell。我们假设您仍在使用 OS X 默认的 bash shell,因此我们将通过使用 nano 修改 .bash_profile 来添加新的环境变量——如果您愿意,您可以使用 vi、emacs 或其他文本编辑器,但为了简单起见,我们将介绍 nano。

首先在纳米文本编辑器中打开.bash_profile:

nano .bash_profile

您可以将环境变量和shell变量添加到新行中,如果.bash_profile文件中已经有数据,只需确保使用箭头键和根据需要返回密钥。

举个例子,假设我们要在.bash_profile 中设置JAVA_HOME 和JRE_HOME 环境变量,方法是在文件的新行中添加以下内容:

export JAVA_HOME=$(/usr/libexec/java_home) export JRE_HOME=$(/usr/libexec/java_home)

假设我们现在完成了,通过按下Control+o(这是水獭中的o)保存对.bash_profile所做的更改,然后通过按下Control+X退出nano

对环境变量所做的更改和添加将需要重新启动shell或生成新的shell。

在OS X中设置临时环境变量

值得一提的是,您还可以通过单独使用“导出”命令在 bash 中设置临时环境变量,尽管这些变量只会在当前 bash shell 保持活动状态时持续存在。例如,如果你想添加一个临时路径到 ~/bin/ 你可以使用下面的命令:

export PATH=$PATH:~/bin

同样,“export”命令本身运行且不包含在.bash_profile 中将只是一个临时设置,环境变量将不会持续存在,除非您将其添加到.bash_profile。

如果你真的想添加一个新的路径来使用,你几乎肯定应该通过将适当的导出命令添加到.bash_profile文件中。

超越 bash shell,如果您将终端应用程序的默认 shell 从 bash 更改为 tcsh、zsh、sh、ksh、fish 或任何其他替代 shell,您只需要为该特定 shell(.tschrc、.cshrc、.profile 等)修改适当的配置文件或 rc 文件。

Mac环境变量设置位置