天天看點

linux環境變量應該配置在哪裡?

為什麼寫這篇文章

長久以來,我一直搞不懂linux的環境變量到底應該配置在哪裡,很多時候要配置環境變量,也隻是網上一搜,随便找段指令來用,隻要能成功就覺得萬事大吉。但實際上如果不知其是以然,後面出問題了我也不知道怎麼解決,今天又遇到問題就是通過手動指令行能執行​

​java -jar​

​指令,但通過jenkins卻無法執行,一直提示找不到JDK。是以好好研究了關于環境變量的配置資訊,特此記錄,以備查閱。

bashrc與profile的差別

/etc/profile:為系統的所有使用者設定環境資訊,當使用者第一次登入時,該檔案被執行,并從​

​/etc/profile.d​

​​目錄的配置檔案中搜集shell的設定。在/etc/profile中添加環境變量後,如果沒有重新開機而是使用​

​source /etc/profile​

​編譯後隻能在目前終端生效,新開終端無效;

/etc/bashrc:為系統的所有使用者設定環境資訊,當bash shell被打開時,該檔案被讀取。

~/.bash_profile:每個使用者都可使用該檔案輸入專用于自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,它設定一些環境變量,然後執行使用者的.bashrc檔案。

~/.bashrc:該檔案包含專用于某個使用者的bash shell的bash資訊,當該使用者登入時以及每次打開新的shell時,該檔案被讀取。

總結

  1. 首先讀入的是全局環境變量設定檔​

    ​/etc/profile​

    ​​,然後根據其内容讀取額外的設定的文檔,如​

    ​/etc/profile.d​

    ​​和​

    ​/etc/inputrc​

  2. 然後根據不同使用者,去其家目錄讀取​

    ​~/.bash_profile​

    ​​,如果這讀取不了就讀取​

    ​~/.bash_login​

    ​​,這個也讀取不了才會讀取​

    ​~/.profile​

    ​,這三個文檔設定基本上是一樣的,讀取有優先關系
  3. 然後在根據使用者帳号讀取​

    ​~/.bashrc​

    ​​,至于​

    ​~/.profile​

    ​​與​

    ​~/.bashrc​

    ​的差別。
  • 都具有個性化定制功能
  • ~/.profile可以設定本使用者專有的路徑,環境變量,等,它隻能登入的時候執行一次
  • ~/.bashrc也是某使用者專有設定文檔,可以設定路徑,指令别名,每次shell script的執行都會使用它一次

繼續閱讀