mac中环境变量的配置

引:在使用ubuntu和mac这么久之后,环境变量的几个文件还弄不清楚,真是汗颜,这里记录一下,下次不会乱改。

环境变量的作用

  1. 使用场景
    在命令行直接通过命令执行程序,这些程序就多了,最常见就有java,npm,maven,git,如果我们不配置环境变量的话,就需要到程序的安装目录去执行相关命令,大家都会感觉超级麻烦,加入要使用多个程序的话,要么去切换目录,要么就多开几个命令行窗口。顿时就会感觉超级无奈有么有?
  2. 具体作用
    配置完程序的环境变量之后就可以无所欲为了,可以在任何目录下直接执行我们所要的程序了,是不是顿时感觉方便许多,基本上所有人都知道吧。

环境变量的配置

单次环境变量配置

假如你出了个意外,在命令行中突然不能使用各种命令了,也没事,至少接下来可以让你短暂的使用一些命令,命令行窗口关闭之后就失效了,我们要做的只是直接在命令行中输入:

export PATH=/usr/bin:/usr/sbin:/bin:/sbin

当然后面你也能够添加一些你自己想要使用的程序命令。

环境变量文件配置

  1. 环境变量的写法

    export PATH=$JAVA_HOME/bin:$PATH
    
  2. 环境变量文件优先级

    /etc/profile /etc/bashrc /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc
    其实后三个文件我也没怎么看到过,主要讲一下前面三个

  3. 环境变量文件详解
  • /etc/profile:全局配置文件,不管是哪一个用户登录,都会读取该文件(但是超级不建议修改,容易出现大问题,想试试什么大问题,自己体会)
  • /etc/bashrc 全局配置文件,bash shell执行时,不管是何种方式,都会读取此文件(一般在这个文件中添加系统级环境变量)
  • ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!(一般在这个文件中添加用户级环境变量)
  1. 立即生效环境变量配置

    source ~/.bash_profile
    

软连接

自己一开始也会特别的惊讶,自己在mac上没有设置环境变量有的时候也可以直接就访问到了某些文件。这个是为什么呢?答案是用了软连接。

查看加载文件

rexdeMacBook-Pro:etc rex$ cat /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

然后就可以去看这些文件夹下面的东西了,弄不清楚也没关系,其实就是软链接。开机后,mac会自动加载paths文件下面的这些目录。在这些文件夹下面建立软连接,可以达到同样的效果(日后学习)。

软连接查看

在拥有软连接的目录下使用下面命令

ls -li


406876 lrwxr-xr-x   1 root   wheel        73  7  9  2016 jar -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jar
406877 lrwxr-xr-x   1 root   wheel        79  7  9  2016 jarsigner -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jarsigner
406878 lrwxr-xr-x   1 root   wheel        74  7  9  2016 java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
406879 lrwxr-xr-x   1 root   wheel        75  7  9  2016 javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
406880 lrwxr-xr-x   1 root   wheel        77  7  9  2016 javadoc -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javadoc

建立软连接

等自己看了linux的相关知识再来说吧。

总结

希望下次自己再也不要因为环境变量配置错出各种问题了,thanks god!

参考:Mac 中环境变量的配置和理解