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