開始使用 Windows Terminal 吧

Where
6 min readMar 7, 2020

改成開始使用 Windows 的時候最讓我不習慣的就是 command line tool,雖然有試用了 WSL (Windows Subsystem for Linux),但還是不甚喜歡,後來在同事的介紹下幸運的認識了 Cmder,簡直是獲得救贖!

而 Microsoft 在 2019 Build 大會上宣佈推出一款全新的 Windows 終端機,名稱是 Windows Terminal,把目前 Windows上的PowerShellCMD 以及Windows Linux 子系統(WSL)三大環境實現了統一。

最令我驚豔的是,他的 icon 有夠可愛。

Microsoft Terminal Icon

開玩笑的。

基本使用介紹

簡單來說,你可以在 Microsoft Terminal 的視窗裡面開啟 Powershell、cmd、Azure Cloud Shell ,甚至是你自己平常習慣使用的其他工具(當然還是要根據你所使用的工具是否可以有效與 Microsoft Terminal 整合)。像我自己就常常會使用到 Azure Cloud Shell,偶爾也會用到 Powershell,每次都要在到各自的地方去開視窗,有了 Microsoft Terminal 我就可以在一個視窗,不同分業中分別去開啟這些工具,對於懶惰的人,是不是超棒!

Powershell 使用畫面
CMD 使用畫面

如果要開始下載 Windows Terminal,在 Microsoft Store 裡面就可以下在到囉,不過安裝前請注意已先將你的 Windows 系統升級到 Windows 10 1903 以上才可進行安裝。

在 Terminal 中使用 Azure Cloud Shell

新增一個 Azure Cloud Shell 的分頁,畫面會指示你去登入你的 Azure 帳戶。

按照指示行動直到出現以下畫面,就表示登入成功囉!

如果你有多個 tenant,會讓你先選擇你目前要使用的 tenant

選擇完成後就可以開始使用囉!

在 Windows Terminal 中整合 Cmder

像我自己有習慣使用的工具,但我想要整合到 Windows Terminal,該怎麼做?每個工具的實作方式可能會有點不同,這邊僅介紹我常使用的 Cmder 整合方式。

Cmder 的整合方式其實跟你將 Cmder 整合進 VS code 的終端機中的方式滿大同小異的。

首先,如果你沒有在安裝 Cmder 時設定過環境變數,請先依據 Cmder 的offical doc 來設定相關的環境變數

接著,在你的 Windows Terminal 中點選 Settings,會開啟一個 profile.json 的檔案。在 list 的這個欄位裡面多將以下貼上:

{"guid": "{5b4ef9a8-4506-4ac9-930a-5eb1fd0ebf20}","name": "Cmder","commandline": "cmd.exe /k %CMDER_ROOT%/vendor/init.bat","icon" : "%CMDER_ROOT%/icons/cmder.ico","hidden": false,"startingDirectory" : "%USERPROFILE%","fontSize": 11,"background": "#272822","useAcrylic" : true,"acrylicOpacity" : 0.9}
  • guid :每個項目的會有獨一的 guild,可自行設定,不須和我的範例一樣。
  • name:在新增時所顯示的名稱
  • startingDirectory:開啟時的目錄位置
  • fontSize:字體大小
  • background:背景顏色可以自行設定,我這裡選擇的顏色是跟我原本使用 cmder 的顏色一致的
  • useAcrylic:這個項目我有點不太知道該如何解釋,有點類似是否要讓背景有透明模糊感,大概像是我以下截圖的感覺,可以透過 acrylicOpacity 來設定這樣的效果大概要多少

同時,你可以在 defaultProfile 中設定預設要用哪一個 terminal。

"defaultProfile": "{5b4ef9a8-4506-4ac9-930a-5eb1fd0ebf20}",

後記

目前使用上來說,我現在都改成使用 Windows Terminal,尤其是需要不斷用 command 切換各個 server 的時候,可以開分頁的體驗真的很不錯,不得不說,這次的 Windows Terminal 超滿意!

分頁可以自己改名字,就知道這個頁籤是連結到哪台 Server 不會搞混

--

--