在 Windows 11 上透過 Windows Terminal 華麗地執行 Powershell

之前看了保哥的分享,在自己 Win 10 的筆電上安裝了一樣的 Windows Terminal、Powershell 並透過 OhMyPosh 來美化它,使用上是相當舒爽又方便。

只是最近買了新筆電來服役,在 Win 11 的環境下用同樣的步驟安裝似乎會遇到一些問題。

因此一切重來,這邊紀錄一下自己安裝除錯的過程作為參考。

Install Windows Terminal

Windows Terminal 是微軟開發可以用來管理多 tab 的命令視窗,透過 tab 即可以在同一視窗下使用不同的命令列工具。

若沒有安裝,在 Win 10/11 下,可以很輕鬆地透過 Microsoft Store 來安裝:

安裝後開啟便可以開始使用,若想要做一些客製設定(如預設開啟後的目錄、樣式等等),可以直接打開設定的功能調整。

若想要調整命令工具的選單順序,也可以透過左下角的「Open JSON file」開啟進行修改。

並且既然有一份文字設定檔,便可以把它存下來放到自己的版控中,同步到多台電腦來使用。

Install Powershell

既然 Windows 預設就有 Windows Powershell 可以使用,為何還要特別安裝 Powershell 呢?

目前預設安裝的 Windows Powershell 版本預設應該會是 5.1

而我們即將要安裝的 Powershell 版本會是 6.0 以後。

那麼 Windows Powershell 及 Powershell 這兩者有什麼差異呢?

根據微軟官方的說明

Windows PowerShell 5.1 is built on top of the .NET Framework v4.5. With the release of PowerShell 6.0, PowerShell became an open source project built on .NET Core 2.0. 

Powershell 6.0 以上是使用支援跨平台的 .NET Core 所開發的,因此當然是選擇較新的版本來使用囉。

安裝的步驟也是參考微軟官方說明

開啟 Windows Powershell 透過 winget 來安裝

winget install --id Microsoft.Powershell --source winget

完成後開啟 Windows Terminal 即可在列表中看到 Powershell 的選項,並且可透過前項的說明調整選單順序及預設路徑。

透過開啟 $PROFILE 參數值的檔案即可修改 Powershell 啟動時載入的設定檔。

code $PROFILE #透過 VS Code 開啟進行編輯

在此檔案中,可以設定自己喜歡的指令來取代常用的命令:

function gpp() {
    git pull
}

Set-Alias k kubectl

修改完畢儲存後只需在原本的 Powershell 視窗執行以下指令即可載入新的設定檔:

. $PROFILE

Install OhMyPosh

想讓 Powershell 更華麗,可以透過 OhMyPosh 這個主題引擎來達成。

首先打開 Powershell 執行以下指令安裝:

winget install JanDeDobbeleer.OhMyPosh -s winget

接著重啟 Powershell 並透過管理者身分執行,執行以下指令來安裝一個 Nerd Fonts(這邊參考官方建議安裝 Meslo):

oh-my-posh font install

安裝完畢後在 Windows Terminal 設定修改字形並重啟:

會發現字形已經不一樣

再來就可以試著套用主題或是設定成自己想要的樣子。首先用以下指令來開始啟用 OhMyPosh:

oh-my-posh init pwsh | Invoke-Expression

之後就會有一個基礎樣式可以使用。但當然不會每次打開 Powershell 都要重新輸入一次,因此可以將此指令輸入到 Powershell 啟動時會載入的指令檔($PROFILE)。

將上面指令貼上後存檔,回到 Powershell 輸入 . $PROFILE 即可重新載入。

輸入 Get-PoshThemes 可以列出一些官方提供的樣式。

舉例來說想要使用 unicorn 的樣式,可以改成以下指令:

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\unicorn.omp.json"  | Invoke-Expression

開啟後便會套用成功

這些範本檔都是在 local,如果想要做一些客製化修改的話可以直接到該路徑去複製一份出來,並修改指令所讀的檔案路徑即可。

至於修改的設定就再參考官方的說明自己玩玩囉!

發表留言