mac 查看和设置 shell 环境变量需区分临时与永久:用 env/printenv 查当前已导出变量,set | less 查未导出变量和函数;临时用 export var=value(仅本会话生效),永久则编辑 ~/.zshrc(zsh)或 ~/.bash_profile(bash)并 source 加载,注意 path 拼接勿覆盖、gui 应用需额外配置。
mac 查看和设置 shell 环境变量,关键在于分清“当前会话临时生效”和“重启终端也保留”的区别,同时确认你用的是 zsh(macos catalina 及之后默认)还是 bash。操作不复杂,但容易忽略加载顺序和文件作用域。
先确认你用的是什么 Shell
打开终端,运行:
echo $SHELL
结果是 /bin/zsh → 主要编辑 ~/.zshrc 或 ~/.zsh_profile;
结果是 /bin/bash → 主要编辑 ~/.bash_profile。
快速查看当前所有环境变量
直接在终端输入以下任一命令:
- env:列出所有已导出的环境变量(PATH、HOME、USER 等),按字母排序,最常用
-
printenv:不加参数时效果同
env;加变量名如printenv PATH,只输出值,适合脚本里取值 - set | less:显示更全的信息,包括未导出的 shell 变量和函数,适合排查“设了却没生效”的问题
临时设置(仅当前终端有效)
比如想马上让系统认出某个新工具:
export PATH="/your/tool/bin:$PATH"
再执行 echo $PATH 就能看到它已加入。关掉这个终端,设置就消失。
永久设置(重启终端也生效)
以添加 Homebrew 路径为例(zsh 用户):
- 用文本编辑器打开配置文件:
nano ~/.zshrc - 在文件末尾新增一行:
export PATH="/opt/homebrew/bin:$PATH" - 保存退出(nano 中按
Ctrl+O → Enter → Ctrl+X) - 立即生效:
source ~/.zshrc - 验证:
echo $PATH(看是否包含新路径)
which brew(看是否指向正确位置)
注意几个常见坑
- 别把 PATH 写成
PATH="/new/bin"——这是覆盖,不是追加;必须带$PATH拼接 - GUI 应用(如 VS Code、PyCharm)不读
.zshrc,需额外配置 launchd 才能继承 PATH - 多个配置文件都改 PATH 时,后加载的会覆盖前面的,zsh 登录 shell 加载顺序是:
/etc/zprofile → ~/.zprofile → ~/.zshrc - 系统级路径还受
/etc/paths和/etc/paths.d/影响,可用/usr/libexec/path_helper -s查看系统默认拼接逻辑











