❏ 站外平台:

大家都在点赞 Windows Terminal,我决定给你泼一盆冷水

作者: Linux中国 小白

| 2019-05-08 11:27   评论: 31    

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

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

Windows Terminal 项目下的讨论

Windows Terminal 是什么?

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

Windows Terminal 效果图

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

这里需要了解一下终端terminal和 shell 的区别:

在命令行中,shell 提供了访问操作系统内核功能的途径,比如说我们所熟悉的 bash、zsh,都是不同的 shell;而终端则为 shell 提供视觉界面(窗口),比如我们所熟悉的 iTerm2、Linux 桌面上的终端工具等。甚至于我们在 VSCode 中所使用的命令行,也是某种意义上的终端。

我们在 Windows 下所使用的 CMD、Powershell 既然是一个终端,也是一个 Shell,还是同名的脚本系统。

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

为什么 Windows Terminal 不是救世主?

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

Cmder 效果图。图片来源:Cmder 官网

但是,如果仅仅是一个终端,其实开源社区早已有更多的解决方案,比如 cmderConEmuHyper 等等,这些 Terminal 也足够好看和好用。

 ConEmu 效果图

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

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 命令行世界的救世主。而这,才是真正值得微软花费大量的时间、精力去做的。

延展阅读



最新评论

来自陕西西安的 Chrome 118.0|Windows 10 用户 2023-11-10 15:56 2 回复
强烈赞同PowerShell就是个反人类的东西,为了不同而不同
来自广东揭阳的 Chrome 91.0|Windows 10 用户 2021-07-24 00:24 1 回复
看到楼主脸被打肿了我就放心了
[1]
来自上海的 Chrome 76.0|Windows 10 用户 发表于 2019-08-28 13:18 的评论:
不认同博主的“干脆提供 Bash”的观点。Powershell 很好用。

虽然 pwsh 体验上,距离 linux 工具链还有差距。但是 pwsh 生态也在逐渐建立。比如最常用的 posh-git。还有比较 geek 的 oh-my-posh。

微软提供的 pwsh 现在底子给的挺好了。能不能用好,我觉得还是看用的人。

就算 Powershell 不好用。我也不能认同“直接拿某某软件替代”,这种想法。因为按照这个想法,那干脆用 linux 好了。为什么要用 Windows 呢
[2]
来自上海的 Chrome 76.0|Windows 10 用户 发表于 2019-08-28 13:21 的评论:
另外再补充一下,wt 真的完爆 cmder 和 hyper
来自美国的 Chrome 87.0|Windows 10 用户 2020-12-23 14:27 2 回复
之前一直用的cmder,自从wt出来以后,好像就再没打开过了
来自内蒙古包头的 Chrome 80.0|Windows 10 用户 2020-02-22 21:09 6 回复
一看这个标题就是典型的蹭热度,首先Powershell和bash等完全就是两种设计理念。linux簇拥者们天天吹着命令简介好输入,但是想没想过记起来难记?而Powershell则完全采用另一种做法,所有命令由动词和名词组成,记起来非常好记。输入虽然麻烦一点,但是同样可以使用自动补全来加速,最关键的是Powershell命令一看就能打开明白这是干啥的。当然你要说Powershell管道传递的都是对象,加剧了耦合性,和现有的linux工具水土不服,这我倒是完全同意。最后一点就是我相信吹wt的大部分都是吹它的好用,而不是什么新的shell之类的。虽然大部分windo
来自美国的 Chrome 79.0|Windows 10 用户 2020-02-05 15:52 3 回复
wt如何自定义aws或者putty等等
来自江苏的 Chrome 79.0|Windows 10 用户 2020-02-05 15:50 2 回复
只想有个一站式体验的terminal
来自广东深圳的 Chrome 78.0|Mac 10.14 用户 2019-11-27 10:47 4 回复
windows的bat脚本和Unix的sh脚本,我相信他们都能完成在各自系统下的应有的功能。我是个半桶水,不能全面的了解。但就目前来说,我还是对Unix的shell更熟悉些。除了脚本之外,以上的应用终端,无非就是调用系统的脚本命令、可执行文件,界面上的美化,功能上的扩展,这个扩展并不是脚本功能上的扩展。所以Windows Terminal的定位很清晰,就是打造一个这样的一个终端,而不是从底层扩展脚本的功能
来自广东广州的 Chrome 76.0|Windows 10 用户 2019-11-06 15:07 3 回复
定位
来自美国的 Chrome 77.0|Windows 10 用户 2019-09-20 14:04 4 回复
一看你对 PowerShell  发的牢骚就知道你一定不了解 PowerShell
来自湖北武汉的 Chrome 76.0|Windows 10 用户 2019-09-10 11:42 2 回复
定位
来自湖北武汉的 Chrome 76.0|Windows 10 用户 2019-09-10 11:42 1 回复
定位
来自美国的 Chrome 76.0|Windows 10 用户 2019-08-28 11:27 2 回复
查看坐标~
[1]
来自北京的 Chrome 74.0|Windows 10 用户 发表于 2019-05-08 13:43 的评论:
这种垃圾文章还好意思说自己是windows开发? 路边摊学的吧? ps用的还不是最新版本。这么牛你咋不上天呢?
[2]
来自湖北武汉武汉大学测绘学院的 Firefox 66.0|Windows 10 用户 发表于 2019-05-08 14:13 的评论:
这是什么屁话,水平跟用的软件版本有关系吗???
[3]
来自湖北武汉武汉大学测绘学院的 Firefox 66.0|Windows 10 用户 发表于 2019-05-08 14:19 的评论:
你们这定位显示的太6了
来自湖北武汉华中科技大学的 Chrome 77.0|Windows 10 用户 2019-08-20 21:05 2 回复
我的定位呢
来自河南郑州的 Chrome 75.0|Windows 10 用户 2019-07-26 21:36 1 回复
文章论点,较高,很有预见性,点赞
来自美国的 Opera 58.0|Windows 10 用户 2019-06-06 11:14 2 回复
看一下我的坐标,你这坐标显示应该是拿到user-agent和client IP吧
来自浙江杭州的 Vivaldi 2.5|GNU/Linux 用户 2019-05-22 15:38 15 回复
槽点太多了。。。

> 它也只是一个终端而已,而不是一个更加好用的 Shell

本来就是终端啊,他也没说自己是 Shell 啊,要不然怎么叫 Windows Terminal

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

你要是用过这些个第三方终端就知道他们的问题很多,并没有解决之前的 cmd.exe 以及 powershell.exe 的痛点,他们只是好看而已,真的只是好看而已

> Windows 用户所吐槽的命令行不好用不在于其表面,而在于其没有一个足够好用的 Shell

并不是所有的用户都认
[1]
来自上海的 Chrome 73.0|Mac 10.14 用户 发表于 2019-05-11 02:01 的评论:
我装完试了一下,只是感觉更漂亮了点,然并卵,吹得很好,看最后发布能是个什么样,因为现在没有wsl2配合使用.windows terminal本身就应该当成linuxshell来使用才值的夸,目前看不到
来自湖北武汉武汉大学测绘学院的 Microsoft Edge 17.17134|Windows 10 用户 2019-05-21 22:38 2 回复
wsl上次更新是2017年,可以看出来wsl2也只是重新开坑。

拜托微软把上个坑填上啊
[1]
来自上海的 Chrome 73.0|Mac 10.14 用户 发表于 2019-05-11 02:01 的评论:
我装完试了一下,只是感觉更漂亮了点,然并卵,吹得很好,看最后发布能是个什么样,因为现在没有wsl2配合使用.windows terminal本身就应该当成linuxshell来使用才值的夸,目前看不到
来自湖北武汉武汉大学测绘学院的 Microsoft Edge 17.17134|Windows 10 用户 2019-05-21 22:38 1 回复
wsl上次更新是2017年,可以看出来wsl2也只是重新开坑。

拜托微软把上个坑填上啊
[1]
来自北京的 Chrome 74.0|Windows 10 用户 发表于 2019-05-08 13:43 的评论:
这种垃圾文章还好意思说自己是windows开发? 路边摊学的吧? ps用的还不是最新版本。这么牛你咋不上天呢?
[2]
来自湖北武汉武汉大学测绘学院的 Firefox 66.0|Windows 10 用户 发表于 2019-05-08 14:13 的评论:
这是什么屁话,水平跟用的软件版本有关系吗???
来自河南郑州的 Chrome 74.0|Windows 7 用户 2019-05-18 17:10 3 回复
powershell5.0开始支持对象, 现在的6.2跟之前的3, 4比起来有很多新特性.
来自上海的 Firefox 66.0|Windows 7 用户 2019-05-14 13:51 4 回复
win7不能用差评。
来自上海的 Maxthon 5.1|Mac 10.14 用户 2019-05-09 08:56 6 回复
如果直接支持bash不知道有没有知识产权的问题。
来自广东深圳的 Chrome 73.0|Windows 10 用户 2019-05-08 14:46 11 回复
部分赞同文章的观点。微信那边吵的太激烈了,我就不掺和了。在这边留言希望作者能看到。
1. 官方的terminal确实没有什么太值得说道的,很多叫好的人也许只是没分清terminal和shell的区别,不过有理由相信官方出的兼容性会更好,并且有持续更新;
2. powershell和cmd共同存在的问题,支持的字体限制很大(参考 知乎/question/36344262/answer/67191917),unicode字符支持不足。据说新的terminal里这些问题都已经解决,具体要等待实际使用后才能知道;
3. cmd语法确实反人类,但powershell有可取之处,比如通过管道传递的是对象,可以轻松筛
[1]
来自四川成都的 Chrome Mobile 74.0|Android 8.1 用户 发表于 2019-05-08 13:09 的评论:
好酸啊
绿色圣光 [Firefox 60.0|GNU/Linux] 2019-05-08 13:57 3 回复
完全没看出来哪里酸了。
[1]
来自四川成都的 Chrome Mobile 74.0|Android 8.1 用户 发表于 2019-05-08 13:09 的评论:
好酸啊
来自120.230.99.196的 Liebao|Windows 7 用户 2019-05-08 13:43 5 回复
哈哈,虽然我是做运维的,但其实我是微软阵营的,哈哈,怎么说呢,有吐槽才有进步嘛,哈哈,很显示这个作者是linux阵营的,所以,难免会有泼冷水的作法,哈哈

返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。