Linux Bash Shell概念簡(jiǎn)介
什么是 Shell
這應(yīng)該是個(gè)蠻有趣的話題:『什么是 Shell ?』相信只要摸過(guò)電腦,對(duì)于作業(yè)系統(tǒng)(不論是 Linux 、 Unix 或者是 Windows )有點(diǎn)概念的朋友們大多聽(tīng)過(guò)這個(gè)名詞,因?yàn)橹灰小鹤鳂I(yè)系統(tǒng)』那么就離不開(kāi) Shell 這個(gè)東西。不過(guò),在討論 Shell 之前,我們先來(lái)了解一下電腦的運(yùn)作狀況吧!舉個(gè)例子來(lái)說(shuō):當(dāng)你要電腦傳輸出來(lái)『音樂(lè)』的時(shí)候,你的電腦需要什么東西呢?
1. 當(dāng)然就是需要你的硬體有『音效卡晶片』這個(gè)硬體配備,否則怎么會(huì)有聲音;
2. 作業(yè)系統(tǒng)的核心可以支援這個(gè)晶片組,當(dāng)然還需要提供晶片的驅(qū)動(dòng)程式啰;
3. 需要使用者(就是你)輸入發(fā)生聲音的指令啰!
這就是基本的一個(gè)輸出聲音的需要的步驟!那么也就是說(shuō),你必須要『輸入』一個(gè)指令之后,『硬體』才會(huì)透過(guò)你下達(dá)的指令來(lái)工作!嘿嘿!那么硬體如何知道你下達(dá)的指令呢?那就是 kernel (核心)的控制工作了!了解了嗎?沒(méi)錯(cuò)!也就是說(shuō),我們必須要透過(guò)『 Shell 』將我們輸入的指令與 Kernel 溝通,好讓 Kernel 可以控制硬體來(lái)正確無(wú)誤的工作!基本上,我們可以透過(guò)底下這兩張圖來(lái)說(shuō)明一下:
基本上,替我們工作的是『硬體』,而控制硬體的是『核心』,再來(lái),我們使用者乃是利用『Shell』控制一些 kernel 提供的 『工具 Utility』來(lái)操控硬體替我們正確的工作。再舉個(gè)例子來(lái)說(shuō),當(dāng)我們使用 shell 的功能,輸入『 cd /』來(lái)切換目錄時(shí), shell 便利用 kernel 提供的 cd 工具來(lái)告訴 kernel 轉(zhuǎn)換硬碟的工作目錄到 / 當(dāng)中,然后硬碟就根據(jù) kernel 的掌控而切換到 / 當(dāng)中啰!這個(gè)就是 Shell 的主要功能啰!再進(jìn)一步來(lái)說(shuō),由于 kernel 聽(tīng)不懂人類的語(yǔ)言,而人類也沒(méi)有辦法直接記得 kernel 的語(yǔ)言,所以兩者的溝通就得藉由 shell 來(lái)支援了!
以字面上的意思來(lái)說(shuō), kernel 是『核心』的意思,而 Shell 是『殼』的意思,呵呵!也就是說(shuō), shell 是最外頭的咚咚!而 kernel 乃是最內(nèi)層的的咚咚啦!核心是作業(yè)系統(tǒng)的***層的東西!這個(gè)核心里頭包括了各種的支援硬體的工具!當(dāng)然啰,如果你的硬體太新,而你的 kernel 并沒(méi)有支援的話,那么很抱歉,你的 Shell 能力再怎么強(qiáng),也沒(méi)有辦法使硬體工作的!這樣可以了解了嗎?呵呵!沒(méi)錯(cuò)!使電腦主機(jī)工作的正是核心的任務(wù),但是操作核心來(lái)替使用者工作的,卻是 shell 喔!因此,有時(shí)候你的 shell 搞了老半天,硬體卻不能工作的時(shí)候,請(qǐng)注意,您的『核心』是否正確呢?阿!扯遠(yuǎn)了!這是 kernel 章節(jié)才要說(shuō)的東西~~
【編輯推薦】