为什么 cmd.exe 命令行解释器不称为 shell?

为什么 cmd.exe 命令行解释器不称为 shell?

我一直在研究不同的命令行解释器,并注意到默认的 Windows 解释器cmd.exe维基百科页面。类 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 曾有一个短暂存在的 GUI 文件管理器“DOS Shell”。它在 6.22 中停用,当时大多数人都使用 Norton Commander。

相关内容