版权声明:本文为博主Bravo Yeung(微信公众号dotNET匠人, 知乎Bravo Yeung)的原创文章,欲转载请先私信获博主允许,转载时请附上网址http://blog.csdn.net/lzuacm。 https://cloud.tencent.com/developer/article/1429166
微软在几天前的build大会上展示了 Windows Terminal
的威力,由于官宣要在6月中旬才上Microsoft store
,还有一个多月要等呢。好在代码已公布在 github, 于是决定自己 build 后体验一番。遇到不少坑,大概整理一下流程,分享给大家。如果大家如果发现问题,欢迎指正。
官方视频如下:
https://v.qq.com/x/page/p0869ovd7aw.html
试过用Windows 10 更新助手(Windows 10 update assistant)来升级Windows 10, 发现只能升级到1809版本。而编译 github 上的 Microsoft terminal 代码必须使用Window 10
的1903版本.
因为不升级,解决其他所有的问题,最后会报这个错(代号DEP 3321
):
好在前不久听说了工具网站 MSDN, 我告诉你上可以下载到该版本的镜像。
关于版本选择,到底选Consumer版还是Business版呢?经大佬Edi Wang指点,得悉如下信息:
Consumer
版Business
版至于ed2k://
资源的下载,你使用百度云盘的离线下载也好,使用迅雷也行。
首先需要安装好 git for Windows
(https://gitforwindows.org/),然后使用 git 去 clone 一份代码。
Microsoft Terminal 的 github仓库是:
https://github.com/microsoft/Terminal
对应的 clone地址是:
https://github.com/microsoft/Terminal.git。
打开命令行,使用cd命令,切换到自己平时存vs项目的路径(比如我切换到D:\Coding
)。
接着只需要在Git Bash
中输入如下命令即可:
git clone https://github.com/microsoft/Terminal.git
等 clone 完成,就可以进行下一步了。
确保 Clone 仓库完成后,还可以使用以下命令Clone子模块:
git submodule update --init --recursive
先安装 vs 2019 professional 或 enterprise版本,github上的文档提到了要编译 window terminal 必须勾选上:
再安装好.net core 3.0 SDK,比较简单,就不再详述。
在vs的设置里,勾选.NET core下的"Use preview SDK"(使用.NET Core SDK预览版),重启 VS。
在 vs 2019 中打开Windows terminal项目(对应文件夹Terminal
)下的OpenConsole.sln
, 如果不勾选"使用.NET Core SDK预览版"直接编译,很可能会报下面的 Error:
在上一步中,用vs2019打开OpenConsole.sln
时,系统会提示你将项目重新定位到 v142。 对于“Windows SDK版本”,请选择“10.0.18362.0”。 将“Platform Toolset”设置为“Upgrade to v142”。
然后往下拖,按下图设置:
设置完后,单击最下面的OK。
当然,如果误点了"取消",也能通过右键单击整个Solution -> Retarget solution来设置:
在你尝试再次build之前,请确保你已经选择好与你的计算机匹配的编译平台(Solution Platform)。
不知道你一开始打开Solution OpenConsole.sln
时编译平台和启动项目是什么样的,我的是这样的:
要正确地 build,这里需要根据自己电脑的实际情况来设置。比如我的x64的,就配置如下:
否则会出现很多错误。
解决完编译时的各种状况之后,Ctrl + F5
运行项目。
唉,和之前的Powershell有何不一样呢?按Ctrl + T
之后会多了个菜单,同一个窗口中可以有多个Tab,而其他功能暂时没进来,等正式版。此外,还多了句话(见高亮部分)~
尝试新的跨平台 PowerShell https://aka.ms/pscore6
任务栏中相应的图标为:
按Ctrl + T
之后, 右上角会出现一个以+
开头的菜单
但你在菜单中切换到cmd
的时候,视频中的酷炫效果就有一点出来的迹象了:
接下来,介绍一下如何在上面这个新的cmd
中使用Linux
命令,以我最熟悉的Ubuntu为例来介绍吧。
在Microsoft store里搜索到Ubuntu
,然后购买,安装。这实际上就是WSL (Windows Subsystem for Linux)。
当然,你想体验其他版本的 Linux
,也是可以的,比如Arch Linux
:
安装完WSL版的 Linux 后,还需要开启WSL
的权限:
以"管理员权限"另开一个PowerShell
窗口,
然后输入如下命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
等这里的命令完成,就可以在build出来的 Terminal 中执行 Linux 命令了。
先在cmd
中输入 ubuntu
, 需要花一点点时间启动 Ubuntu
, 设置好用户名和密码。
然后就可以愉快地玩Ubuntu了,下面我随便输入了几个命令 ps, touch, ls等,如下图所示。
如果自己不想配置和build,可以下载build好的体验一把:
https://pan.baidu.com/s/1Xrh-0KbsBmh-zJYsdtYqnA 口令: y233
当然,这个预编译版本的来源是:
https://twitter.com/thebookisclosed/status/1125480984068153344.
另外,Scott Hanselman写了一篇相关文章:
A new Console for Windows - It’s the open source Windows Terminal - Scott Hanselman
https://www.hanselman.com/blog/ANewConsoleForWindowsItsTheOpenSourceWindowsTerminal.aspx,有园友已经将其部分内容翻译成了中文,见 提前体验让人"回归Windows怀抱"的Windows Terminal - 三升水 - 博客园。
解压下载到的文件 WindowsTerminal_SelfSigned_x86_x64_arm64.7
,解压之。
选择后缀名为.cer
的证书文件,右击选择"安装证书"。
图中蓝色的两处人选其一即可。
接下来,点另一个后缀名为.msixbundle
的文件,就可以安装了:
如果要卸载,也很简单。只需在开始菜单中输入应用和功能
,找到相应的软件,点卸载即可。
安装完 Ubuntu
之后,就可以体验有3类Tab风格的Terminal了,具体安装方法见前文。
按ctrl + T
,打开另一个 Tab
, 此时会看到设置按钮,点击之,会弹出一个 profile.json
的文件。
然后用我上传的主题文件 profile-my.json 的内容替换其中的内容,保存,一会就看到新的主题样式了。比如,新的PowerShell
的样式如下:
切换到WSL
后,就可以体验 Emoji表情
啦,一开始我用输入法键入了几个,发现有些暂时不好输入,但好在可以复制了贴进去。
这里推荐一个字符网站http://cn.piliapp.com/symbol/,找到自己想要的表情,点页面上方的复制,然后贴到 Terminal 中就好了。比如我随便输入了几个,效果如下:
备份地址:
https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal
其他玩法:
Build and install Windows Terminal from Azure DevOps ? Keep IT tidy
https://blog.stomsvik.com/posts/2019/terminal-azure-devops/
如有什么疑问或建议,欢迎及时留言交流~
参考:
Terminal/README.md at master · microsoft/Terminal
https://github.com/microsoft/Terminal/blob/master/README.md
Windows 10 上WSL (Windows上的Linux 子系统)的安装指南 | Microsoft Docs
https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
Donovan Brown | Building the new Windows Terminal with Visual Studio 2019
http://www.donovanbrown.com/post/Building-the-new-Windows-Terminal-with-Visual-Studio-2019
Windows Terminal profile.json
https://gist.github.com/fcharlie/7530d36175bc5249f1ae92be536238cd