一.首先需要了解

1>mac 一般使用bash作为默认shell
2>Mac系统的环境变量,加载顺序为:
  1、系统级别的
    /etc/profile
    /etc/bashrc
    /etc/paths
  2、用户级别的
    ~/.bash_profile (mac用的)
    ~/.bash_login
    ~/.profile
    ~/.bashrc (这个linux用的)
加载规则:
  <1>/etc/profile,/etc/bashrc和/etc/paths是系统级别的,系统启动就会加载
  <2>~/.bash_profile ,~/.bash_login ,~/.profile 是当前用户级的环境变量。按照从前往后的顺序读取
    如果~/.bash_profile文件存在,则后面的两个文件就会被忽略不读了,
    如果~/.bash_profile文件不存在,才会依次读取后面的两个文件
  <3>~/.bashrc没有上述规则,它是bash shell打开的时候载入的。
 
3>sudo vim ~/.bash_profile,如果没特殊说明,设置PATH的语法都为:
  #中间用冒号隔开
  export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>
  一般环境变量更改后,重启后生效。如果想立刻生效,则可执行下面的语句:$ source 相应的文件

实例分析

mac自带git和php,我自己用brew安装了git和php70
但是在没有配置环境变量的情况下 git版本是mac的, php版本是brew的
 
具体分析如下
首先明确,根据由先到后的原则,先找到就不继续了
 
1>cat /etc/paths里面的情况
 
 
2>我进入到 /usr/local/bin 文件夹下分别输入命令ls php* 和ls git*,然后查看版本
 
3>我们进入/usr/bin文件夹下分别输入命令ls php* 和ls git*,然后查看版本
 
 
4>我们继续来查找下brew安装的git命令在哪里 which git
 
总结:先在/usr/local/bin中寻找,再在/usr/bin中寻找,由此可知,为什么我的php是用brew安装的 而git是原生的
 
如果我们想要正确的选择版本,那么就在~/.bash_profile中加入以下的话,版本就对了(注意$PATH放在后面,会将你写的路径放在最终路径的最前面)
export PATH=/usr/local/Cellar/git/2.10.2/bin:$PATH
export PATH="$(brew --prefix homebrew/php/php70)/bin:$PATH"
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
 
输入$PATH
 
 
 

mac攻略(七) -- 环境变量PATH分析的更多相关文章

  1. mac攻略(4) -- 使用brew配置php7开发环境(mac+php+apache+mysql+redis)

    [http://www.cnblogs.com/redirect/p/6131751.html] 网上有很多文章都是错误的,因为是copy别人的,作者没有自己亲测,不仅不能给新手提供帮助,还会产生严重 ...

  2. 转载:(Mac)在bash和zsh配置环境变量path的几种方法

    参考文献 老习惯,列出本文参考或引用或转载的文档和博客,致以崇高的敬意,感兴趣的可以去看看 1.http://postgresapp.com/ 2.http://postgresapp.com/doc ...

  3. MAC OX 配置JDK环境变量

    大家在windows里面配置JDK环境变量很容易,但是如果要在mac里面配置JDK环境变量和windows里面有所不同,具体如下: 第一: mac OS里面自带jdk,不过是1.6的版本,现在很多人使 ...

  4. Mac下添加java环境变量

    2015年4月22号更新: 发现一个坑:最近发现有同事按照本文方式配置jdk环境变量一直不成功,后来发现他是使用了“Oh-My-Zsh”,配置文件的路径不是/etc/profile或~/.bash_p ...

  5. Mac下配置Maven环境变量

    Mac下配置Maven环境变量 1.先到Apache官网下载maven压缩包.下载地址:http://maven.apache.org/download.cgi 2.Maven是用Java开发的,所以 ...

  6. 配置JDK时环境变量path和JAVA_HOME的作用

    1.PATH环境变量.作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序.需要把jdk安装目录下的bin目录增 ...

  7. Linux系统下修改环境变量PATH路径的三种方法

    这里介绍Linux的知识,比如把/etc/apache/bin目录添加到PATH中有三种方法,看完之后你将学会Linux系统下如何修改环境变量PATH路径,需要的朋友可以参考下 电脑中必不可少的就是操 ...

  8. Linux 环境变量 $PATH

    我们知道查阅文件属性的指令 ls 完整文件名为:/bin/ls(这是绝对路径),那为什么可以在任何地方执行/bin/ls 这个指令呢?  为什么在任何目录下输入 ls 就一定可以显示出一些讯息而不会说 ...

  9. win7 64位系统装oracle11 提示环境变量path 值超过1023字符

    win7 64位系统装oracle10 提示环境变量path 值超过1023字符 1.提示环境变量path 值超过1023字符. 方案: 1.oracle安装文件,右键属性--设置兼容性--兼容XP ...

随机推荐

  1. mac eclipse 添加pydev插件 步骤

    前提:eclipse环境可以正常使用  python环境可以正常使用 1.下载pydev(http://www.pydev.org/)

  2. ACM集训的Day3 B。。。盲目搜索之DFS。。。

    milk 一.题目描述: gzp有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满牛奶的.有时,农民把牛奶从一个桶倒到 另一个桶中,直到被灌 ...

  3. axis2打包方式发布

    参照http://gao-xianglong.iteye.com/blog/1744557这篇文章,注意的是打包services.xml的时候要将它的上级目录meta-inf一起打包,放到axis2\ ...

  4. Contributing to the C++ Core Guidelines

    Contributing to the C++ Core Guidelines "Within C++ is a smaller, simpler, safer language strug ...

  5. jquery+ajax实现分页

    var curPage = 1; //当前页码 var total,pageSize,totalPage; //总记录数,每页显示数,总页数 getData(1); $("#pagecoun ...

  6. C# GMap下提供一个高德地图

    using System; using GMap.NET.Internals; using GMap.NET.Projections; namespace GMap.NET.MapProviders ...

  7. javascript中apply、call和bind的区别

    在JS中,这三者都是用来改变函数的this对象的指向的,他们有什么样的区别呢.在说区别之前还是先总结一下三者的相似之处:1.都是用来改变函数的this对象的指向的.2.第一个参数都是this要指向的对 ...

  8. Java里List取并集方法retainAll不能用来判断是否有重复数据!

    网上找的源码 public boolean retainAll(Collection<?> c){     boolean modified = false;     Iterator&l ...

  9. Android隐藏状态栏、导航栏

    Android隐藏状态栏.导航栏 private void hideStatusNavigationBar(){ if(Build.VERSION.SDK_INT<16){ this.getWi ...

  10. jquery 通过ajax FormData 对象上传附件

    之前上传附件都是用插件,或者用form表单体检(这个是很久以前的方式了),今天突发奇想,自己来实现附件上传,具体实现如下 html: <div>   流程图: <input id=& ...