Mac环境配置

什么叫环境

对于计算机来说,每当你给他一个命令,他会在环境变量指定的路径里寻找这个命令对应的文件夹,执行该文件夹里的文件以完成命令。当你安装好一个新的工具,你不添加环境,在运行命令的时候,指定路径,也是可以执行的,但是当你有很多工具或者懒得每次都要输入路径时,配置环境变量就能帮你简化很多工作。

查看环境变量

在shell中输入echo $PATH就可以查看当前已有的环境变量,比如我的:

1
/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/lulian/downloads/apache-maven-3.6.1/bin:/Applications/Wireshark.app/Contents/MacOS:/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin:/Users/lulian/downloads/apache-maven-3.6.1/bin:/Users/lulian/Library/Android/sdk/tools:/Users/lulian/Library/Android/sdk/platform-tools

每个变量之间都是冒号分隔的,比如我在非java目录下执行java命令,他会在环境变量里找到java的安装位置,然后找到对应的文件运行,就可以执行我的命令。

环境变量区分系统级别和用户级别,现在Mac的系统基本上用的都是bash,环境变量写在固定的文件中,/开头的都是系统级别的,~/都是用户级别的,以下按照优先级排序:

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

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

添加环境变量

一般我们都在用户级别的文件~/.bash_profile中添加环境变量,path的格式是这样的:

1
2
3
4
5
6
7
8
9
10
# 每个PATH之间都是使用冒号隔开的
export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>
# 或者
export PATH=${PATH}:<PATH 1>
export PATH=${PATH}:<PATH 2>

# export xxx可以理解为暴露一个名为xxx的变量,这里是PATH
# 当你想引用PATH变量时,就写成${PATH}

# 第一种将路径合并在一起,不方便删除,建议使用第二种,换行挨个设置

举个例子,你在文件里添加某个环境变量:

1
2
3
4
5
6
# 暴露一个名为TEST_PATH的变量,变量的值是某个路径
exoprt TEST_PATH=/Users/yeshou
# 将这个路径添加到PATH中,就是在现有的PATH后面加个冒号和TEST_PATH
export PATH=${PATH}:${TEST_PATH}
# 当然你也可以写成一行,但是两行看起来会比较清晰
export PATH=${PATH}:/Users/test

比如配置安卓环境:

1
2
3
4
5
# 暴露ANDROID_HOME变量指向你下载的安卓sdk文件夹路径
export ANDROID_HOME=/Users/lulian/Library/Android/sdk
# 告诉path到tools和platform-tools目录下去找可执行文件
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools

添加完毕以后需要source一下这个文件使它生效,然后你就可以打印查看ANDROID_HOME:

1
2
luliandeMBP-2:~ lulian$ echo $ANDROID_HOME
/Users/lulian/Library/Android/sdk