黑科技搶先嘗 - 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學習視頻!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM