(轉 原創)BASH啟動指令碼及其啟動順序

2022-08-24 11:18:15 字數 653 閱讀 2621

登入linux後,bash要讀取幾個檔案,這些檔案(啟動指令碼檔案)用來定義bash環境,如果希望建立標準的別名,或者希望設定各種shell變數,就應該在bash啟動檔案中進行設定。這幾個檔案是

/etc/profile

~/.bash_profile

~/.bash_login

~/.profile

~/.bashrc

bash有三種常見的啟動方式:

登入互動式,即從字元終端登入或在x window中啟動終端視窗。bash啟動過程中首先讀取檔案1,然後按順序讀取檔案2-4中遇到的第乙個檔案,啟動後讀取並執行檔案5,前面檔案的設定會被後面檔案的設定所覆蓋。通常檔案1中設定系統環境變數,檔案2-4設定使用者自定義的環境,檔案5設定登入後執行的程式。

非登入互動式,即從其它shell或bash自身啟動bash。這時檔案1-4都不被讀取,唯一的啟動檔案是~/.bashrc。

非互動式,即執行shell指令碼。這時所有的啟動指令碼檔案都不執行,但如果定義了系統環境變數env,則env的值作為啟動指令碼檔名首先執行。在前兩種情況下,如果定義了環境變數env,則首先讀取env指定的檔案,然後按順序讀取前述指令碼檔案。

直接su 使用者名稱 不加- 屬於第二種情況 非登入互動式  只執行乙個檔案~/.bashrc;

su - 使用者名稱 屬於第一種情況

bash啟動指令碼

啟動指令碼是bash啟動時自動執行的指令碼。使用者可以把一些環境變數的設定和alias umask設定放在啟動指令碼中,這樣每次啟動shell時這些設定都自動生效。思考一下,bash在執行啟動指令碼時是以fork子shell方式執行的還是以source方式執行的?啟動bash的方法不同,執行啟動指令...

bash啟動指令碼

啟動指令碼是bash啟動時自動執行的指令碼。使用者可以把一些環境變數的設定和alias umask設定放在啟動指令碼中,這樣每次啟動shell時這些設定都自動生效。思考一下,bash在執行啟動指令碼時是以fork子shell方式執行的還是以source方式執行的?啟動bash的方法不同,執行啟動指令...

關於 bash 啟動指令碼

shell 程式 bin bash 以下以 shell 稱呼 使用了乙個啟動檔案集合,來幫助創造乙個執行的環境。每乙個檔案都有特殊的功用並對登入和互動環境有不同的影響,有的檔案還能使登入與互動環境有所不同。放在 etc 目錄下的一些檔案提供了全域性設定。如果相類似的設定檔案出現在某個使用者起始資料夾...