操作系統(tǒng)可以分成核心(kernel)和Shell(外殼)兩部分,其中,Shell是操作系統(tǒng)與外部的主要接口,位于操作系統(tǒng)的外層,為用戶提供與操作系統(tǒng)核心溝通的途徑。Shell是一個(gè)命令解釋器(也是一種應(yīng)用程序),處于內(nèi)核和用戶之間,負(fù)責(zé)把用戶的指令傳遞給內(nèi)核并且把執(zhí)行結(jié)果回顯給用戶。同時(shí),shell也可以作為一門強(qiáng)大的編程語言。
Shell分為圖形界面shell和命令行shell兩大類,如Windows的資源管理器explorer.exe和cmd命令窗口。不同系統(tǒng)有不同的shell,如bash、C shell、windows power shell 等等;在linux系統(tǒng)中,通常是Bourne Again shell ( 即bash)。
在windows系統(tǒng)中見到的桌面即explorer.exe(資源管理器)是圖形shell,而cmd就是命令行shell,而dos本身就是一個(gè)系統(tǒng),這算是cmd與dos的最大區(qū)別:一個(gè)只是接口、一個(gè)是操作系統(tǒng)。只是cmd中的某些命令和dos中的命令相似,因此很多人把二者混為一談。cmd屬于windows系統(tǒng)的一部分,dos本身就是一個(gè)系統(tǒng),在dos系統(tǒng)下可以刪除,修復(fù)windows系統(tǒng),而在cmd下則不行。
在linux/unix平臺(tái)上,Shell有多種實(shí)現(xiàn),目前多數(shù)Linux發(fā)行版本默認(rèn)是bash,即Bourne Again shell。
在Windows平臺(tái)上,cmd是Command shell的簡(jiǎn)寫,是一個(gè)獨(dú)立的應(yīng)用程序,它為用戶提供對(duì)操作系統(tǒng)直接通信的功能,它為基于字符的應(yīng)用程序和工具提供了非圖形界面的運(yùn)行環(huán)境,它執(zhí)行命令并在屏幕上回顯MS-DOS風(fēng)格的字符。
所以,可以近似地認(rèn)為linux shell=bash而windows shell=cmd,都是命令行解釋器,都是用戶與操作系統(tǒng)的交互接口。但是bash要比cmd強(qiáng)大很多,windows也有強(qiáng)大的shell叫windows power shell。
psWindows系統(tǒng)接受shell命令的程序是cmd命令行窗口;而Linux發(fā)行版ubuntu中對(duì)應(yīng)的程序是terminal終端。
編程語言“編寫-編譯-鏈接-運(yùn)行”(編譯型),腳本語言是“解釋-執(zhí)行”(解釋型)。腳本語言的程序代碼即使最終的可執(zhí)行文件,通過對(duì)應(yīng)的解釋器解釋執(zhí)行即可,所以更方便快捷。每種腳本語言都需要其對(duì)應(yīng)的解釋器。如Perl、Python、Ruby、JavaScript等都是腳本語言,shell也屬于一種比較特殊的腳本語言。
bash是Linux和Unix下的shell,如果真的想試用,可以在MS windows下安裝Cygwin環(huán)境,然后再在其下使用。 這時(shí)需要注意,Cygwin環(huán)境下跟真實(shí)的Linux或Unix是有區(qū)別的,一些命令會(huì)運(yùn)行不正常。最直接的體驗(yàn),還是使用Linux來得貼心,幾乎可以做任何事情。如果想在MS Windows下使用Shell,建議還是使用微軟的PowerShell,它能提供給你操作MS windows的完全功能。
聯(lián)系客服