Linux的環境變量配置在/etc/profile或/etc/profile.d/*.sh文件中的區別是什麼?

@


Linux的環境變量可在多個文件中配置,如/etc/profile,/etc/profile.d/*.sh,~/.bashrc等,下面說明上述幾個文件之間的關係和區別。

bash的運行模式可分爲login shell和non-login shell

login shell

  • 例如,我們通過終端,輸入用戶名、密碼,登錄系統之後,得到就是一個login shell。

non-login shell

  • 而當我們執行以下命令ssh hadoop103 command,在hadoop103執行command的就是一個non-login shell。

它們的區別

  • 這兩種shell的主要區別在於,它們啓動時會加載不同的配置文件。
  • login shell啓動時會加載/etc/profile
  • non-login shell啓動時會加載~/.bashrc
  • 但是無論在加載~/.bashrc(實際上是加載了~/.bashrc中的/etc/bashrc)或/etc/profile時,都會執行如下代碼片段:
    在這裏插入圖片描述
  • 所以,無論在login shell或non-login shell環境中,都會加載/etc/profile.d/*.sh文件,這樣我們爲什麼不自定義一個my_env.sh文件用來存放java或者其他的環境變量,一勞永逸!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章