1. 第一步:查看当前正在使用的 Shell
打开终端(Terminal),输入以下命令并回车:
echo $SHELL
- 如果输出
/bin/zsh:你使用的是 Zsh(macOS 默认)。 - 如果输出
/bin/bash:你使用的是 Bash。 - 如果输出
/bin/fish或其他:你使用的是对应的 Shell。
2. 第二步:根据 Shell 类型确定生效文件
情况 A:如果是 Zsh (/bin/zsh)
Zsh 的加载顺序比较复杂,但对于设置环境变量(如 MAVEN_HOME, JAVA_HOME, PATH),主要关注以下两个文件:
~/.zprofile- 生效时机 :仅在登录式 Shell(Login Shell)启动时读取一次。
- 典型场景:当你通过 SSH 远程登录,或者在 macOS 图形界面打开一个新的终端窗口时(通常模拟为 login shell)。
- 用途:适合设置那些不需要频繁变动、只需在会话开始时加载一次的环境变量。
~/.zshrc(最常用)- 生效时机:每次打开一个新的终端标签页或窗口时都会读取。
- 典型场景 :日常开发中,每敲一次
cmd + t新建标签页,这个文件都会被执行。 - 用途 :强烈推荐将 Maven、Java、Node 等开发工具的环境变量配置在这里 。因为如果你只在
.zprofile配置,有时候在某些子进程或非登录模式下可能不生效。
结论 :对于 Mac 用户配置 Maven,优先修改
~/.zshrc。如果该文件不存在,可以手动创建。
情况 B:如果是 Bash (/bin/bash)
如果你特意切换回了 Bash,或者是在较旧的 macOS 系统上:
~/.bash_profile- 生效时机:登录式 Shell 启动时读取。
- 用途:macOS 下 Bash 的主要配置文件,通常用于设置环境变量。
~/.bashrc- 生效时机:非登录式交互式 Shell 启动时读取。
- 注意 :在 macOS 的默认 Bash 配置中,
.bash_profile通常不会自动加载.bashrc。很多用户会在.bash_profile中加入source ~/.bashrc来统一管理。
结论 :对于 Bash 用户,通常直接修改
~/.bash_profile即可。
3. 如何验证配置是否生效?
假设你在配置文件中添加了 export TEST_VAR="hello",保存文件后,必须重启终端 或执行 source 命令才能生效。
验证步骤:
- 重载配置 (无需关闭终端):
- 如果是 Zsh:
source ~/.zshrc(或者source ~/.zprofile) - 如果是 Bash:
source ~/.bash_profile
- 如果是 Zsh:
- 检查变量: 输入以下命令查看变量值:
echo $TEST_VAR
# 如果输出 hello,说明配置成功
总结建议
对于现在的 macOS 用户:
4. 执行 echo $SHELL 确认是 zsh。
5. 打开或创建 ~/.zshrc 文件。
6. 在里面写入你的 Maven 配置(例如 export MAVEN_HOME=/opt/homebrew/Cellar/maven/... 和 export PATH=$MAVEN_HOME/bin:$PATH)。
7. 执行 source ~/.zshrc 使其立即生效。