经常性的,开发中需要安装app包,并将对应app的运行目录添加到环境变量PATH中。但MAC下的path环境变量的设置方式到底有几种呢?各自发挥作用的优先级顺序又是如何呢?每次都是百度、google来找这个问题的答案,很费事。在此,统一总结下path环境变量的设置及各自作用的优先级。
首先,说明下MAC系统的环境变量主要由下面几个文件和文件夹所决定,并且他们的加载顺序如下:
1)/etc/profile/ ---> 2) /etc/paths ---> 3) /etc/bashrc ---> 4) ~/.bash_profile 或 ~/.bashrc ---> 5) ~/.bash_login ---> 6) ~/.bash_profile
其中,/etc/profile, /etc/paths, /etc/bashrc 是系统级别配置文件,系统启动就会加载,后面几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取,如果~/.bash_profile文件存在,则后面的几个文件就会被忽略不读了,如果~/.bash_profile文件不存在,才会以此类推读取后面的文件。~/.bashrc没有上述规则,它是bash shell打开的时候载入的。对此,修改前2个,需要ROOT权限。而且修改是全局的。一般不建议修改/etc/profile和/etc/bashrc 文件,而去修改/etc/paths文件,其内容如下:
下面说下怎么添加自己app到path环境变量中。
1)全局设置:
一般不建议修改/etc/profile和/etc/bashrc 文件,而去修改/etc/paths文件。如果想要对所有用户都生效,则可在/etc/paths文件的最后一行加上自己的app路径。优先级也是最高的。此外,我们还可以通过在/etc/paths.d 目录下添加对应的app名称文件来增加对应的路径,假设要添加mysql运行路径到path下,可这么做:
1.创建一个文件:
sudo touch /etc/paths.d/mysql (名称就是要执行的app名称)
2.用 vim 打开这个文件(如果是以 open -t 的方式打开,则不允许编辑):
sudo vim /etc/paths.d/mysql
3.编辑该文件,键入mysql的实际安装后的运行路径并保存(关闭该 Terminal 窗口并重新打开一个,就能使用 mysql 命令了)
/usr/local/mysql/bin (这里必须写上对应的运行目录,否则就找不到)
这样就可以自己生成新的文件,而不用把变量全都放到 paths 一个文件里,方便管理。
2)单个用户生效的配置
一般都是修改~/.bash_profile文件(注:Linux 里面是 .bashrc 而 Mac 是 .bash_profile)
若bash shell是以login方式执行时,才会读取此文件。该文件仅仅执行一次!
设置环境变量:
export PATH=/usr/local/mysql/bin : $PATH
注意:上面是以冒号:间隔,千万别写错了。
网上大多数都是这种方式来修改,在此就不详述了。