mac 环境变量

背景

明天就大年三十了,今天上班已经没有太多的心情好好工作了,想到自己从事大数据AI工作两年了都没有真正跑过spark任务,之前在百度跑过几个hadoop任务,简单的获取数据,计算特征,最近的项目上新同学的写的工程都是Scala实现,因为业务场景对实时性要求极高,需要在spark集群上跑,在这样的背景下我必须利用春节时间快速熟悉spark。
昨天装好了java-11,pyspark不支持,只能支持到java-8,今天装了java-8按网上的教程换了两个文件~/.bash_profile/etc/profile的环境变量:

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home
CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH:
export JAVA_HOME
export CLASSPATH
export PATH

在shell输入:java -version查看java版本,java-8并没有生效,进一步了解了mac的环境变量知识才解决问题。

问题解决

修改环境变量文件需要执行source /etc/profile或者./.profile或者source ./.bash_profile才能生效
修改~/.bash_profile文件需要重启机器才能生效

了解mac环境变量

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

  • /etc/profile (全局建议修改这个文件)

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

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

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

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

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

特别说明

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章