標籤:
shell 與windows下的cmd區別 http://segmentfault.com/q/1010000000316935
首先說shell,shell直接翻譯就是殼,按照ABS的定義,shell是The shell is a command interpreter. More than just the insulating layer between the operating system kernel and the user, it‘s also a fairly powerful programming language.
渣英文翻一下的意思是:shell是一個命令直譯器,處於核心和使用者之間,負責把使用者的指令傳遞給核心並且把執行結果回顯給使用者,同時,shell也可以作為一門強大的程式設計語言。
很顯然這裡的shell是命令列解譯器的意思.也有核心上的一層殼的含義。
然後我們看下CMD
CMD是Command shell的簡寫,翻譯成中文也是命令外殼我擦真的好渣的翻譯。我們看下微軟對CMD的定義:The command shell is a separate software program that provides direct communication between the user and the operating system. The non-graphical command shell user interface provides the environment in which you run character-based applications and utilities. The command shell executes programs and displays their output on the screen by using individual characters similar to the MS-DOS command interpreter Command.com.
照例渣英文翻譯下: Command Shell是一個獨立的應用程式,它為使用者提供對作業系統直接通訊的功能,它為基於字元的應用程式和工具提供了非圖形介面的運行環境,它執行命令並在螢幕上回顯MS-DOS風格的字元。好啦我知道翻譯很渣你行你上啊
綜上,shell和CMD並沒有本質上的區別。另外,在linux/unix平台上,shell多半預設為Bash shell,當然也有其他shell,比如C shell什麼的,在Windows平台上,shell=cmd.exe,如是而已。
都是命令列解譯器,都是一個使用者與作業系統的互動介面。
都是命令直譯器。提供解析命令列輸入、執行程式、處理管道,以及完成一定的程式設計語言的能力,負責批次檔的解析。(.sh
for UNIX shell, .cmd
or .bat
for Windows CMD)Shell和CMD都提供針對文字終端的介面能力,或者也可以不和使用者直接介面。
他倆除了用途相同之外,恐怕剩下的就全是區別了。
例如,Windows的CMD又另外承擔了圖形介面下終端模擬器的任務,Windows嘛,一切都大雜燴的爛作風。而Linux圖形介面下,終端模擬器會被lxterminal
、sakura
、terminator
等單獨的軟體接管,不混雜,符合Unix風格。
常見的問題是將Windows的CMD認為是“DOS”。DOS和命令列絕對是兩個概念,總把DOS掛嘴邊的人真該改改觀念了。
Windows如今也不光有CMD這一個Shell了。微軟這個技術後進生在Shell上也在做改變。除了CMD是系統關鍵組件不動之外,又新作了一套PowerShell增強批處理等功能,去追趕Unix發展了幾十年的腳步。
使用方法:
- 路徑分隔字元,cmd 是 "\" ,bash 是 "/"
- 逸出字元,cmd 是 ^ 和雙引號,bash 有雙引號,單引號和 "\"
- 順序執行兩個命令,cmd 是 cmd1 && cmd1 而 bash 是 cmd1 ; cmd2
- and 執行兩個命令,cmd 是 cmd1 & cmd2 而 bash 是 cmd1 && cmd2
- 萬用字元實現原理不同,比如 cmd 中使用 dir *.dll 的這個“*.dll”的萬用字元是 dir 自己實現的,但是在 bash 中 ls *.txt 萬用字元是 bash 實現的,也就是說傳入 ls 命令的實際參數相當於 1.txt 2.txt ... 這樣子
- PATH 的分隔字元, cmd 是分號,bash 是冒號
- 雖然 echo 都是內建命令,但是功能有一些差異
- 放在後台執行,bash 是 & ,而 cmd 是 start 命令
- bash 的很多功能,比如 alias ,cmd 沒有對應物
電腦概念-shell