啟動bash shell的三種方式 1、登錄時當做預設登錄shell 2、作為非登錄shell的互動式shell 3、作為運行腳本的非交互shell 一、登錄shell 登錄Linux系統時,bash shell會作為登錄shell啟動,登錄shell會從4個不同的啟動文件里讀取命令,下麵是bash ...
啟動bash shell的三種方式
1、登錄時當做預設登錄shell
2、作為非登錄shell的互動式shell
3、作為運行腳本的非交互shell
一、登錄shell
登錄Linux系統時,bash shell會作為登錄shell啟動,登錄shell會從4個不同的啟動文件里讀取命令,下麵是bash shell處理這些文件的次序:
1./etc/profile
2.$HOME/.bash_profile
3.$HOME/.bash_login
4.$HOME/.profile
其中/etc/profile文件是系統預設的bash shell的主啟動文件,系統上的每個用戶登錄時都會執行這個啟動文件,另外三個啟動文件是用戶專有的。例如,每個用戶可以配置自己專屬的jdk和tomcat等。
1)、/etc/profile
profile文件有一個複雜的特性,有個for語句,會逐一訪問/etc/profile.d目錄的每個文件,它為Linux系統提供了一個集中存放用戶登錄時要執行的應用專屬的啟動文件的地方。這些基本跟系統的特定應用有關,大部分應用會創建兩個啟動文件,一個給bash shell用,一個給c shell用,
2)、$HOME目錄下的啟動文件
大多數Linux發行版只用這三個啟動文件中的一個;每個用戶可以編輯這些文件並添加自己的環境變數來給她們啟動每個bash shell會話。
.bash_profile文件:此文件會先去檢查HOME目錄下是否還有一個叫.bashrc的啟動文件,如果有的話,啟動文件會先去執行.bashrc文件中的命令,然後將一個目錄添加到了PATH環境變數。
二、互動式shell
如果bash shell不是登錄系統時啟動該的,比如在命令行提示符下輸入bash命令啟動,這個啟動的shell稱作互動式shell,這種情況下不會去啟動/etc/profile文件,而會去用戶的HOME目錄下檢查bashrc是否存在。此文件有兩個作用:
1.查看/etc目錄下的共用bashrc文件
2.為用戶提供了一個定製自己的命令別名和私有腳本函數的地方。
通用的/etc/bashrc啟動文件會被系統上每個啟動互動式shell會話的用戶執行
三、非互動式shell
系統執行shell腳本時用的就是這種shell。這種情況下不需要擔心它沒有命令行提示符,但當每次在系統上運行腳本時仍然要運行特定的啟動命令,為了處理這種情況,bash shell提供了BASE_ENV環境變數,當shell啟動一個非互動式shell進程時,它會檢查這個環境變數來查看要執行的啟動文件,如果有指定的,shell會執行文件里的命令。