設定的系統環境變數不成功 MAC

殷老實發表於2016-07-11

背景: 最近在學習Hadoop,那麼首先需要做的是配置環境, 然後在配置HADOOP_HOME和PATH的時候發現編輯的~/.bashrc 檔案中的環境變數並沒有配置上去。


解決辦法: 編輯~/.bash_profile 檔案,在這個檔案中加上你想要配置的環境變數


為什麼這樣?

首先來了解幾個概念,1. interactive shell (互動式shell)和non-interactive(非互動式 shell) shell, 

2. login shell( 登入shell) 和non-login( 非登入shell) shell


1. interactive shell (互動式shell)和non-interactive(非互動式 shell) shell: 簡而言之,就是如果你和shell有互動那麼就是前者,否則就是後者。

2. login shell( 登入shell) 和non-login( 非登入shell) shell: 需要輸入密碼登入shell的就是login否則就是non-login,值得注意的是: linux系統下,當我們開機的時候如果需要輸入密碼,那麼就是login shell,但是當我們再開啟terminal 的時候,這時候並不需要輸入密碼,那麼就是 non-login shell;  mac下是個例外,即使開啟terminal 不需要輸入密碼,它還是 login shell.


以上不同的模式有什麼影響嗎?

當然會。 結論是這樣: login shell(包括interactive 和non-interactive),當在這種情況下,系統會依次執行  ~/.bash_profile     ~/.bash_login      ~/.profile這三個配置檔案

但是在non-login下只會讀取  ~/.bashrc     等等。



相關文章