最近需要用到windows的环境下的go的搭建,由于之前都是mac或者linux环境,突然间跳转windows的环境,很多cmd的命令都混乱,导致一直出错,于是整了一下wsl, 嵌入windows上干活,下面是一份整理后的 WSL 完整教学文档(含 Go / Python / Node 编译环境),已经从原理到实战做了结构化梳理,可直接作为学习或内部文档使用。
一、WSL 概述
WSL(Windows Subsystem for Linux)是 Windows 提供的一个运行 Linux 用户空间的解决方案,使开发者可以在 Windows 上直接使用 Linux 工具链,而无需传统虚拟机。
核心价值
- 在 Windows 上获得原生 Linux 开发体验
- 无需双系统或重量级虚拟机
- 与 Windows 文件系统和工具深度集成
二、WSL 架构原理
1. WSL1(了解即可)
机制:系统调用转换
Linux syscall → Windows 内核 API
特点:
- 启动快
- 兼容性有限
- 不支持 Docker
2. WSL2(主流方案)
机制:轻量级虚拟化(Hyper-V)
Windows
└── Hyper-V
└── Linux Kernel(真实内核)
└── 用户空间(Ubuntu等)
WSL2 优势
- 完整 Linux 内核(100% syscall 兼容)
- 支持 Docker
- 更好的 IO 性能(Linux 文件系统内)
三、文件系统机制(关键理解)
1. Linux 原生目录(推荐开发使用)
/home/username
特点:
- 存储在 ext4 虚拟磁盘中
- 高性能
- 适合代码、编译
2. Windows 挂载目录
/mnt/c/
/mnt/d/
特点:
- 映射 Windows 磁盘
- 访问方便
- 大量小文件性能较差
重要结论
开发代码必须放在 /home 下
四、WSL 安装
1. 一键安装
bash
wsl --install
2. 安装 Ubuntu
bash
wsl --install -d Ubuntu
3. 设置 WSL2
bash
wsl --set-default-version 2
4. 查看状态
bash
wsl -l -v
五、基础使用
启动 WSL
bash
wsl
或:
bash
wsl -d Ubuntu
常用 Linux 命令
bash
ls
cd
pwd
rm -rf
Windows 与 WSL 互通
从 Linux 访问 Windows
bash
cd /mnt/c/Users
从 Windows 访问 Linux
\\wsl$\Ubuntu\home\username
六、开发环境搭建
1. 基础工具
bash
sudo apt update
sudo apt upgrade -y
sudo apt install -y git curl wget vim build-essential
七、Go / Python / Node 编译环境
1. Go 环境(推荐安装官方版本)
安装
bash
sudo apt install golang -y
验证
bash
go version
配置 GOPATH(建议)
编辑:
bash
vim ~/.bashrc
添加:
bash
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
生效:
bash
source ~/.bashrc
测试 Go
bash
mkdir -p ~/go/src/hello
cd ~/go/src/hello
创建:
go
package main
import "fmt"
func main() {
fmt.Println("Hello WSL Go")
}
运行:
bash
go run main.go
2. Python 环境
安装
bash
sudo apt install python3 python3-pip -y
虚拟环境(推荐)
bash
pip3 install virtualenv
创建环境:
bash
python3 -m venv venv
source venv/bin/activate
3. Node.js 环境
安装(推荐 NodeSource)
bash
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
验证
bash
node -v
npm -v
八、Docker 集成(重要)
WSL2 是 Docker Desktop 的运行基础。
推荐架构
Windows Terminal
↓
WSL (Ubuntu)
↓
Docker
验证 Docker
bash
docker --version
docker run hello-world
九、网络机制
WSL2 网络特点
- 独立虚拟网卡
- NAT 网络
- 自动端口映射
常见用法
Windows 访问 WSL
localhost:端口
查看 IP
bash
ip addr
十、性能优化
1. 限制资源
编辑:
C:\Users\你的用户名\.wslconfig
ini
[wsl2]
memory=4GB
processors=2
2. 避免性能问题
不要在:
/mnt/c
做:
- npm install
- go build
- git clone(大项目)
十一、实用技巧
打开资源管理器
bash
explorer.exe .
调用 Windows 程序
bash
notepad.exe file.txt
设置默认用户
bash
ubuntu config --default-user youruser
十二、常见问题
1. Docker 无法运行
bash
wsl -l -v
必须为:
VERSION 2
2. 文件访问慢
原因:
/mnt/c
解决:
→ 使用 /home
3. 内存占用高
→ 使用 .wslconfig 限制
十三、推荐开发环境组合
Windows Terminal
+ WSL2 (Ubuntu)
+ Docker
+ VSCode Remote
+ zsh + oh-my-zsh
十四、总结
WSL2 的本质是:
Windows 上的轻量 Linux 虚拟机
它解决了:
- 开发环境不一致
- 工具链分裂
- Docker 兼容问题
--