最近需要用到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. 一键安装

wsl --install

2. 安装 Ubuntu

wsl --install -d Ubuntu

3. 设置 WSL2

wsl --set-default-version 2

4. 查看状态

wsl -l -v

五、基础使用

启动 WSL

wsl

或:

wsl -d Ubuntu

常用 Linux 命令

ls
cd
pwd
rm -rf

Windows 与 WSL 互通

从 Linux 访问 Windows

cd /mnt/c/Users

从 Windows 访问 Linux

\\wsl$\Ubuntu\home\username

六、开发环境搭建

1. 基础工具

sudo apt update
sudo apt upgrade -y
sudo apt install -y git curl wget vim build-essential

七、Go / Python / Node 编译环境


1. Go 环境(推荐安装官方版本)

安装

sudo apt install golang -y

验证

go version

配置 GOPATH(建议)

编辑:

vim ~/.bashrc

添加:

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

生效:

source ~/.bashrc

测试 Go

mkdir -p ~/go/src/hello
cd ~/go/src/hello

创建:

package main

import "fmt"

func main() {
    fmt.Println("Hello WSL Go")
}

运行:

go run main.go

2. Python 环境

安装

sudo apt install python3 python3-pip -y

虚拟环境(推荐)

pip3 install virtualenv

创建环境:

python3 -m venv venv
source venv/bin/activate

3. Node.js 环境

安装(推荐 NodeSource)

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

验证

node -v
npm -v

八、Docker 集成(重要)

WSL2 是 Docker Desktop 的运行基础。


推荐架构

Windows Terminal
    ↓
WSL (Ubuntu)
    ↓
Docker

验证 Docker

docker --version
docker run hello-world

九、网络机制

WSL2 网络特点

  • 独立虚拟网卡
  • NAT 网络
  • 自动端口映射

常见用法

Windows 访问 WSL

localhost:端口

查看 IP

ip addr

十、性能优化


1. 限制资源

编辑:

C:\Users\你的用户名\.wslconfig
[wsl2]
memory=4GB
processors=2

2. 避免性能问题

不要在:

/mnt/c

做:

  • npm install
  • go build
  • git clone(大项目)

十一、实用技巧


打开资源管理器

explorer.exe .

调用 Windows 程序

notepad.exe file.txt

设置默认用户

ubuntu config --default-user youruser

十二、常见问题


1. Docker 无法运行

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 兼容问题

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐