一.首先需要了解

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. vert.x学习(二),使用Router来定义用户访问路径

    这里需要用到vertx-web依赖了,依然是在pom.xml里面导入 <?xml version="1.0" encoding="UTF-8"?> ...

  2. Spark1.6.2 java实现读取json数据文件插入MySql数据库

    public class Main implements Serializable { /** * */ private static final long serialVersionUID = -8 ...

  3. sprint3总结

    经过了半个学期以来的sprint冲刺,并且充分学习了android开发后对项目有了更加充分的认识理解,开发速度自然而然就上来了,没有了上一个学期的懵懂,虽然开发起来还是比较困难,但是胜在有同组组员帮忙 ...

  4. Warning: simplexml_load_string(): Entity: line 432: parser error : EntityRef: expecting ';'

    Warning: simplexml_load_string(): Entity: line 432: parser error : EntityRef: expecting ';' characte ...

  5. 【OpenWRT】【RT5350】【一】OpenWrt开发环境搭建

    [宿主机构建] 本人电脑配置如下: CPU: intel 酷睿 i3 3.3G 双核 内存: 金士顿 8G 硬盘:希捷 1TB 7200rpm 操作系统:win7  旗舰版 64位 OpenWrt是在 ...

  6. async 和 await小结

    三大返回值: 返回类型 - Task<TResult> 返回类型 - Task 返回类型 - void 当你添加 async 关键字后,需要返回一个将用于后续操作的对象,请使用 Task& ...

  7. ReactiveX编程范式

    ReactiveX http://reactivex.io/ An API for asynchronous programmingwith observable streams The Observ ...

  8. js数字位数太大导致参数精度丢失问题

    最近遇到个比较奇怪的问题,js函数里传参,传一个位数比较大,打印arguments可以看到传过来的参数已经改变. 然后查了一下,发现确实是js精度丢失造成的.我的解决方法是将数字型改成字符型传输,这样 ...

  9. DNS CNAME的一些细节

    1, 概述 DNS中的CNAME可以减轻运维压力,使得已有的DNS配置具有一定的灵活性和可扩展性.本文对CNAME中的一些细节做阐述, 使DNS服务器的运维人员和开发人员能合理地使用CNAME. 2, ...

  10. Css定位之absolute_慕课网课程笔记

    absolute和float 绝对定位和浮动有相似之处,即都有破坏性和包裹性,破坏性是指其会导致包裹自身的复原塌陷,包裹性是float的天赋技能,对于绝对定位来说,其会包括子元素 越独立越强大 1.去 ...