Linux

.profile .bash_profile 和 .bashrc 之間的功能區別是什麼

  • February 12, 2022

.profile,.bash_profile.bashrc文件之間的功能區別是什麼?

.bash_profile並且.bashrc特定於bash, 而.profile在沒有自己的特定於 shell 的配置文件的情況下被許多 shell 讀取。(.profile由原始 Bourne shell 使用。) .bash_profile.profile由登錄 shell 讀取,以及.bashrc; 子shell 只讀.bashrc。(在作業控制和現代視窗系統之間,.bashrc它本身並沒有得到太多使用。如果你使用screenor tmux,螢幕/視窗通常執行子shell而不是登錄shell。)

這背後的想法是一次性設置由.profile(或其特定於 shell 的版本)完成,每個 shell 的東西由.bashrc. 例如,您通常只希望在每個會話中載入一次環境變數,而不是在每次啟動會話中的子 shell 時讓它們受到攻擊,而您總是需要別名(不會像環境變數那樣自動傳播)。

其他值得注意的 shell 配置文件:

/etc/bash_profile(fallback /etc/profile) 在使用者.profile進行系統範圍配置之前讀取,同樣/etc/bashrc在子shell 中讀取(這個沒有備份)。包括 Ubuntu 在內的許多系統也使用/etc/profile.d包含 shell scriptlet 的目錄,這些腳本是.( source) -ed from /etc/profile; 這裡的片段是每個 shell 的,*.sh適用於所有 Bourne/POSIX 兼容的 shell 和適用於該特定 shell 的其他擴展。

引用自:https://serverfault.com/questions/261802