Mac环境变量设置位置
在命令行中,环境变量是为当前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 文件。