這里介紹一些bash啟動前、后的問題,以及一些使用bash需要注意的基本問題。

 

 

1、Bash的介紹

=========== 

Bash是一種Shell程序,它是一般的Linux系統(tǒng)中的默認(rèn)的Shell程序,一般情況下Bash指的是/bin/bash這個軟件。

一個Linux系統(tǒng)中有多少個可用的Shell程序,可以從/etc/shells文件中查出來。

當(dāng)前登錄用戶的默認(rèn)Shell是哪一個,可以從/etc/passwd文件中與此用戶對應(yīng)的那一行最后一個字段看出來?;蛘咭部梢酝ㄟ^echo $SHELL來查看。

 

2、內(nèi)部命令與外部命令

==================== 

Bash中可用的命令分為兩類,分別是:內(nèi)部命令和外部命令。內(nèi)部命令是Bash的一部分,而外部命令都是一個一個獨(dú)立于Bash的軟件。

 

在bash的用戶提示符下,可以輸入內(nèi)部命令和外部命令,然后bash會分析命令,之后執(zhí)行命令。bash執(zhí)行內(nèi)部命令不會產(chǎn)生新的進(jìn)程,而在執(zhí)行外部命令的時候,bash會用fork函數(shù)生成一個新的進(jìn)程,然后用exec函數(shù)來加載這個外部命令的程序來執(zhí)行這個外部命令。

 

怎么來區(qū)分一個命令是內(nèi)部命令還是外部命令呢?用type命令來區(qū)分。type本身是一個內(nèi)部命令,type commandName可以知道commandName這條命令的是內(nèi)部命令還是外部命令。

 

3、環(huán)境變量與用戶自定義變量

=====================

環(huán)境變量是對所有的進(jìn)程(包括bash的進(jìn)程和非bash的進(jìn)程)都可見的變量,一般用大寫字母的組合作為變量名,所以也稱為全局變量。

 

名詞解析:臨時環(huán)境變量和永久環(huán)境變量。其實(shí)全局變量都是通過export導(dǎo)出的變量。

臨時全局變量是在bash的命令提示符下或者bash scripts下用export導(dǎo)出的變量,這些變量在機(jī)器重啟之后會消失,除非再次執(zhí)行export命令或者再次執(zhí)行相應(yīng)的scripts。

永久環(huán)境變量是寫在配置文件中的,這些配置文件在每次重啟機(jī)器甚至重開一個bash的時候都會被再執(zhí)行一次,所以這些文件中的全局變量一直存在,不會因?yàn)橹貑C(jī)器而消失,看上去好像是永久的,其實(shí)是每次都重新export了。

網(wǎng)友評論