shell登入模式及其相應設定檔

來源:互聯網
上載者:User

  參考《linux命令、編輯器與shell編程》(清華大學出版社)

  當啟動shell時,它將運行開機檔案來初始化自己。具體運行哪個檔案取決於該shell是登陸shell還是非登陸shell的互動方式(比如通過bash),又或者是一個非互動式shell(用來執行shell指令碼)。要執行開機檔案中的命令,使用者就必須具備讀的許可權,而一般的Linux發行版本都會把對應的命令放在一些開機檔案中。

 1:互動式登陸shell

     互動式登陸shell指的是當使用者登入系統時所用的那個shell(可以預設指定,如bash shell)。登入shell 將尋找幾個不同的開機檔案來處理其中的命令, bash shell 處理檔案的順序如下:

    /etc/profile         shell首先執行/etc/profile中的命令。設定這個檔案後,可以為系統內所有的bash使用者建立預設的特徵(不同版本的Linux在此檔案放置的命令不盡相同);

   ~/.bash_profile、~/.bash_login、~/.profile     然後shell依次尋找這些檔案,並執行它找到的第一個檔案中的命令。可以將命令放在這些檔案中,以重寫/etc/profile檔案中預設的設定;

  ~/.bash_logout    當使用者登出時,bash執行檔案~/.bash_logout中的命令,這個檔案包含了退出會話時執行的清理命令,如:刪除臨時檔案等;

 

2:互動式非登陸shell

      互動式非登陸shell指的是如果啟動了一個bash shell 而沒有等錄系統(如在CLI 提示符中鍵入bash),則啟動了一個互動式非登入shell。互動式非登入shell並不執行前面提到的開機檔案中的命令,然而互動式非登陸shell從登入shell繼承了由這些開機檔案設定的shell變數。

     /etc/bashrc    儘管不是通過bash直接調用,但許多~/.bashrc檔案調用/etc/bashrc。這種設定使得超級使用者可以為系統內的非登陸shell建立預設屬性。

      .bashrc           互動式非登陸shell執行~/.bashrc檔案中的命令,而登陸shell的開機檔案(如.bash_profile)通常會運行這個檔案。這樣,登陸shell和非登陸shell都可以運行.bashrc中的命令了。

 

3:非互動式shell

       非互動式shell指的是以shell script(指令碼)方式運行。在這種模式在運行時shell 並不與使用者進行互動(除非在運行時需要使用者指定運行參數),而是讀取存放在檔案中的命令並執行它們。當它讀到檔案的結尾,shell 也就終止了。這些shell從登陸時就繼承了由這些開機檔案設定的shell變數。

       BASH_ENV   非互動式shell尋找環境變數BASH_ENV(或者當作為sh調用時為的ENV),並執行由該變數命名的檔案中的命令。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.