使用 VS Code + WSL 2:Windows 無縫開發 Linux 專案
更新日期: 2025 年 3 月 4 日
在 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 無縫整合,提供以下優勢:
優勢 | 說明 |
---|---|
✅ Windows VS Code GUI + Linux 環境 | 讓 Windows 使用者可以直接編輯 WSL 2 內的 Linux 檔案 |
✅ 本機 IPC 連線 | 無需透過 SSH,Windows VS Code 直接與 WSL 2 通訊 |
✅ 原生終端機支援 | VS Code 內的終端機直接運行於 WSL 2,可以執行 Linux 指令 |
✅ 高效能檔案存取 | 透過 WSL 2 內建的 ext4 檔案系統,讀寫速度比透過 Windows 檔案系統快 |
✅ 支援開發工具 | 可直接在 WSL 2 內安裝 Git、Node.js、Python、Docker 等工具,無需額外設定 |
WSL 2 + VS Code:無縫開發的優勢
優勢 | 說明 |
---|---|
✅ 原生 Linux 環境 | 直接在 WSL 2 內開發,不會有 Windows 和 Linux 相容性問題 |
✅ 高效能 | 檔案存取速度比 Hyper-V 快,避免 Windows ⇄ WSL 2 的性能損耗 |
✅ 無需雙系統 | 直接在 Windows 內開發 Linux 專案,無需切換作業系統 |
✅ Docker 整合 | 可直接在 WSL 2 內運行 Docker 容器,適合後端開發 |
總結
- 在 WSL 2 內 Clone Git 專案
- 進入專案資料夾,執行
code .
- VS Code 會自動開啟,並存取 WSL 2 內的檔案
- 終端機將運行於 WSL 2,讓你直接使用 Linux 指令
透過 WSL 2 + VS Code,Windows 開發者可以輕鬆體驗 Linux 原生開發環境,讓開發流程更加流暢 🚀!