轉自:blog.163.com/magicc_love…linux
問題一:Shell是什麼?shell
操做系統能夠分紅核心(kernel)和Shell(外殼)兩部分,其中,Shell是操做系統與外部的主要接口,位於操做系統的外層,爲用戶提供與操做系統核心溝通的途徑。Shell是一個命令解釋器(也是一種應用程序),處於內核和用戶之間,負責把用戶的指令傳遞給內核而且把執行結果回顯給用戶。同時,shell也能夠做爲一門強大的編程語言。
Shell分爲圖形界面shell和命令行shell兩大類,如Windows的資源管理器explorer.exe和cmd命令窗口。不一樣系統有不一樣的shell,如bash、C shell、windows power shell 等等;在linux系統中,一般是Bourne Again shell ( 即bash)。編程
問題二:dos與windows中cmd區別ubuntu
在windows系統中見到的桌面即explorer.exe(資源管理器)是圖形shell,而cmd就是命令行shell,而dos自己就是一個系統,這算是cmd與dos的最大區別:一個只是接口、一個是操做系統。只是cmd中的某些命令和dos中的命令類似,所以不少人把兩者混爲一談。cmd屬於windows系統的一部分,dos自己就是一個系統,在dos系統下能夠刪除,修復windows系統,而在cmd下則不行。windows
問題三:linux shell(即bash)和windows cmd區別?bash
在linux/unix平臺上,Shell有多種實現,目前多數Linux發行版本默認是bash,即Bourne Again shell。
在Windows平臺上,cmd是Command shell的簡寫,是一個獨立的應用程序,它爲用戶提供對操做系統直接通訊的功能,它爲基於字符的應用程序和工具提供了非圖形界面的運行環境,它執行命令並在屏幕上回顯MS-DOS風格的字符。
因此,能夠近似地認爲linux shell=bash而windows shell=cmd,都是命令行解釋器,都是用戶與操做系統的交互接口。可是bash要比cmd強大不少,windows也有強大的shell叫windows power shell。
psWindows系統接受shell命令的程序是cmd命令行窗口;而Linux發行版ubuntu中對應的程序是terminal終端。編程語言
問題四:腳本語言和編程語言區別?工具
編程語言「編寫-編譯-連接-運行」(編譯型),腳本語言是「解釋-執行」(解釋型)。腳本語言的程序代碼即便最終的可執行文件,經過對應的解釋器解釋執行便可,因此更方便快捷。每種腳本語言都須要其對應的解釋器。如Perl、Python、Ruby、JavaScript等都是腳本語言,shell也屬於一種比較特殊的腳本語言。操作系統
問題五:windows下能用bash shell嗎?命令行
bash是Linux和Unix下的shell,若是真的想試用,能夠在MS windows下安裝Cygwin環境,而後再在其下使用。 這時須要注意,Cygwin環境下跟真實的Linux或Unix是有區別的,一些命令會運行不正常。最直接的體驗,仍是使用Linux來得貼心,幾乎能夠作任何事情。若是想在MS Windows下使用Shell,建議仍是使用微軟的PowerShell,它能提供給你操做MS windows的徹底功能。