1、登錄shell
- 採用快捷鍵登錄進去的shell,所有采用名字和密碼登錄的shell
- 採用圖形化登錄進去的shell
- 採用su - 切換的登錄shell
2、非登錄shell
- 採用su登錄用戶的shell
- 打開的一個終端,即打開的一個控制界面
- 執行的腳本時採用非登錄shell方式執行的
- any、other、bash、instances其他一些bash情景
3、登錄shell於非登錄shell之間的區別
系統中存在着全局環境變量:/etc/profile (global)
系統中存在着用戶環境變量:~/.bash-profile (user)
系統中存在着這兩種shell。
但是這兩種shell僅在登錄shell中纔可以加載並且正常運行。
used for:Setting environment variables Running commands(eg mail-checker script)
系統中還存在着另外的環境變量“bashrc”
全局環境變量:/etc/bashrc(global)
用戶環境變量:~/.bashrc(user)
**這兩種環境變量可以運行在所有的bash shell中。
used for:setting local variables Defining aliases
/etc/profile ~/.profile /etc/bashrc ~/.bashrc
全局下/etc//bashrc的優先級最高。
優先級問題,在用戶家目錄下,.bash中有一個判斷語句,如果採用.bashrc時,執行過程中會先判斷全局/etc/bashrc是否存在,如存在,則優先執讀取/etc/bash shell,所有登錄的腳本只有在用戶登陸後纔會被加載,如果計算機放在登錄界面則不會被加載,在用戶登錄之前網絡配置已可以完成,還需服務已啓動,用戶登入只是滿足加載用戶文件而已。
前面文章中也提到了很多變量,只有在計算機登錄完成進去後纔有效。纔可以執行,沒有登入時是我無效的。
用戶家目錄中:.bash-logout 爲用戶註銷腳本、.bash-histore 存放用戶歷史命令的腳本。
5、Standard Input and Output
STDI:標準輸入,默認是鍵盤
STDIN:標o’i’o’iiiii