原由

我使用Go来开发程序,安装govendor之后发现命令行中执行govendor无效,需要将govendor所在的路径添加到PATH环境变量中。我的软件环境是iTerm2+zsh。

Mac中的环境变量介绍

Mac系统的环境变量,加载顺序为:

/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc

当然/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取,如果~/.bash_profile文件存在,则后面的几个文件就会被忽略不读了,如果~/.bash_profile文件不存在,才会以此类推读取后面的文件。~/.bashrc没有上述规则,它是bash shell打开的时候载入的。

全局设置,一般不建议修改/etc/profile和/etc/bashrc 文件,而去修改/etc/paths文件。如果想要对所有用户都生效,则可在/etc/paths文件的最后一行加上自己的app路径。优先级也是最高的。

单个用户生效的配置,一般都是修改~/.bash_profile文件,若bash shell是以login方式执行时,才会读取此文件。该文件仅仅执行一次!

如果没特殊说明,设置PATH的语法都为:

export PATH=<PATH 1>:<PATH 2>:<PATH 3>:.....:<PATH N>:$PATH

推荐设置用户个人自己的环境变量,尽量不破坏Mac系统全局变量

注意:Linux 里面是.bashrc,而Mac是.bash_profile

操作实录

vim ~/.bash_profile

添加下面的一行

export PATH=/Users/tao/go/bin:$PATH

使用下面的命令使之生效

source ~/.bash_profile

查看是否生效

echo $PATH

由上图可见,我在命令行执行govendor -h已经可以正常显示结果了。

需要注意的是,上面的设置默认使用bash,如果你在Mac上使用的是zsh等shell工具,需要再做如下配置,来达到环境变量设置的永久生效。

vim ~/.zshrc
在开头添加
if [ -f ~/.bash_profile ]; then
   source ~/.bash_profile
fi
使用下面的命令使之立即生效
source ~/.zshrc

原因解释如下:
bash的配置文件是.bashrc, zsh的配置文件是.zshrc,当你使用zsh作为默认shell工具的时候,它启动时并不会加载bash的这两个配置文件.bashrc和.bash_profile,而只会
加载自己的配置文件.zshrc,为了让我们的配置文件生效,只能在.zshrc中添加上面的配置。

如果不做上述设置,你就会发现,只有当你每次source ~/.bash_profile后才会生效,下次重新打开zsh窗口,还是不生效。

参考文献

[1].https://superuser.com/questions/866683/iterm-zsh-not-reading-bashrc-or-bash-profile

在Mac上设置环境变量并永久生效的方法相关推荐

  1. MongoDB之在mac上设置环境变量

    要下班,简介做个笔记. 设置环境变量 在基于unix/linux的操作系统下进行程序开发,使用环境变量将会方便.通过设置环境变量将可以在任意目录通过输入程序名来执行设定目录下的程序.不需要通过cd将工 ...

  2. mac 上的环境变量配置

    2019独角兽企业重金招聘Python工程师标准>>> mac 上的环境变量配置.之前play的环境变量配置,是查看百度的.但是现在却一时百度不到.我还百度了java的环境变量配置. ...

  3. 在Mac OS X Lion上设置环境变量

    当有人说"编辑您的.plist文件"或"您的.profile"或" .bash_profile"等时,这让我感到困惑. 我不知道这些文件在哪 ...

  4. Mac 可设置环境变量的位置、查看和添加PATH环境变量

    转:http://elf8848.iteye.com/blog/1582137 Mac 启动加载文件位置(可设置环境变量) -------------------------------------- ...

  5. Ubuntu设置环境变量并立即生效

    Ubuntu Linux系统包含两类环境变量:系统环境变量和用户环境变量.系统环境变量对所有系统用户都有效,用户环境变量仅仅对当前的用户有效. 修改用户环境变量 用户环境变量通常被存储在下面的文件中: ...

  6. mac 电脑android环境变量设置,mac上Android环境变量配置

    1.AndroidSDK路径查看 (1)AndroidStudio: 菜单栏AndroidStudio > Preferences > Appearences&Behavior & ...

  7. macbook配置java环境变量_配置mac上Java环境变量

    从ubuntu上转到mac上来做开发,一切配置都要重新开始 1. 下载jre http://www.oracle.com/technetwork/java/javase/downloads/index ...

  8. python环境变量的配置mac_在mac上python环境变量配置

    mac上Python安装和修改Python默认路径遇到的问题 参考地址:https://www.cnblogs.com/bahcelor/p/8278711.html ----简要笔记---- (一) ...

  9. linux安装jdk配置环境变量之永久生效

    首先,官网下载jdk包 下载地址:https://www.oracle.com/cn/java/technologies/javase/javase8-archive-downloads.html 下 ...

最新文章

  1. 用计算机采集卡检测压力传感器信号故障,计算机联网检测系统应用研究
  2. 高性能分布式计算与存储系统设计概要(上)(转)
  3. 第三次学JAVA再学不好就吃翔(part12)--基础语法之for循环语句
  4. 在IDEA中将SpringBoot项目打包成jar包的方法 不要用 在上面有可以用的
  5. 大学计算机二级的试题,大学计算机二级考试试题及其答案_..doc
  6. 索引法则--最佳左前缀法则
  7. 【CCCC】L2-025 分而治之 (25分),图的度数,使节点独立的方案
  8. Java 8 Base64 编码解码
  9. (日常搬砖)python3.7内置调试器PDB
  10. 跟着百度学PHP[3]-PHP中结构嵌套之循环结构与条件结构嵌套
  11. Github上托管项目
  12. 开源机器学习项目的简单介绍
  13. Boss直聘招聘数据分析岗位小分析
  14. 重新定义RPA,重塑智能生产力 | 云扩科技RPA论坛成功举办
  15. 道创峰会2020:伯克利学生分享会|快来线下碰一碰
  16. 酷派android最新版本,酷云手机版下载
  17. 一名理想主义的程序员
  18. Pr:Lumetri 范围
  19. 原画师需要用到什么工具?绘画工具大全!
  20. 通过云端自动生成openmv的神经网络模型,进行目标检测

热门文章

  1. Go 学习笔记(50)— Go 标准库之 net/url(查询转义、查询参数增/删/改/查、解析URL)
  2. nonatomic, retain,weak,strong用法详解
  3. 大型企业门户网站设计开发一般性原则和建议
  4. java qq协议 c#,C# WebQQ协议群发机器人(三)
  5. oracle层次查询用处,Oracle描述层次查询(hierarchicalquery)
  6. c语言折半查找法程序,C语言基础:二分查找法演示代码
  7. oracle十六进制转数字,16进制如何转化为10进制?
  8. php把单词切割成数组,PHP – 将单词分解为数组
  9. php键顺序初始化,Java类中各成员初始化的顺序
  10. linux 存储映射lun 给_如何在 Linux 上扫描/检测新的 LUN 和 SCSI 磁盘 | Linux 中国