一文徹底搞懂linux全局環境變量生效順序

一、前言
在登錄linux系統並啓動一個bash shell時,默認情況下bash會在若干個文件中查找環境變量的設置。這些文件可統稱爲系統環境文件。
⭐️bash檢查環境變量文件的情況取決於系統運行shell的方式

二、系統運行Shell的方式
1、通過系統用戶登陸後默認運行的shell
2、非登錄交互式運行shell
3、執行腳本運行非交互式shell

三、啓動順序示意圖以及知識點說明
一文徹底搞懂linux全局環境變量生效順序

第一種(通過系統用戶登陸):
1)當用戶登錄系統後,首先加載/etc/profile全局環境變量(這也是linux默認的shell主環境變量,每個用戶登錄都會加載這個文件)
2)接着加載/etc/profile.d/目錄下的腳本文件,自動定義開機啓動的腳本可以放在這個目錄下
3)緊接着加載$HOME/.bash_profile(這是用戶個人的環境變量文件)
4)在$HOME/.bash_profile文件中,會加載$HOME/.bashrc(也是用戶個人的環境變量文件,包含在$HOME/.bash_profile中),如果有環境變量就加載,如果沒有就不加載
5)在$HOME/.bashrc文件中,又會加載/etc/bashrc(這是全局環境變量),同理,有環境變量就加載,沒有就不加載

第二種(用戶的shell不是登錄時啓動的)
比如說:手動在終端執行“bash”命令,又或者不需要輸入密碼的登錄以及遠程SSH連接情況
⭐️這樣的方式,只會加載$HOME/.bashrc(用戶個人的環境變量文件),緊接着去加載/etc/bashrc(全局環境變量文件)
因此,如果希望在非登錄Shell下也可以讀取到設置的環境變量,就需要把變量設定在$HOME/.bashrc(如果想僅僅個人生效,設定在這個文件)或者/etc/bashrc(如果想全部的用戶都能生效,設定在這個文件)

四、終結
用戶環境變量配置在:$HOME/.bashrc文件中
全局環境變量配置在:/etc/bashrc文件中
不管用戶還是全局的環境變量,建議不要放在$HOME/.bash_profile和/etc/profile中

五、我是大表哥,我爲自己帶鹽,以後會不定時更新腳本,請支持正版,盜鏈可恥,
我的博客是:http://blog.51cto.com
各位朋友有什麼不懂以及認爲有什麼錯誤之處,請在下方留言,謝謝!

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