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打開的時候載入的。

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