MAC系统环境变量

理论篇

Mac系统的环境变量,加载顺序为:

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

(etc目录下面的是系统级的配置,~目录下的是用户配置)
/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取.
如果/.bash_profile文件存在,则后面的几个文件就会被忽略不读了;
如果/.bash_profile文件不存在,才会以此类推读取后面的文件。
~/.bashrc没有上述规则,它是bash shell打开的时候载入的。

终端输入:echo $PATH,按回车执行命令查看当前变量值,

baixings-MacBook-Air:$ echo $PATH
/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

这里我们将修改PATH变量来测试。
输入:

sudo vi ~/.bash_profile

按回车输入密码后用vi打开用户目录下的bash_profile文件。一定要用sudo哦,否则没权限保存文件。

增加一行:

export PATH=$PATH:/test/bianliang

意思是在PATH变量后面加多一个目录/test/bianliang。
立即生效:

source ~/.bash_profile 

PATH的语法为如下

中间用冒号隔开

export PATH=$PATH::::------:

解释

/etc/paths (全局建议修改这个文件 )
编辑 paths,将环境变量添加到 paths文件中 ,一行一个路径
Hint:输入环境变量时,不用一个一个地输入,只要拖动文件夹到 Terminal 里就可以了。

/etc/profile (建议不修改这个文件 )
全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

/etc/bashrc (一般在这个文件中添加系统级环境变量)
全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件

.profile 文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置
使用注意:如果你有对/etc/profile有修改的话必须得重启你的修改才会生效,此修改对每个用户都生效。

./bashrc 每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
使用注意 对所有的使用bash的用户修改某个配置并在以后打开的bash都生效的话可以修改这个文件,修改这个文件不用重启,重新打开一个bash即可生效。

./bash_profile 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.(每个用户都有一个.bashrc文件,在用户目录下)
使用注意 需要重启才会生效,/etc/profile对所有用户生效,~/.bash_profile只对当前用户生效。

source ~/.bash_profile 或者 ./.profile 环境信息生效

我的系统环境变量如下[参考https://www.jianshu.com/p/c283e6ce4b08]
$sudo vim /etc/profile
Password:

1 # System-wide .profile for sh(1)
2
3 if [ -x /usr/libexec/path_helper ]; then
4 eval /usr/libexec/path_helper -s
5 fi
6
7 if [ "${BASH-no}" != "no" ]; then
8 [ -r /etc/bashrc ] && . /etc/bashrc
9 fi
10 #配置JAVA_HOME,此处根据自己的版本填写,路径都是一样的
11 JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home"
12 CLASS_HOME="$JAVA_HOME/lib"
13 #把java添加到环境变量。添加其他环境变量,只需要在末尾分号前,添加":",再加路径即可
14 PATH=".;$PATH:$JAVA_HOME/bin:/usr/local/bin"

你可能感兴趣的:(MAC系统环境变量)