【Mac】Mac下配置zsh环境变量
在Mac
的使用中过程中,有许多需要增加环境变量的情况。比如配置go
的私有仓库GOPRIVATE
,以及校验服务器GOSUMDB
。按照习惯我们都会搜索一下 “mac下如何修改环境变量”。
1.问题-环境变量不生效
mac
中默认使用的是zsh
终端,按照一般的修改环境变量的方法:
vim ~/.bash_profile
export GOSUMDB=sum.golang.google.cn
export GOPRIVATE=git.querytest.com #模拟
wq
后,执行
source ~/.bashrc
发现环境变量确实写到.bash_profile
文件里面了,通过source ~/.bashrc
也确实生效了,但是一旦关闭这个执行的终端后:
go env
GOSUMDB=""
GOPRIVATE=""
没有生效。
2.mac的环境变量加载顺序
Mac系统的环境变量,加载顺序为:
/etc/profile
/etc/paths
/etc/paths.d/
~/.bash_profile
~/.bash_login
~/.profile
~/.bashrc
-
/etc/profile
:系统级的,系统启动即加载; -
/etc/paths
:系统级的,系统启动即加载; -
/etc/paths.d/
:系统级的,系统启动即加载; -
后面几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取:
- 如果**
~/.bash_profile
**文件存在,则后面的几个文件就会被忽略不读了, - 如果**
~/.bash_profile
**文件不存在,才会以此类推读取后面的文件。
- 如果**
-
**
~/.bashrc
**没有上述规则,它是bash shell
打开的时候载入的。 -
修改用户的环境变量,只对当前用户有效, ~/.bash_profile与~/.bashrc都可以。
3.问题解决
如上所述,mac
中默认使用的是zsh
终端,所以上面的的环境变量增加方法只适用于bash
,在zsh
中不生效。
解决方案
在~/.zshrc
中写入一样的环境变量:
vim ~/.zshrc
export GOSUMDB=sum.golang.google.cn
export GOPRIVATE=git.querytest.com #模拟
source ~/.zshrc
网上还有一种方法(本人没有尝试,不保证成功),在~/.zshrc
里面链接bash_profile
文件:
source .bash_profile
- 原文作者:Garfield
- 原文链接:http://www.randyfield.cn/post/2021-06-14-mac-zsh-env/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。