解析Unix操作系統(tǒng)shell知識
在Unix操作系統(tǒng)中,我們經(jīng)常使用到shell。下面我們就在學(xué)習(xí)Unix操作系統(tǒng)的之前,先來仔細(xì)了解一下shell 的相關(guān)知識以及歷史。
shell在計算機(jī)科學(xué)中,Shell俗稱殼(用來區(qū)別于核),是指“提供使用者使用界面”的軟件(命令解析器)。它類似于DOS下的command.com。它接收用戶命令,然后調(diào)用相應(yīng)的應(yīng)用程序。
同時它又是一種程序設(shè)計語言。作為命令語言,它交互式解釋和執(zhí)行用戶輸入的命令或者自動地解釋和執(zhí)行預(yù)先設(shè)定好的一連串的命令;作為程序設(shè)計語言,它定義了各種變量和參數(shù),并提供了許多在高階語言中才具有的控制結(jié)構(gòu),包括循環(huán)和分支。
用戶與計算機(jī)交互的方式在不斷發(fā)生變化。啟動后提供純命令行界面的Unix操作系統(tǒng)已逐漸演化為圖形化前端。但是,脫離構(gòu)成Unix操作系統(tǒng)的構(gòu)建塊有時并非是邁向正確方向的必要步驟。IBM? AIX? Unix操作系統(tǒng)一直把握著重點:穩(wěn)定性、功能和穩(wěn)健性。它通過保留強大的命令行界面 (CLI) 來實現(xiàn)這一目標(biāo)。如果您未曾學(xué)習(xí)如何使用 CLI 或需要復(fù)習(xí) CLI 的基礎(chǔ)知識,請繼續(xù)往下閱讀。
shell 的歷史
Unix操作系統(tǒng) shell 至今存在的時間已超過 35 年,它現(xiàn)在仍然在發(fā)展壯大!它創(chuàng)始于 1971 年,這一年 AT&T 貝爾實驗室的 Ken Thompson 創(chuàng)建了第一個 Unix操作系統(tǒng) shell,它具有貼切的名稱 Thompson shell。
雖然 Thompson shell 缺少人們?nèi)粘J褂玫?Unix操作系統(tǒng) 所具備的一些重要內(nèi)置功能,如管道 (|)、編寫 shell 腳本的能力和 if 條件語句,但是該 shell 的基礎(chǔ)功能(如數(shù)據(jù)重定向)仍存在于現(xiàn)今使用的 shell 中。
后來,在 1997 年,Thompson shell 被 Bourne shell(即 sh)所取代。Bourne shell 是由 AT&T 貝爾實驗室的 Stephen Bourne 創(chuàng)建的,它成為 Unix操作系統(tǒng) 第 7 版 (V7) 的缺省 shell。
Bourne shell 使 Unix操作系統(tǒng) 的發(fā)展向前邁進(jìn)了一大步。到這時,用戶可以編寫 shell 腳本,在變量中存儲信息和導(dǎo)出信息,控制文件描述符,控制信號處理,使用 for 循環(huán)和 case 語句,以及其他大量功能。雖然 Bourne shell 創(chuàng)建至今已有 30 多年時間,目前它仍在大量的 Unix操作系統(tǒng)中廣為使用,并且是當(dāng)今許多 UNIX系統(tǒng)的超級用戶 -root- 的缺省 shell。
在過去三十年中,Unix操作系統(tǒng) shell 獲得了許多改進(jìn)和增強。結(jié)果,出現(xiàn)了多種不同的 shell。圖 1 顯示了少數(shù) Unix操作系統(tǒng) shell 的家族樹。雖然該圖并不完整,但它顯示了衍生出其他較次要 shell 的那些主要 shell。
【編輯推薦】