9 月 24 日消息,微软在 YouTube 上发布的一档播客中澄清,他们没打算在
Windows 11
或下一代操作系统中用 Windows 终端(Terminal)来替换传统的命令提示符(cmd.exe)。
众所周知,Windows Terminal 中提供了许多命令提示符不存在的实用功能,例如标签支持、分割窗格、自定义壁纸,以及大量的自定义设置,你甚至还可以设置 GIF 背景。
微软最早在 2020 年的 Build 开发者大会上发布了 Terminal,而它至今已然经发展成为了一个成熟的终端环境,具有向后兼容性、GPU 渲染加速、现代化文本渲染等完整内容,而且你还可以在同一个地方调用 Linux、CMD 和 PowerShell。
IT之家注意到,最近的
Windows 10
更新还添加了一个新的功能选项,可以让用户将 Terminal 设置为默认终端环境。
虽然部分用户担心 Terminal 和 AI 的兴起可能会导致命令提示符被砍或其更名,但根据微软项目经理 Christopher Nguyen 的说法,微软将会完整地保留命令提示符。
“这是一个非常常见的问题。命令提示符和 Windows Terminal 是携手工作的,”Christopher Nguyen 指出。他还补充道,命令提示符可以与 Windows Terminal 无缝集成。
他表示:“Windows Terminal 充当命令行 shell 的主机,比如命令提示符。当你在终端中输入命令时,它会将这些命令传达给 CMD 执行,然后展示结果。”
“自定义背景不仅增强了个人风格,还有助于区分各种 shell,”这位项目经理补充道。
当然,可能微软本来也没打算让 Terminal 替代命令提示符,但一些用户担心微软可能会停止使用命令提示符或 PowerShell 的品牌名称,并将所有终端称为 Terminal,因此产生了这种担忧。
7 个回答
其实说实话这并不奇怪。
很多人会把Windows Terminal和cmd混为一谈,然而实际上Windows Terminal和cmd本来就不是一个东西。Windows Terminal只是一个终端模拟器,而cmd是命令解释器。前者用于更方便地与命令行程序进行交互,后者则用于解析输入的命令并执行该命令。Linux上的gnome-terminal与bash也是同样的道理。
Windows Terminal对标的实际上是传统的Windows控制台主机(conhost.exe)。没错,下图中我们最常见到的这种窗口,就是由conhost.exe驱动的。
cmd.exe本身是没有创建窗口的能力的。在Windows Vista之前,命令行程序靠csrss作为宿主,win7开始采用conhost.exe作为新的命令行宿主。conhost负责对无图形界面程序进行输入输出操作,这样我们才能在Windows图形界面便捷地使用命令行程序。实际上不止cmd,很多无图形界面控制台程序(如telnet,nslookup,甚至是自己编写的Helloworld控制台程序)都是在conhost之下运行的。
Windows Terminal是Win10时代诞生的一个后起之秀,算是推翻底层重新编写的软件。相比于conhost,Windows terminal拥有了更友好美观的界面和更丰富的功能,例如多标签页管理,多配置文件管理,以及拥有更多操作的命令面板等(例如,可以在命令面板中选择“查找”即可查找命令行输出内容等),因此有望取代传统的conhost。Windows Terminal与大多数控制台程序都是兼容的,包括cmd在内。同时Windows terminal与WSL的集成度也很高,可以更舒适地使用Linux平台的应用程序。
不过如果对于Windows Terminal不太适应,或者需要在传统控制台运行老程序,那么还是可以切换回conhost的。在Windows Terminal首选项中即可切换,win11用户也可以在设置-开发者选项中进行更改。
至于cmd,它的替代品应该是powershell才对。Powershell增加了很多命令行扩展,同时对于长命令参数也是有优化的。不过powershell的命令语法与cmd差别很大,并不是完全兼容的,所以在某些情况下cmd仍然是不可替代的(实际上powershell运行bat/cmd本质上还是调用cmd.exe运行),因此cmd不会被移除,并且会保留很长一段时间。当然,发展powershell也确实是一大趋势,毕竟就像上面所说,powershell有很多优势,Windows Terminal也默认将powershell作为默认配置文件处理。