我一直在研究不同的命令列解釋器,並注意到預設的 Windows 解釋器cmd.exe
並不被稱為 shell維基百科頁面。幾乎所有類別 Unix 系統的命令列解釋器都被稱為 shell,但cmd.exe
大多數其他解釋器則不然。
這是否有原因,或者「shell」只是屬於類 Unix 系統的解釋器的術語?
答案1
外殼是主要的作業系統的使用者介面。在 Windows 中,該介面是 GUI。它用作explorer.exe
“檔案總管”,建立“底部選單”、“資料夾視窗”並控製檔案開啟過程:當您單擊檔案時,它會呼叫ShellExecute
函數。
因此,Windows 中的「shell」是 UI,而「cmd」僅適用於某些舊版或特殊指令。多年來,微軟認為 GUI 是做任何事情的最佳方式。
〜2006年他們發現unix shell(bash、ksh、zsh)在系統管理員中非常流行,所以他們發明了電源外殼:基於 .net 的 cmd 替換非常酷,尤其是與最新的 Powershell ISE 一起使用時。它被稱為殼因為它的主要目的是成為許多系統管理任務的「一等公民」。任何現代 Microsoft 伺服器產品都有 cmdlet,因此您幾乎可以透過 powershell(不使用 MMC)執行任何操作。
我不知道為什麼在 MS-DOS 時代他們不使用“Shell”一詞來表示“command.com”。可能他們借用了 CP/M 的術語並將其稱為“命令處理器”。
有趣的是:有一個用於 DOS 的“DOS Shell”短暫的 GUI 檔案管理器。它於 6.22 停產,當時大多數人都使用 Norton Commander。