在 Windows 上開發 Linux 專案,通常會遇到這些問題:
- 需要在 Windows 撰寫程式碼,但最終執行環境是 Linux,導致相容性問題。
- 透過 Windows 檔案系統讀寫 WSL 2 的 Linux 檔案,導致 效能下降。
- 無法直接在 Windows 上使用 Linux 指令(如
git、npm、pip等)。
解決方案就是 使用 WSL 2 搭配 VS Code,透過一個簡單的指令:
code .直接在 WSL 2 環境內開啟 VS Code,實現 Windows 與 Linux 的無縫開發體驗。
如果你是 Windows 使用者,希望能在不離開 Windows 的情況下,體驗原生 Linux 開發環境,這篇指南將幫助你順利上手!
安裝 VS Code 並啟用 WSL 2 整合
在開始之前,請確保你已經安裝:
✅ WSL 2(Windows Subsystem for Linux 2)
✅ Ubuntu(或其他 WSL 2 Linux 發行版)
✅ Visual Studio Code
✅ VS Code 的 WSL 擴充套件
安裝 WSL 2
如果你尚未安裝 WSL 2,請打開 PowerShell(管理員權限),輸入:
wsl --install安裝完成後,重啟電腦,然後確認 WSL 版本:
wsl -l -v你應該會看到:
NAME STATE VERSION
Ubuntu Running 2確保 Ubuntu 運行的是 WSL 2,如果顯示的是 VERSION 1,請使用以下指令升級:
wsl --set-version Ubuntu 2安裝 Visual Studio Code
如果你尚未安裝 VS Code,請前往官方網站下載:VS Code 下載
安裝完成後,開啟 VS Code,並安裝 Remote – WSL 擴充套件:
- 在 VS Code 內打開 擴充功能視窗(快捷鍵
Ctrl + Shift + X)。 - 搜尋 “Remote – WSL”,點擊 安裝。
在 WSL 2 內 Clone 專案並開啟 VS Code
當 WSL 2 設置完成後,我們可以直接在 Linux 環境內 git clone 專案,然後透過 code . 來開啟 VS Code。
在 WSL 2 內 Clone Git 專案
開啟 Windows Terminal 或 WSL 2
點擊 Windows 開始選單,搜尋 Ubuntu,開啟 WSL 2。
確保你在 WSL 2 的 Linux 環境,而不是 Windows。
例如:
uname -a若回傳類似:
Linux DESKTOP-xxxxxx 5.10.16.3-microsoft-standard-WSL2 #1 SMP x86_64 GNU/Linux代表你已進入 WSL 2。
Clone 你的 Git 專案
git clone https://github.com/yourusername/yourproject.git(請將 yourusername/yourproject 替換為你的專案路徑)
切換到專案目錄
cd yourproject cd yourproject
使用 code . 在 WSL 2 內開啟 VS Code
當你進入專案目錄後,執行:
code .這將會:
✅ 開啟 Windows 版 VS Code
✅ 但實際上編輯的是 WSL 2 內的 Linux 檔案
✅ 終端機也將運行在 WSL 2,讓你可以直接執行 Linux 指令
code . 的運作原理
當你在 WSL 2 內部執行 code . 指令時,其實發生了一系列的交互過程,讓 Windows 端的 VS Code 能夠直接編輯 WSL 2 內的 Linux 檔案,並讓 VS Code 的終端機 直接運行在 WSL 2 環境。
這個過程可以拆解成以下幾個步驟:
graph TD;
A[在 WSL 2 內執行 \`code .\`] -->|啟動 VS Code Server| B[WSL 2 內部啟動 VS Code Server]
B -->|建立本機通訊通道| C["Windows VS Code 連接 VS Code Server"]
C -->|獲取 WSL 2 內的專案檔案| D[VS Code 直接存取 Linux 檔案]
D -->|啟動 VS Code 內建終端機| E[終端機運行於 WSL 2 環境]
E -->|執行 Git、NPM、Python 等命令| F[無縫開發 Linux 應用]
啟動 VS Code:WSL 2 內的 VS Code Server
當你在 WSL 2 的 Linux 終端機中執行:
code .WSL 2 會做以下動作:
啟動 WSL 2 內的 VS Code Server(遠端伺服器)
- 這是一個 在 WSL 2 內運行的後端服務,它允許 Windows 端的 VS Code 與 WSL 2 進行通訊。
- 這個伺服器 負責處理 Linux 檔案系統的存取,並讓 Windows 端的 VS Code 可以開啟 WSL 2 內的專案。
- 在技術上,這個伺服器會透過 本機 Socket 來建立連線,而不需要透過傳統的網路協議(如 SSH)。
- 你可以手動檢查 VS Code Server 是否在 WSL 2 內運行:
ps aux | grep vscode 若回傳類似:
youruser 1234 0.0 0.1 123456 7890 ? Ss 10:00 0:00 /home/youruser/.vscode-server/bin/xxxxxxx/server.sh代表 VS Code Server 已啟動,並且正在運行。
設定 WSL 2 的檔案權限與存取
- WSL 2 內部使用的 Linux 檔案系統(ext4) 和 Windows 檔案系統(NTFS) 不完全相同。
- 當
code .被執行時,WSL 2 會確保 Windows 端的 VS Code 可以正確存取 WSL 2 內的 Linux 檔案,而不會受到權限問題影響。
Windows 端 VS Code 連接 WSL 2
當 VS Code Server 在 WSL 2 內部啟動 之後,Windows 端的 VS Code GUI 會透過 Remote – WSL 擴充套件 與 WSL 2 建立連線。
這個過程如下:
Windows VS Code 透過 WSL 2 內建的 IPC(進程間通訊)機制,連接 VS Code Server
- VS Code GUI(Windows 端) 和 VS Code Server(WSL 2 端) 透過一個 本機通道(Localhost Socket) 進行溝通,而不需要網路或 SSH。
- 這樣的設計比傳統的「透過 SSH 遠端連線」方式更加高效,因為它完全運行在本機,不受網路延遲影響。
Windows VS Code 獲取 WSL 2 內的檔案資訊
- 當你開啟的檔案在 WSL 2 內部時,VS Code 不會透過 Windows 檔案系統存取,而是直接存取 Linux 環境的檔案。
- 例如,當你在 WSL 2 內部執行:
ls -la - 你看到的檔案權限和屬性,會與在 Windows
C:磁碟內的檔案有所不同,因為它們實際上是 存儲在 WSL 2 的 ext4 檔案系統中。
同步 Windows 與 WSL 2 內部的終端機環境
- 在 VS Code 內部,你可以打開 內建終端機(快捷鍵
Ctrl + ~),你會看到類似這樣的結果:
youruser@Ubuntu:/home/youruser/yourproject$- 這代表你的終端機已經 運行在 WSL 2 環境,而不是 Windows CMD 或 PowerShell。
- 這意味著你可以直接在 VS Code 內的終端機執行 Linux 指令,例如:
npm install python3 app.py git commit -m "update code"在 VS Code 內使用 WSL 2 終端機
當 Windows 端的 VS Code 透過 VS Code Server 連接 WSL 2 後,你可以直接在 VS Code 內的終端機 運行 Linux 指令。
如何確認 VS Code 內建終端機運行於 WSL 2
- 打開 VS Code 內建終端機(快捷鍵
Ctrl + ~)。 - 執行以下指令檢查 Shell 環境:
echo $SHELL- 如果輸出:
/bin/bash或
/bin/zsh 這代表 你的終端機是運行在 WSL 2 內部,而不是 Windows 的 PowerShell 或 CMD。
- 檢查作業系統
uname -a如果輸出:
Linux DESKTOP-xxxxxx 5.10.16.3-microsoft-standard-WSL2 #1 SMP x86_64 GNU/Linux這代表你當前的終端機環境確實是 WSL 2 的 Linux 核心,而不是 Windows。
code . 的核心優勢
使用 code . 讓 Windows VS Code 與 WSL 2 無縫整合,提供以下優勢:
WSL 2 + VS Code:無縫開發的優勢
總結
- 在 WSL 2 內 Clone Git 專案
- 進入專案資料夾,執行
code . - VS Code 會自動開啟,並存取 WSL 2 內的檔案
- 終端機將運行於 WSL 2,讓你直接使用 Linux 指令
透過 WSL 2 + VS Code,Windows 開發者可以輕鬆體驗 Linux 原生開發環境,讓開發流程更加流暢 🚀!