微软在几天前的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):

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

关于版本选择,到底选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

等 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。

在 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的,就配置如下:

否则会出现很多错误。

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

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

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

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

任务栏中相应的图标为:

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

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

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

安装Ubuntu

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

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

在编译出来的命令行中使用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的样式如下:



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

为不同类型的 Tab 加上图标

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

%LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState

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

图标可从这里获得:

icons

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

profile-withIcons.json

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

最后的使用效果是:

其他版本的主题文件:

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 + . 可以选中表情。当然这里的. 和 ; 都是英文状态下的半角符号。

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

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



后面这张图基本上覆盖了官方宣传视频中的所有 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学习视频!

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

  1. 黑科技抢先尝(续) - Windows terminal中WSL Linux 终端的极简美化指南

    目录 修改默认源,为apt-get安装提速 安装python 和 python pip 安装 zsh 安装powerline-font中的特定字体 安装powerline-shell 修改~目录下的配 ...

  2. 黑科技抢先尝(续2) - Windows terminal中Powershell Tab的极简美化指南

    目录 安装python 安装git 安装powerline字体 主题定制 安装oh-my-posh 查看策略组的执行权限 使用choco 安装终端模拟器 - ConEmu 优化 PowerShell ...

  3. 屌丝就爱尝鲜头——java8初体验

    Java8已经推出,让我们看看他的魅力.让我们看看他改变较大的部分. 一.java8概述 Java8是由Oracle(甲骨文)公司与2014年3月27日正式推出的.Java8同时推出有3套语言系统,分 ...

  4. Kinect for Windows SDK开发初体验(一)环境配置

    1.开发环境需求 (1).硬件需求 a.需要拥有双核,2.66GHz以上的CPU. b.显卡支持Microsoft DirectX 9.0c; c.2GB的内存 d.Kinect for Window ...

  5. Windows Azure 免费初体验 - 创建部署网站

    前几天在看到有个学Windows Azure课程,送Windows Azure的活动,课程地址:http://www.microsoftvirtualacademy.com/ 在活得体验资格后,就迫不 ...

  6. Docker在Windows上的初体验

    作为Docker的初学者,我有几个疑问,找到了答案,并实践了一下,希望对和我一样的初学者有帮助: 1.Docker是什么? 大家对虚拟机应该比较熟悉,虚拟机和docker都是为了实现隔离. 虚拟机隔离 ...

  7. Git学习笔记(windows git之初体验)

    阿里国内镜像地址: https://npm.taobao.org/mirrors/git-for-windows/ 最近在学习廖雪峰老师关于git的教程,链接可以在我的首页找到.首先使用国内镜像下载并 ...

  8. CentOS 初体验十四:阿里云安装Gitlab

    网址:https://about.gitlab.com/install/#centos-7 https://blog.csdn.net/zhaoyanjun6/article/details/7914 ...

  9. 转 CentOS 初体验十四:阿里云安装Gitlab

        原文 https://blog.csdn.net/zhaoyanjun6/article/details/79144175 非Unix操作系统(Windows) GitLab是专为Unix操作 ...

随机推荐

  1. LeetCode215:Kth Largest Element in an Array

    Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...

  2. 怎么将linux的动态IP设置成静态IP

    例如我的eth0网卡信息如下 eth0 Link encap:Ethernet HWaddr :0C::AA:B2:CA inet addr:192.168.79.135 Bcast:192.168. ...

  3. dsoframer注冊说明及在VC2010使用

    一.dsoframer在XP.win7和win8中的注冊方法. 从微软站点下载DsoFrmaer_KB311765_x86.exe,双击解开后得到的dsoframer.ocx等文件. (一)XP注冊 ...

  4. 九度OJ 1093:WERTYU (翻译)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1563 解决:609 题目描述: A common typing error is to place the hands on the ke ...

  5. Package template (html/template) ... Types HTML, JS, URL, and others from content.go can carry safe content that is exempted from escaping. ... (*Template) Funcs ..

    https://godoc.org/text/template GoDoc Home About Go: text/templateIndex | Examples | Files | Directo ...

  6. Recurrent neural networks are very powerful, because they combine two properties

    https://www.cs.toronto.edu/~hinton/csc2535/notes/lec10new.pdf Distributed hidden state that allows t ...

  7. MapReduce源代码分析之LocatedFileStatusFetcher

    LocatedFileStatusFetcher是MapReduce中一个针对给定输入路径数组,使用配置的线程数目来获取数据块位置的有用类. 它的主要作用就是利用多线程技术.每一个线程相应一个任务.每 ...

  8. 20170316 ABAP注意点

    1.debug 时在MODIFY db from table 后数据便提交了: 一般情况下,更新数据库需要commit,但debug会自动commit,程序结束也会自动commit. 2.使用at n ...

  9. linux CentOS7.2安装ffmpeg-3.0.2

    ffmpeg是一款视频处理软件,在php5.5前以php_ffmpeg.dll扩展的方式存在,通过网上查资料显示,从php5.5以后不支持该扩展了.那么在linux系统下安装ffmpeg.方法如下: ...

  10. Ubuntu下安装Python3.4及用python编译py文件

    1.安装python 3.4程序 sudo apt-get install python3.4 2.python 3.4是被默认安装在/usr/local/lib/python3.4,删除默认pyth ...