啟動bash shell有哪些方式?

啟動bash shell的三種方式

1、登錄時當(dāng)做默認(rèn)登錄shell

2、作為非登錄shell的交互式shell

3、作為運(yùn)行腳本的非交互shell

?

一、登錄shell

登錄Linux系統(tǒng)時,bash shell會作為登錄shell啟動,登錄shell會從4個不同的啟動文件里讀取命令,下面是bash shell處理這些文件的次序:

1./etc/profile

2.$HOME/.bash_profile

3.$HOME/.bash_login

4.$HOME/.profile

其中/etc/profile文件是系統(tǒng)默認(rèn)的bash shell的主啟動文件,系統(tǒng)上的每個用戶登錄時都會執(zhí)行這個啟動文件,另外三個啟動文件是用戶專有的。例如,每個用戶可以配置自己專屬的jdk和tomcat等。

1)、/etc/profile

  profile文件有一個復(fù)雜的特性,有個for語句,會逐一訪問/etc/profile.d目錄的每個文件,它為Linux系統(tǒng)提供了一個集中存放用戶登錄時要執(zhí)行的應(yīng)用專屬的啟動文件的地方。這些基本跟系統(tǒng)的特定應(yīng)用有關(guān),大部分應(yīng)用會創(chuàng)建兩個啟動文件,一個給bash shell用,一個給c shell用,

啟動bash shell有哪些方式?

?

2)、$HOME目錄下的啟動文件

啟動bash shell有哪些方式?

?

  大多數(shù)Linux發(fā)行版只用這三個啟動文件中的一個;每個用戶可以編輯這些文件并添加自己的環(huán)境變量來給她們啟動每個bash shell會話。

.bash_profile文件:此文件會先去檢查HOME目錄下是否還有一個叫.bashrc的啟動文件,如果有的話,啟動文件會先去執(zhí)行.bashrc文件中的命令,然后將一個目錄添加到了PATH環(huán)境變量。

啟動bash shell有哪些方式?

?

?

二、交互式shell

如果bash shell不是登錄系統(tǒng)時啟動該的,比如在命令行提示符下輸入bash命令啟動,這個啟動的shell稱作交互式shell,這種情況下不會去啟動/etc/profile文件,而會去用戶的HOME目錄下檢查bashrc是否存在。此文件有兩個作用:

1.查看/etc目錄下的共用bashrc文件

2.為用戶提供了一個定制自己的命令別名和私有腳本函數(shù)的地方。

啟動bash shell有哪些方式?

通用的/etc/bashrc啟動文件會被系統(tǒng)上每個啟動交互式shell會話的用戶執(zhí)行

?

三、非交互式shell

系統(tǒng)執(zhí)行shell腳本時用的就是這種shell。這種情況下不需要擔(dān)心它沒有命令行提示符,但當(dāng)每次在系統(tǒng)上運(yùn)行腳本時仍然要運(yùn)行特定的啟動命令,為了處理這種情況,bash shell提供了BASE_ENV環(huán)境變量,當(dāng)shell啟動一個非交互式shell進(jìn)程時,它會檢查這個環(huán)境變量來查看要執(zhí)行的啟動文件,如果有指定的,shell會執(zhí)行文件里的命令。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊7 分享