標籤:
login shell與non-login shell:
login shell:取得shell時,需要完整的登入流程。如:tty1~tty6登入時,需要輸入使用者名稱和密碼。此時取得的shell就稱為login
shell。
non-login shell:取得shell時,不需要重複登入的過程。如:以X window登入linux,再以X的圖形介面啟動終端機,此時終端
機不需要再次的輸入使用者名稱和密碼,這個bash的環境就是non-login shell。
如:在原本的bash環境中再次下達bash這個命令,不要求輸入使用者名稱和密碼,這個bash環境就是non-login
shell。
interactive shell與non-interactive shell:
互動式shell:shell等待命令,然後執行命令。如:使用者登入--->執行命令......--->logout,shell也終止。
非互動式shell:shell讀取檔案中的命令,執行命令,讀到檔案最後一行,shell終止。如shell指令檔。
bashrc和profile都用於儲存使用者的環境資訊,bashrc用於儲存互動non-login shell,profile用於互動login shell。
/etc/profile, /etc/bashrc 是系統全域環境變數設定。有的系統已經沒有/etc/bashrc這個檔案。
~/.profile, ~/.bashrc 是使用者目錄下的私人環境變數設定。~/.profile只是登入的時候執行一次,~/.bashrc每次開啟一個shell
都會被執行。
login shell的初始執行過程:/etc/profile 這個檔案還自己調用 /etc/profiled/*sh /etc/inpurc等。
~/.bash_profile ~/.bash_login ~/.profile 依次調用各個檔案,有一個執行後,即停止。
non-login shell的初始執行過程:~/.bashrc 這個檔案自己調用 /etc/bashrc, /etc/bashrc再去調用 /etc/profiled/*sh等。
shell篇(一)