在 Windows 上打造 Linux 開發環境:WSL2 + Ubuntu + zsh/vim

更新 發佈閱讀 6 分鐘

前言

在工作中我主要使用 Windows 開發,偶爾需要透過 ssh 進入 Linux 主機排查問題。為了在 Windows 上也能擁有一致的 Linux 終端體驗,我希望專精一套指令工具。雖然 Git Bash 足以應付多數情境,但畢竟不是真正的 Linux 環境,使用上仍有差異。

直到安裝 Docker 時,我才接觸到 WSL(Windows Subsystem for Linux)。WSL2 在 Windows 中提供完整的 Linux 核心,Docker 也依賴這個子系統運行。這個環境相對隔離,適合當測試沙盒,壞掉了直接重裝即可。由於它使用的是實際 Linux 核心,相較傳統虛擬機更輕量,體驗也更接近原生。

本文將帶你一步步完成安裝與配置,打造高效的 Linux 開發環境。

安裝前準備

系統需求

Windows 11,並確認相關更新

啟用必要功能

在搜索列查找windows功能,確保下列項目以勾選,並重新開機確保啟用

raw-image

配置 .wslconfig(進階)

.wslconfig 位於 使用者目錄(C:\Users\<你的帳號>\.wslconfig),沒有的話請自行建立檔案

raw-image

配置內容請視本機資源而定,例如:

  1. 有可能使用docker或編譯大型專案,記憶體上限10GB,如果是一般開發,4GB即可
  2. processors用來限制可使用的CPU核心數
  3. swap 作為記憶體的備援空間
  4. guiApplications預設有圖形化介面,但我並不打算使用,可以省一點效能
  5. localhostForwarding可以理解為docker的port mappping,讓window上本機的localhost:8080跟wsl內的結果一致

安裝

開機終端機,鍵入下列指令即可

wsl --install -d Ubuntu

安裝過程會要求建立一組使用者帳號密碼,其中打密碼時並不會顯示在畫面上,避免洩漏安全資訊,並且會要求輸入兩次。

結束後即安裝完成,此時就算關閉終端機,wsl並不會停止,可以開啟工作管理員確認。

raw-image

其中VmmemWSL會背景運行,要完全關閉須執行

wsl --shutdown

要再次開啟Ubuntu,只需要在終端機新增頁籤,就會觸發wsl啟動。

raw-image

套件管理工具

前面忘了提及,Linux有許多的發行版本,我使用的是比較常入門的Ubuntu。
在Ubuntu上,應用程式的大多可以透過套件管理工具進行安裝,使用的是apt

第一件事就是先更新apt管理的套件清單,加上sudo避免權限不足。完成後,大多數常見的軟體安裝步驟,已變成是一行指令可以搞定的作業。

# 更新套件清單
sudo apt update
sudo apt upgrade -y

# 安裝git​
apt install git

zsh

如果你跟著步驟執行,會發現跟我圖中展示的不太一樣,這是因為我另外安裝了終端機zsh,以及oh-my-zsh等調整外觀及自動補全(autocomplete)功能,接下來就跟著鍵入指令進行安裝。

raw-image
# 1. 安裝zsh
sudo apt update
sudo apt install zsh -y

# 2. 切換預設 shell 為 zsh
chsh -s $(which zsh)

# 3. 安裝oh-my-zsh(官方腳本)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 4. 安裝常用插件(自動補全、語法高亮)
# zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting​

完成後記得編輯~/.zshrc,裡面是zsh的配置,在啟動時進行載入,並確保

plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

存檔後記得source ~/.zshrc重新載入配置

vim

至於編輯器,由於大多數企業網路政策多有限制,配置上盡量簡單越好,所以採用vim及基本插件。最後附上參考自youtube的教學,照著做出下列結果,也是可以打造出不需要滑鼠且美觀的高效率開發環境。

raw-image

結語

如果你也在 Windows 上開發,卻偶爾需要 Linux 的指令或環境,WSL2 是一個非常輕量又方便的選擇。只要幾行指令,就能打造出一致的終端體驗,甚至加上 zsh、vim 讓操作更順手。這樣的快速試誤,或許會成為你日常開發的好幫手,不妨親自試試,感受它帶來的效率提升。

參考來源


留言
avatar-img
留言分享你的想法!
avatar-img
Err500
13會員
82內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
Err500的其他內容
2024/09/13
本文探討在Linux系統中如何處理字型檔案,包括字型檔的安裝路徑、使用指令進行管理和常見問題的解答。 透過實際測試步驟,讀者將學習如何將字型檔案傳輸到遠端Linux主機,並確認其載入狀況,解決字型未生效及權限不足的問題,提升讀者對Linux操作的熟悉度。
2024/09/13
本文探討在Linux系統中如何處理字型檔案,包括字型檔的安裝路徑、使用指令進行管理和常見問題的解答。 透過實際測試步驟,讀者將學習如何將字型檔案傳輸到遠端Linux主機,並確認其載入狀況,解決字型未生效及權限不足的問題,提升讀者對Linux操作的熟悉度。
2024/03/30
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
Thumbnail
2024/03/30
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
Thumbnail
2023/02/23
進入官方網站,根據自己電腦的作業系統,選擇適合的安裝檔。 切記,注意一下基本的配備要求
Thumbnail
2023/02/23
進入官方網站,根據自己電腦的作業系統,選擇適合的安裝檔。 切記,注意一下基本的配備要求
Thumbnail
看更多