大家都在点赞 Windows Terminal，我决定给你泼一盆冷水
在我看到一时间出现的很多文章，都视 Windows Terminal 为 Windows 下命令行体验的救世主之后，我觉得，是时候泼一盆冷水降降温了。
Windows 终端
171.210.146.99
好酸啊
来自四川成都的 Chrome Mobile 74.0|Android 8.1 用户
2019-05-08T13:09:52.000
124.64.19.163
这种垃圾文章还好意思说自己是windows开发？ 路边摊学的吧？ ps用的还不是最新版本。这么牛你咋不上天呢？
来自北京的 Chrome 74.0|Windows 10 用户
2019-05-08T13:43:07.000
120.230.99.196
哈哈，虽然我是做运维的，但其实我是微软阵营的，哈哈，怎么说呢，有吐槽才有进步嘛，哈哈，很显示这个作者是linux阵营的，所以，难免会有泼冷水的作法，哈哈
来自120.230.99.196的 Liebao|Windows 7 用户
2019-05-08T13:43:57.000
27.223.84.74
完全没看出来哪里酸了。
绿色圣光 [Firefox 60.0|GNU/Linux]
2019-05-08T13:57:20.000
202.114.122.193
这是什么屁话，水平跟用的软件版本有关系吗？？？
来自湖北武汉武汉大学测绘学院的 Firefox 66.0|Windows 10 用户
2019-05-08T14:13:07.000
202.114.122.193
你们这定位显示的太6了
来自湖北武汉武汉大学测绘学院的 Firefox 66.0|Windows 10 用户
2019-05-08T14:19:34.000
119.139.198.234
部分赞同文章的观点。微信那边吵的太激烈了，我就不掺和了。在这边留言希望作者能看到。<br />
1. 官方的terminal确实没有什么太值得说道的，很多叫好的人也许只是没分清terminal和shell的区别，不过有理由相信官方出的兼容性会更好，并且有持续更新；<br />
2. powershell和cmd共同存在的问题，支持的字体限制很大(参考 知乎/question/36344262/answer/67191917)，unicode字符支持不足。据说新的terminal里这些问题都已经解决，具体要等待实际使用后才能知道；<br />
3. cmd语法确实反人类，但powershell有可取之处，比如通过管道传递的是对象，可以轻松筛
来自广东深圳的 Chrome 73.0|Windows 10 用户
2019-05-08T14:46:58.000
112.65.61.151
如果直接支持bash不知道有没有知识产权的问题。
来自上海的 Maxthon 5.1|Mac 10.14 用户
2019-05-09T08:56:51.000
218.79.75.210
我装完试了一下,只是感觉更漂亮了点,然并卵,吹得很好,看最后发布能是个什么样,因为现在没有wsl2配合使用.windows terminal本身就应该当成linuxshell来使用才值的夸,目前看不到
来自上海的 Chrome 73.0|Mac 10.14 用户
2019-05-11T02:01:24.000
116.232.109.180
win7不能用差评。
来自上海的 Firefox 66.0|Windows 7 用户
2019-05-14T13:51:52.000
171.12.10.57
powershell5.0开始支持对象, 现在的6.2跟之前的3, 4比起来有很多新特性.
来自河南郑州的 Chrome 74.0|Windows 7 用户
2019-05-18T17:10:54.000
202.114.122.193
wsl上次更新是2017年，可以看出来wsl2也只是重新开坑。<br />
<br />
拜托微软把上个坑填上啊
来自湖北武汉武汉大学测绘学院的 Microsoft Edge 17.17134|Windows 10 用户
2019-05-21T22:38:55.000
202.114.122.193
wsl上次更新是2017年，可以看出来wsl2也只是重新开坑。<br />
<br />
拜托微软把上个坑填上啊
来自湖北武汉武汉大学测绘学院的 Microsoft Edge 17.17134|Windows 10 用户
2019-05-21T22:38:57.000
183.128.206.145
槽点太多了。。。<br />
<br />
&gt; 它也只是一个终端而已，而不是一个更加好用的 Shell<br />
<br />
本来就是终端啊，他也没说自己是 Shell 啊，要不然怎么叫 Windows Terminal <br />
<br />
&gt; 这种第三方就可以做好的事情，微软官方的进入不过是在现有的命令行生态下提供更多的一种选择，而不是真正的问题解决方案。<br />
<br />
你要是用过这些个第三方终端就知道他们的问题很多，并没有解决之前的 cmd.exe 以及 powershell.exe 的痛点，他们只是好看而已，真的只是好看而已<br />
<br />
&gt; Windows 用户所吐槽的命令行不好用不在于其表面，而在于其没有一个足够好用的 Shell<br />
<br />
并不是所有的用户都认
来自浙江杭州的 Vivaldi 2.5|GNU/Linux 用户
2019-05-22T15:38:03.000
45.64.120.94
看一下我的坐标,你这坐标显示应该是拿到user-agent和client IP吧
来自美国的 Opera 58.0|Windows 10 用户
2019-06-06T11:14:02.000
123.52.71.156
文章论点，较高，很有预见性，点赞
来自河南郑州的 Chrome 75.0|Windows 10 用户
2019-07-26T21:36:42.000
222.20.54.75
我的定位呢
来自湖北武汉华中科技大学的 Chrome 77.0|Windows 10 用户
2019-08-20T21:05:50.000
54.254.220.242
查看坐标~
来自美国的 Chrome 76.0|Windows 10 用户
2019-08-28T11:27:24.000
222.73.202.154
不认同博主的“干脆提供 Bash”的观点。Powershell 很好用。<br />
<br />
虽然 pwsh 体验上，距离 linux 工具链还有差距。但是 pwsh 生态也在逐渐建立。比如最常用的 posh-git。还有比较 geek 的 oh-my-posh。<br />
<br />
微软提供的 pwsh 现在底子给的挺好了。能不能用好，我觉得还是看用的人。<br />
<br />
就算 Powershell 不好用。我也不能认同“直接拿某某软件替代”，这种想法。因为按照这个想法，那干脆用 linux 好了。为什么要用 Windows 呢
来自上海的 Chrome 76.0|Windows 10 用户
2019-08-28T13:18:05.000
222.73.202.154
另外再补充一下，wt 真的完爆 cmder 和 hyper
来自上海的 Chrome 76.0|Windows 10 用户
2019-08-28T13:21:16.000
59.172.71.107
定位
来自湖北武汉的 Chrome 76.0|Windows 10 用户
2019-09-10T11:42:35.000
59.172.71.107
定位
来自湖北武汉的 Chrome 76.0|Windows 10 用户
2019-09-10T11:42:40.000
23.99.117.9
一看你对 PowerShell&nbsp;&nbsp;发的牢骚就知道你一定不了解 PowerShell
来自美国的 Chrome 77.0|Windows 10 用户
2019-09-20T14:04:14.000
221.4.32.46
定位
来自广东广州的 Chrome 76.0|Windows 10 用户
2019-11-06T15:07:20.000
119.137.54.206
windows的bat脚本和Unix的sh脚本，我相信他们都能完成在各自系统下的应有的功能。我是个半桶水，不能全面的了解。但就目前来说，我还是对Unix的shell更熟悉些。除了脚本之外，以上的应用终端，无非就是调用系统的脚本命令、可执行文件，界面上的美化，功能上的扩展，这个扩展并不是脚本功能上的扩展。所以Windows Terminal的定位很清晰，就是打造一个这样的一个终端，而不是从底层扩展脚本的功能
来自广东深圳的 Chrome 78.0|Mac 10.14 用户
2019-11-27T10:47:57.000
49.78.17.58
只想有个一站式体验的terminal
来自江苏的 Chrome 79.0|Windows 10 用户
2020-02-05T15:50:51.000
3.112.244.42
wt如何自定义aws或者putty等等
来自美国的 Chrome 79.0|Windows 10 用户
2020-02-05T15:52:12.000
110.18.236.57
一看这个标题就是典型的蹭热度，首先Powershell和bash等完全就是两种设计理念。linux簇拥者们天天吹着命令简介好输入，但是想没想过记起来难记？而Powershell则完全采用另一种做法，所有命令由动词和名词组成，记起来非常好记。输入虽然麻烦一点，但是同样可以使用自动补全来加速，最关键的是Powershell命令一看就能打开明白这是干啥的。当然你要说Powershell管道传递的都是对象，加剧了耦合性，和现有的linux工具水土不服，这我倒是完全同意。最后一点就是我相信吹wt的大部分都是吹它的好用，而不是什么新的shell之类的。虽然大部分windo
来自内蒙古包头的 Chrome 80.0|Windows 10 用户
2020-02-22T21:09:38.000
173.82.106.113
之前一直用的cmder，自从wt出来以后，好像就再没打开过了
来自美国的 Chrome 87.0|Windows 10 用户
2020-12-23T14:27:35.000
113.110.38.209
看到楼主脸被打肿了我就放心了
来自广东揭阳的 Chrome 91.0|Windows 10 用户
2021-07-24T00:24:01.000
113.132.179.63
强烈赞同PowerShell就是个反人类的东西，为了不同而不同
来自陕西西安的 Chrome 118.0|Windows 10 用户
2023-11-10T15:56:55.000
在我看到一时间出现的很多文章，都视 Windows Terminal 为 Windows 下命令行体验的救世主之后，我觉得，是时候泼一盆冷水降降温了。
![](/data/attachment/album/201905/08/112743fbblple8b81o0xp0.jpg)


Windows Terminal 发布以后，立刻引爆了整个技术圈，各种社交媒体上纷纷传播着它的消息，它开源的 GitHub 仓库的星标数一路飙升，迅速成为当日 GitHub 趋势榜的首名，甚至连它 issue 区都挤满了人——以至于项目运营团队紧急出场管理。不过，在我观看了相关的资料和视频以后，感觉并没有那么令人兴奋。


在我看到一时间出现的很多文章，**都视 Windows Terminal 为 Windows 下命令行体验的救世主之后**，我觉得，是时候泼一盆冷水降降温了。


![](/data/attachment/album/201905/08/112956p8wnttlgt6t3l1n1.jpg)


*Windows Terminal 项目下的讨论*


### Windows Terminal 是什么？


在泼冷水之前，我想先来介绍一下 Windows Terminal 是什么，以方便你理解我的观点：**Windows Terminal 是一个套在 Windows 操作系统原本的 CMD、Powershell、Windows Subsystem for Linux（WSL）之上的一个界面更加漂亮、功能更加强大的终端工具。**严格来说，**它是套在 CMD 、Powershell 之上的一个终端。**


![Windows Terminal 效果图](/data/attachment/album/201905/08/112758vpk0qza2aj0a2tlb.jpg)


*Powershell on Windows Terminal。图片来源：<https://devblogs.microsoft.com/commandline/introducing-windows-terminal/>*



> 
> 这里需要了解一下<ruby> 终端 <rt>  terminal </rt></ruby>和 shell 的区别：
> 
> 
> 在命令行中，shell 提供了访问操作系统内核功能的途径，比如说我们所熟悉的 bash、zsh，都是不同的 shell；而终端则为 shell 提供视觉界面（窗口），比如我们所熟悉的 iTerm2、Linux 桌面上的终端工具等。甚至于我们在 VSCode 中所使用的命令行，也是某种意义上的终端。
> 
> 
> 我们在 Windows 下所使用的 CMD、Powershell 既然是一个终端，也是一个 Shell，还是同名的脚本系统。
> 
> 
> 


但是，**它也只是一个终端而已，而不是一个更加好用的 Shell**。


### 为什么 Windows Terminal 不是救世主？


作为一个终端，Windows Terminal 无疑是合格的，它提供了非常强大的功能，来自微软的强大工程能力也让它能够吸引更多的眼球。


![](/data/attachment/album/201905/08/113042t5i16uzk3kv4rp5d.jpg)


*Cmder 效果图。图片来源：Cmder 官网*


但是，如果仅仅是一个终端，其实开源社区早已有更多的解决方案，比如 [cmder](https://cmder.net/)、[ConEmu](https://conemu.github.io/)、[Hyper](https://hyper.is/) 等等，这些 Terminal 也足够好看和好用。


![ ConEmu 效果图](/data/attachment/album/201905/08/112805ef0mfxbjnsxnjzf8.png)


*ConEmu效果图。图片来源：ConEmu 官网*


**这种第三方就可以做好的事情，微软官方的进入不过是在现有的命令行生态下提供更多的一种选择，而不是真正的问题解决方案。**


### 当我们吐槽 Windows 命令行时，我们在吐槽什么？


那么我们是对什么不满意呢？**Windows 用户所吐槽的命令行不好用不在于其表面，而在于其没有一个足够好用的 Shell。** Windows 下的两个命令行界面都各有自己的问题，CMD 因为时间久远，很多功能不齐全。而 Power Shell 虽然功能强大，但不合理的命令语法，大量冗长的、驼峰式命名的命令和参数使得用户的命令操作极为不便，体验极差。如果没有一个足够好用的 Shell ，无论换了多少外面的终端，无非是披了一个闪闪发光的、半透明的漂亮外衣罢了。


对于开发者们来说，真正希望 Windows 做的，不是一个更漂亮的终端。漂亮的终端只能让他们一时新鲜，但是如果希望开发者们真正感觉到 Windows 命令行好用，就需要提供一个更加强大的 Shell，帮助开发者能够用上 Unix 式的命令行工具。


### Windows Terminal + Windows Subsystem for Linux ？


在 Microsoft Build 2019 大会上，除了 Windows Terminal 以外，还发布了 Windows Subsystem for Linux 2（WSL2）。新一代的 WSL 相比于上一代，提供了完整的 Linux 内核，将会提供更好的系统支持。看起来，Windows Terminal 和 WSL 的结合，已经非常完美了，但作为一个 Shell 来用的话，又显的过于笨重。


WSL 2 所提供的，不过是一个更加简单、更加易用的 Windows 下的虚拟机，你不再需要安装 Virtual Box、VMWare 而已，一个 Windows Subsystem for Linux 就可以满足开发者的大部分需求。


但是，这并不能解决问题，这治标不治本的选择。**WSL 无论做的再怎么好，无法摆脱它只是一个运行于 Windows 系统中附属的子系统**。无论 WSL 做的再好，本质上并没有比虚拟机做的更多。


### 作为一个开发者，我认为什么才是微软真正应该做的？


![Windows Love Linux](/data/attachment/album/201905/08/112805gfqgppemfwgiegjs.jpg)


*Windows Love Linux。图片来源：<https://cloudblogs.microsoft.com/windowsserver/2015/05/06/microsoft-loves-linux/>*


作为 Windows 系统的开发者，微软真正的价值显然不是做一个终端那么简单。**作为生态的打造者，微软真正可以做好的是，打造一个能够在体验和生态上与 Unix Shell 一致的 Shell，或者是干脆提供 Bash、Zsh 等常用 Shell 的原生支持**（WSL 虽然支持 Bash、Zsh等，但依然是需要先进入 WSL 才能使用，但你可以畅想一下，如果 CMD 变成了 Bash，会是什么样的呢？)。这些事情是第三方开发者所无法做的更好的，只有生态的构建者在一开始就将一个体验良好的 Shell 放置在系统的核心，无需开发者自行安装、配置，才能够让开发者真正拥有一个好的命令行体验。如果微软能提供一个足够好用的 Shell，我相信类似于 Windows Terminal 这样的应用，会如雨后春笋一般，从开源社区中源源不断的冒出来。


### 总结


对于广大使用 Windows 开发的用户来说，一个闪闪发亮的、现代化的、功能强大的终端固然很好，但好的终端只不过是锦上添花之举，而一个强大好用的 Shell 才是真正能够雪中送炭的东西，只有一个足够好用的 Shell，才能成为 Windows 命令行世界的救世主。而这，才是真正值得微软花费大量的时间、精力去做的。


### 延展阅读


* Introducing Windows Terminal：<https://devblogs.microsoft.com/commandline/introducing-windows-terminal/>
* Announcing WSL 2：<https://devblogs.microsoft.com/commandline/announcing-wsl-2/>
* Windows 下有哪些替代 CMD 的命令行工具？：<https://www.zhihu.com/question/19739424>
