Mac环境变量小记
- 什么是环境变量呢?
计算机系统本身就有很多内部命令,比如cd、ls这样的shell命令,本质上这些命令都是一些存放在系统特定目录下的程序文件,系统找到这些文件后去执行这些程序,那么在shell中使用这些命令时系统如何去寻找这些命令的位置呢 ?系统也不是神,它必须得知道哪些地方是它需要去搜索寻找这些shell命令程序文件的地方,所以有一些默认的位置是确定下来的系统会寻找的位置,比如说/bin, /usr/bin,系统会在这些目录里寻找shell里出现的命令,找到后就会执行文件中写的程序。
那么对于第三方的程序呢,比如java,在安装这些程序之后如果想要在shell中使用这些程序呢?我们就得告诉系统我们的shell命令对应放在哪些目录里,这样系统就可以根据我们的提示去这些目录下寻找相应的文件、执行其中的程序,那么,我们完成这种提示的方法就是在系统特定位置加入文件来作为环境变量的存放文件,系统会在加载环境变量文件后知晓我们输入的shell命令对应的文件位置,实现第三方程序shell命令的寻找。
无论是OS X,还是Windows和Linux,环境变量起到的作用都是类似。
- 环境变量配置实例
我们以mysql为例来说明一下Mac下环境变量的配置方法。
下载mysql的包解压(或者安装)并将其根目录命名为mysql,最终移动到/usr/local目录下(或者安装到这个路径下)。
这个路径下的程序文件是不为系统shell所知的,因为我们系统的默认几个路径并不包括这个路径,因此如果这时在shell里输入mysql命令是无效的:
Jinhao-Mac:~ jinhao$ mysql
-bash: mysql: command not found
因此,我们得先个办法来让系统知晓我们想要加入shell的命令的存放位置,亦即创建我们环境变量的文件:.bash_profile(.表示隐藏文件):
Jinhao-Mac:~ jinhao$ touch .bash_profile
向其中加入我们的环境变量,也就是我们shell命令所处的路径:
export PATH="/usr/local/mysql/bin:$PATH"
意思是导入一个环境变量路径”/usr/local/mysql/bin:$PATH”到PATH变量中去,shell搜索的时候会去这个变量中保护的路径下面搜寻mysql文件是否存在,如果存在就执行mysql指令,这样就完成了这个第三方程序的shell命令执行过程。
除此以外,想要配置某些程序在终端中打开也可以做类似的配置,只要让shell知晓我们的命令所在的位置就好,比如设置Sublime Text在终端中直接打开的环境变量:
export PATH="/Applications/Sublime Text.app/Contents/SharedSupport/bin:$PATH"