[Windows 10] WSL 安裝流程,美化與心得(包含個人優缺點等..)

[前言]

久違的更新
Windows Subsystem for Linux (WSL) 是微軟近期開發的重點功能之一
簡單來說就是可以讓你在Windows上執行Linux
但卻又不是像Virtual Box或VMware那樣是虛擬的
你基本上可以再WSL上執行、安裝任何Linux的指令、套件
這樣看似有點多此一舉,不過不得不承認有的時候執行一些東西再Linux上還是比較方便
除此之外,另一個優點是你可以用美美的Terminal,不論是直接開啟或是在VS Code裡

不過,WSL畢竟不是真正的Linux,勢必會有一些缺點
以下提供一些我個人使用上遇到的問題與優缺點分析
並說明如何安裝、使用並美化他

[優缺點]

  • 優點:
    • 美美的Terminal,充滿各種Icon跟圖示,當然zsh也可以用
    • 可以執行Linux的指令,再也不用受ifconfig跟ipconfig這種痛苦 [註1]
    • 微軟原生的功能,相容性很完美,VS Code運作良好,Debug mode也可以執行
    • 兩個系統資料可互相存取
  • 缺點:
    • 效能不佳,對於需要大運算的程式還是建議在Windows上完成
    • 若使用WSL2,會導致部分其他程式的執行問題,例如安卓模擬器
    • 如果有使用Hamachi,會導致WSL的網路功能異常
目前遇到的比較麻煩的缺點基本上都還算是可以排除拉
不過底線的兩點需要特別留意一下
如果有要開模擬器掛手遊或是Hamachi跟朋友玩區網遊戲的 (我)
可以思考一下

[註1]
到了Windows 10,cmd基本上已經被Power Shell取代
PS也可以用部分Linux的指令,例如cd之類的

[該準備的東西]

1. 更新到最新的Windows 10,或最少1903以上
2. Microsoft Store 
3. 除錯知識

注意,安裝WSL的時候需要開啟Windows 10裡的一些功能,特別是WSL2
這些功能並不是預設開啟,所以有可能導致你平常使用的一些程式無法正常運作
請確保你有辦法恢復成原本的Windows 或有辦法排除這些問題

[WSL 1? WSL 2?]

基本上,最快速區分你該使用1或2的點就是
你有沒有需要使用其他虛擬化技術的程式,例如VMware或安卓模擬器
WSL 2微軟改進了許多效能,特別是I/O的部分
但由於WSL 2用的是Hyper-V架構,這會使得其他的虛擬機無法使用

我個人的測試是有效能提升但並沒有飛快這樣
因此我目前的決定是犧牲一點效能換來比較大的相容性
如果想了解更多差異可以看這篇官方文件

[Step by Step]

這裡會分成幾個部分,分別是WSL 1、WSL 2和美化
你可以根據標題自己跳到感興趣的地方
以下指令都是在Power Shell下執行
詳細說明可以看這篇官方文件,裡面很詳細說明了
我純粹搬運而已

  • WSL 1
啟用 WSL 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

開啟 Microsoft Store,選擇你想要的Linux版本


設定使用者名稱與密碼

done!
  • WSL 2
啟用 WSL 功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
啟用虛擬機器平台功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
下載Linux核心更新套件並安裝

設定WSL預設版本
wsl --set-default-version 2
開啟 Microsoft Store,選擇你想要的Linux版本
設定使用者名稱與密碼
(同WSL 1)

done!
  • 美化
完成上面的步驟後,基本上WSL就可以執行了
接下來我們要透過安裝zsh和Powerlevel10k來美化一下他
在開始之前,我強烈建議安裝微軟自己出的Windows Terminal (沒錯 他就叫Terminal)
一樣在Microsoft Store下載
當然你要用你自己的終端機軟體也可以
以下就用Terminal 來做示範

修改Terminal設置

    點選箭頭>設定

    往下滑一點(list裡) 會看到可以用Terminal開啟的終端類型
    將Ubuntu的guid複製到defaultProfile
    這樣子下次一打開就會自動開啟WSL
    


    接著修改字體
    根據Powerlevel10k的建議,我們使用MesloLGS NF字體
    將fontFace改成MesloLGS NF
    
    
    下一步我們更改主題,也就是colorScheme
    你可以在這個網址找任何一個你順眼的主題
    或是使用內建的主題

    如果你使用第一個網址的主題,你會複製到類似這樣的東西
{
"name": "OneHalfDark",
"black": "#282c34",
"red": "#e06c75",
"green": "#98c379",
"yellow": "#e5c07b",
"blue": "#61afef",
"purple": "#c678dd",
"cyan": "#56b6c2",
"white": "#dcdfe4",
"brightBlack": "#282c34",
"brightRed": "#e06c75",
"brightGreen": "#98c379",
"brightYellow": "#e5c07b",
"brightBlue": "#61afef",
"brightPurple": "#c678dd",
"brightCyan": "#56b6c2",
"brightWhite": "#dcdfe4",
"background": "#282c34",
"foreground": "#dcdfe4"
}
    將它們貼在設定檔的schemes裡
    注意json格式! 不要漏了逗號或括號之類的!

    Termianl的設定告一個段落!

安裝zsh和Powerlevel10k

    安裝zsh
$ sudo apt install zsh
$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    安裝完後請重開一個Terminal
    
    安裝相關套件
$ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
$ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k

    設定套件
    開啟~/.zshrc檔,找到以下行數並更改
# Use Powerlevel10k theme
ZSH_THEME="powerlevel10k/powerlevel10k"


# Use plugins
plugins=(zsh-autosuggestions zsh-syntax-highlighting)
//根據自己需求可以安裝不同的套件

    

    當編輯完檔案後,Powerlevel10K的設定應該會跳出來
    如果沒反應就執行這個指令
p10k configure
    接下來根據他的問題來回答並設定想要的效果、圖示等
    完成之後你的終端機(WSL)就變成這樣啦
    

done!

[References]



留言

這個網誌中的熱門文章

[Raspberry Pi]在Pi上編譯 OpenCV 和多語言支援(C++&Python2,3) (2019/9/20更)

[MAC] Macbook pro 2011 Late 更換SSD