黑科技抢先尝 - Windows全新终端初体验(附无需编译就能安装的Preview版本及代码Build全过程)


微软在几天前的build大会上展示了 `Windows Terminal`的威力,由于官宣要在6月中旬才上`Microsoft store`,还有一个多月要等呢。好在代码已公布在 github, 于是决定自己 build 后体验一番。遇到不少坑,大概整理一下流程,分享给大家。如果大家如果发现问题,欢迎指正。
**官方短视频如下:** https://v.qq.com/x/page/p0869ovd7aw.html
build大会中的完整版视频(含英文字幕): https://v.qq.com/x/page/e0870hucdzs.html

将Window 10 升级到1903版本

试过用Windows 10 更新助手(Windows 10 update assistant)来升级Windows 10, 发现只能升级到1809版本。而编译 github 上的 Microsoft terminal 代码必须使用Window 10的1903版本.
因为不升级,解决其他所有的问题,最后会报这个错(代号DEP 3321):
Windows-need-update

好在前不久听说了工具网站 MSDN, 我告诉你上可以下载到该版本的镜像。

1557627006164

关于版本选择,到底选Consumer版还是Business版呢?经大佬Edi Wang指点,得悉如下信息:

  • 如果你的 Windows 是 家庭版或专业版,请选择 Consumer
  • 如果你的 Windows 是 企业版,请选择 Business

至于ed2k://资源的下载,你使用百度云盘的离线下载也好,使用迅雷也行。


敲黑板: 安装好Windows 10 1903版后,如果不打算编译代码可直接跳到标题直接安装预编译版本继续阅读~


安装好git, 从github上clone代码

首先需要安装好 git for Windowshttps://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

1557625927965

等 clone 完成,就可以进行下一步了。

确保 Clone 仓库完成后,还可以使用以下命令Clone子模块:

git submodule update --init --recursive

安装 VS 2019 和 .NET core 3.0 SDK

先安装 vs 2019 professional 或 enterprise版本,github上的文档提到了要编译 window terminal 必须勾选上:

  • Desktop Development with C++
  • Universal Windows Platform Development
  • Windows SDK version 10.0.18362.0

再安装好.net core 3.0 SDK,比较简单,就不再详述。

在vs的设置里,勾选.NET core下的"Use preview SDK"(使用.NET Core SDK预览版),重启 VS。

img3

在 vs 2019 中打开Windows terminal项目(对应文件夹Terminal)下的OpenConsole.sln, 如果不勾选"使用.NET Core SDK预览版"直接编译,很可能会报下面的 Error:

1557627653748


重定解决方案目标

在上一步中,用vs2019打开OpenConsole.sln时,系统会提示你将项目重新定位到 v142。 对于“Windows SDK版本”,请选择“10.0.18362.0”。 将“Platform Toolset”设置为“Upgrade to v142”。
1557632133871

然后往下拖,按下图设置:

1557632360926

设置完后,单击最下面的OK。

当然,如果误点了"取消",也能通过右键单击整个Solution -> Retarget solution来设置:
Retarget


设置好编译平台和启动的项目

在你尝试再次build之前,请确保你已经选择好与你的计算机匹配的编译平台(Solution Platform)。

不知道你一开始打开Solution OpenConsole.sln时编译平台和启动项目是什么样的,我的是这样的:

1557631342884

要正确地 build,这里需要根据自己电脑的实际情况来设置。比如我的x64的,就配置如下:

1557629911752

否则会出现很多错误。


编译成功后出现一个新的Powershell

解决完编译时的各种状况之后,Ctrl + F5 运行项目。

唉,和之前的Powershell有何不一样呢?按Ctrl + T之后会多了个菜单,同一个窗口中可以有多个Tab,而其他功能暂时没进来,等正式版。

尝试新的跨平台 PowerShell https://aka.ms/pscore6 

1557632560061

任务栏中相应的图标为:

1557634914551

Ctrl + T之后, 右上角会出现一个以+开头的菜单

1557632764029

但你在菜单中切换到cmd的时候,视频中的酷炫效果就有一点出来的迹象了:

1557632951609

接下来,介绍一下如何在上面这个新的cmd中使用Linux命令,以我最熟悉的Ubuntu为例来介绍吧。


安装Ubuntu

在Microsoft store里搜索到Ubuntu,然后购买,安装。这实际上就是WSL (Windows Subsystem for Linux)。

1557633269919

当然,你想体验其他版本的 Linux,也是可以的,比如Arch Linux

1557633347262


在编译出来的命令行中使用Linux命令

安装完WSL版的 Linux 后,还需要开启WSL的权限:

以"管理员权限"另开一个PowerShell窗口,

1557633727047

然后输入如下命令:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

1557633836814

等这里的命令完成,就可以在build出来的 Terminal 中执行 Linux 命令了。

先在cmd中输入 ubuntu, 需要花一点点时间启动 Ubuntu, 设置好用户名和密码。

然后就可以愉快地玩Ubuntu了,下面我随便输入了几个命令 ps, touch, ls等,如下图所示。

1557633540178


## 直接安装预编译版本

如果自己不想配置和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的证书文件,右击选择"安装证书"。

1557666142919

1557666174961

1557666206499

1557666264381

图中蓝色的两处人选其一即可。

接下来,点另一个后缀名为.msixbundle的文件,就可以安装了:

1557666483104

如果要卸载,也很简单。只需在开始菜单中输入应用和功能,找到相应的软件,点卸载即可。

1557666551031


## 使用自定义主题

安装完 Ubuntu 之后,就可以体验有3类Tab风格的Terminal了,具体安装方法见前文。

ctrl + T,打开另一个 Tab, 此时会看到设置按钮,点击之,会弹出一个 profile.json的文件。

然后用我上传的主题文件 profile-my.json 的内容替换其中的内容,保存,一会就看到新的主题样式了。比如,新的PowerShell的样式如下:

1557667349751
当然了,你还可以根据自己的需要在这个配置的基础上自由发挥,不过提醒一点设置字体时要小心,如果该字体终端中找不到,切换类型时整个 Terminal 会崩掉。

为不同类型的 Tab 加上图标

可以在这个位置添加图标:

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

我在该文件夹中放入了一些32x32的PNG,然后在profile.json中可以用ms-appdata://开头的路径来引用图片资源。

图标可从这里获得:
icons

然后将下面新的profile-withIcons.json文件的内容替换之前的设置.
profile-withIcons.json

弄完后文件夹中的内容是这样的:
dir

最后的使用效果是:

icons


其他版本的主题文件:

profiles_Scott.json

profiles_baiyue.one.json

profile.json中更多配置参数的含义,各位需要自己去Solution Terminal中搜索相应的字段(C++代码)看看了~


## 使用 Emoji 表情

切换到WSL后,就可以体验 Emoji表情啦,一开始我用拼音输入法键入了几个,发现该方法下暂时不方便输入 Emoji 表情。

好在在Windows 10上还有另外两种方式可以输入Emoji 表情:

  • Windows 10自带的 Emoji 表情输入,有快捷键
  • 使用第三方 Emoji 表情工具,复制了贴进去

对于第一种方式,我也是刚会不久,Windows 10 中使用 【Win + .】 或 【Win + ;】可调出表情输入面板,然后继续使用 Win + . 可以选中表情。当然这里的. 和 ; 都是英文状态下的半角符号。
win10-emoji

对于对二种方式,这里推荐一个字符网站http://cn.piliapp.com/symbol/(可能需要Kēxué地上网),找到自己想要的表情,点页面上方的复制,然后贴到 Terminal 中就好了。比如我随便输入了几个,效果如下:

emoji-BravoYeung

要临时放大字体怎么办,按 Ctrl + 鼠标滚轮 即可。

emoji2
后面这张图基本上覆盖了官方宣传视频中的所有 Emoji 表情 。


**备份地址:**

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



作者简介:Bravo Yeung,计算机硕士,知乎干货答主(获81K 赞同, 38K 感谢, 235K 收藏)。曾在国内 Top3互联网视频直播公司工作过,后加入一家外企做软件开发至今。


如需转载,请加微信 iMath7 申请开白!


欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,学习能力的提升上有新的认识,欢迎转发分享给更多人。


欢迎各位读者加入 .NET技术交流群,在公众号后台回复“加群”或者“学习”即可。


大白技术控 公众号名片

文末彩蛋

微信后台回复“asp”,给你:一份全网最强的ASP.NET学习路线图。


回复“cs”,给你:一整套 C# 和 WPF 学习资源!


回复“core”,给你:2019年dotConf大会上发布的.NET core 3.0学习视频!

posted @ 2019-05-12 13:49  大白技术控  阅读(23215)  评论(19编辑  收藏  举报