让我最终选择WSL的主要原因是AI编程工具的兼容性。之前在Codex里开发一个中文网站时,文件里的中文被改成了乱码,后来安装了PowerShell 7才解决。这类问题并非个例:多数Agent在Windows环境下容易遇到编码、路径、终端等方面的兼容问题。另外,各个Agent会在Windows的user文件夹里生成大量缓存、配置和临时文件,目录容易变得杂乱。把开发环境放进WSL这样一个相对独立的环境里,可以避开这些问题。
WSL2说明
1.什么是WSL 2
WSL全称Windows Subsystem for Linux,顾名思义:
让你在Windows里直接运行Linux。
WSL 2是它的第二代。不需要装双系统,也不需要单独开传统虚拟机,就能在Windows 11里获得一个完整的Linux环境。
对新手来说比较友好,因为可以:
- 大多人的设备依然是Windows,且对其也更为熟悉
- 文件更好取用,不需要烦琐地互传
- 玩坏就算,没有负担
- 方便安装各种Linux环境下的开发工具,不被cmd与PowerShell绊脚
- 连接VS Code非常方便
2.WSL 2能做什么
WSL 2的常见用途包括:
- 学习与接触Linux
- 开发环境的搭建
- 运行Git、Python、curl、wget等常用工具
- 运行在Linux下使用更适合的软件
- 和VS Code搭配进行开发
如果之后打算接触Python、前端开发、后端开发、Git/GitHub、Docker,WSL 2都能派上用场。
3.WSL 2和WSL 1的区别
一个版本号的区别,实际体验天差地别。
WSL 1的特点
- 没有完整的Linux内核
- 文件读写和兼容性存在局限
- 部分Linux程序无法正常运行
WSL 2的特点
- 使用真正的Linux内核
- 对Linux软件的兼容性更好
- Docker、各类开发工具和脚本更容易运行
- 性能通常更好,尤其是Linux原生任务
结论
对Windows用户来说:
直接使用WSL 2,不必考虑WSL 1。
安装
说明:本文以Ubuntu-24.04作为演示发行版。
0.安装前的准备
开始安装前,先确认电脑满足基本条件。
基本条件
- 系统推荐Windows 10及以上,最好是Windows 11
- 拥有管理员权限
- 已开启虚拟化
- 网络可正常链接公网(甚至外网)
1.更新WSL内核&设置默认版本
开启虚拟化后一般需要重启一次。重启之后,在管理员权限的PowerShell下执行:
# 更新WSL到最新版本(包含内核更新)
wsl --update
# 设置默认使用WSL 2(不是WSL 1)
# Windows 10用户需要执行此命令,否则默认使用WSL 1
wsl --set-default-version 2
如果
wsl --update下载速度较慢,可以二选一:
- 改用命令:
wsl --update --web-download- 去GitHub手动下载:地址
注意不要忘记将默认版本设置为2。
2.安装发行版Ubuntu
2.1查看可安装的发行版
wsl --list --online
这条命令会列出当前支持在线安装的Linux发行版。列表中可以看到多个可选项,选择自己喜欢的,下文以Ubuntu为例。
2.2安装Ubuntu-24.04
wsl --install -d Ubuntu-24.04
2.3设置管理员账户和密码
安装完成后会提示创建新用户,按提示输入用户名和密码即可。
注意:用户名以字母或下划线开头,后面可接字母、下划线和数字。然后按Ctrl + D退出即可(原因见下文)。
3.迁移发行版镜像到指定目录
通过命令行安装的发行版默认在系统盘,我对C盘空间管理极其敏感,因此需要将镜像迁移到其他盘,多了这一步。如果恰巧财力雄厚,C盘空间大出天际可以跳过。
3.1在目标位置建立文件夹
按自己的习惯设置目录结构,下文路径仅供参考。
- 文件目录:
D:\wsl - 发行版:
Ubuntu-24.04 - 对应路径:
D:\wsl\Ubuntu-24.04
3.2将已安装的Ubuntu导出为tar压缩包
先确认发行版名称,并关闭WSL:
# 列出已安装的WSL发行版名称、运行状态和版本号
wsl -l -v
# 关闭所有正在运行的WSL实例,避免迁移时文件占用
wsl --shutdown
wsl --export Ubuntu-24.04 D:\wsl\Ubuntu-24.04\Ubuntu-24.04.tar
# 把名为Ubuntu-24.04的发行版导出为一个tar备份文件,保存到D盘指定位置
注意检查:
XXX.tar导出后,建议确认以下几点(后续还要用到):
- 导出确实成功
XXX.tar文件确实存在- 文件大小不是0 KB
3.3注销原来的发行版(位于系统盘的那个)
注销会删除原发行版及其中的全部数据。请先确认上一步导出成功、备份文件存在且大小正常,再执行下面的命令;重新导入并确认数据完整前,不要删除备份。
wsl --unregister Ubuntu-24.04
3.4将压缩包重新导入WSL
wsl --import Ubuntu-24.04 D:\wsl\Ubuntu-24.04 D:\wsl\Ubuntu-24.04\Ubuntu-24.04.tar --version 2
这条命令的作用:将之前导出的Ubuntu备份导入到指定目录,并指定以WSL 2运行。各参数的含义:
- 第一个
Ubuntu-24.04:导入后的发行版名称 D:\wsl\Ubuntu-24.04:新的安装位置,之后的数据都会存放在这里D:\wsl\Ubuntu-24.04\Ubuntu-24.04.tar:作为导入源的备份文件--version 2:指定导入为WSL 2
导入后,指定目录下会出现一个虚拟磁盘映像文件(ext4.vhdx),整个Ubuntu-24.04文件系统都存储在其中。
3.5启动Ubuntu
# 启动
wsl -d Ubuntu-24.04
# 检查
wsl -l -v
除了上述方法,也可以直接下载发行版的镜像文件再导入WSL,具体方法可自行探索。
4.进入Ubuntu之后的配置
4.1更新软件源
Ubuntu默认源位于国外,国内访问速度较慢。换成阿里源或清华源后,更新和下载会快很多(以下以阿里源为例)。
注意:Ubuntu 24.04起,软件源改用deb822格式,配置文件位置从原来的
/etc/apt/sources.list变为/etc/apt/sources.list.d/ubuntu.sources,写法也和旧格式不同。
输入以下命令,用nano打开源文件(nano操作简单,适合新手):
sudo nano /etc/apt/sources.list.d/ubuntu.sources
- 删除文件中的默认源
- 将下面的阿里源内容(Ubuntu 24.04 LTS专用,来自阿里云镜像站)复制粘贴进去(在Ubuntu终端中右键即可粘贴)
- 注意:deb822格式支持以
#开头的整行注释;不同源配置段之间保留空行,不要把注释放在字段值后面
Types: deb
URIs: https://mirrors.aliyun.com/ubuntu
Suites: noble noble-updates noble-backports
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: https://mirrors.aliyun.com/ubuntu
Suites: noble-security
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
- 粘贴完成后,按
Ctrl+O保存,按Enter确认,再按Ctrl+X退出 - 执行以下命令使新源生效
# 更新软件包列表
sudo apt update
# 升级系统软件
sudo apt upgrade -y
4.2安装基础工具curl、wget、git、build-essential
sudo apt install -y curl wget git build-essential
5.安装过程中的补充说明
如何检查Windows 11版本
虽然已经在使用Windows 11,仍建议检查一下版本,避免系统过旧导致问题。
方法1:用“运行”窗口查看
- 按Win + R,输入
winver - 点击“确定”,弹出窗口会显示类似信息:Windows 11、版本22H2、23H2、24H2、OS内部版本
方法2:在设置里查看
- 打开设置 → 系统 → 关于
- 查看Windows规格中的版本与操作系统内部版本
不必追求最新版本,但尽量不要过旧;如果更新过程中需要重启,请先保存工作文件。
如何确认电脑是否开启虚拟化
WSL 2依赖虚拟化。如果未开启,WSL 2可能无法安装或启动。
方法1:任务管理器
- 按Ctrl + Shift + Esc打开任务管理器(简化界面先点“详细信息”展开)
- 切换到性能选项卡,选择CPU
- 在右侧查看虚拟化一项:已启用即已开启,已禁用则未开启
方法2:用命令查看系统信息
在普通的PowerShell或命令提示符中运行systeminfo,向下滚动找到虚拟化相关的内容,例如“虚拟化已在固件中启用”、“Hyper-V要求”。如果显示已启用,一般可以继续安装WSL 2。
如果未开启虚拟化,如何处理?
方法1:图形化界面
- 按Win + R,输入
optionalfeatures,回车打开“Windows功能”窗口 - 勾选以下选项(注意不要漏选,虚拟机相关的选项我都勾选了):
- 适用于Linux的Windows子系统
- 虚拟机平台
- 虚拟机监控程序平台
- Windows Hypervisor Platform(部分系统可能没有此项)
- Hyper-V(如果你的Windows版本支持)
- 点击“确定”,等待系统安装所选功能(约1-3分钟,视电脑配置而定)
- 安装完成后会提示“需要重启电脑才能生效”,点击“立即重启”(必须重启,否则后续步骤会失败)
方法2:命令行
# 启用“适用于Linux的Windows子系统”
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用“虚拟机平台”(WSL2需要)
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# /all:同时启用该功能依赖的父功能
# /norestart:启用功能后不会立即重启
执行完成后必须重启电脑,否则后续步骤很可能失败。
至此,安装教程结束
使用
一些集成和使用方法,方便更好地使用WSL。
文件放在哪:/mnt还是/home
WSL中可以通过/mnt访问Windows的盘符(例如/mnt/c对应C盘),但实际使用中存在两个问题:跨文件系统的读写性能较慢,路径引用也可能出现异常。因此我把项目文件都放在WSL的/home用户目录下使用。
这样做的代价是:所有文件都存储在虚拟磁盘(ext4.vhdx)中,如果WSL环境损坏,里面的数据也会受到影响。不过配合Git定期推送保存,相当于始终保留一份远程备份,这个问题基本可以解决。
在VS Code中连接WSL
1.在Windows中安装VS Code和WSL扩展
先在Windows中安装VS Code,再打开左侧的扩展面板,搜索并安装Microsoft发布的WSL扩展。
VS Code的界面运行在Windows中,项目文件、终端和开发工具运行在WSL中。因此,VS Code安装在Windows侧即可,项目需要的Git、Node.js、Python等工具则安装在Ubuntu中。
2.从左下角连接Ubuntu
- 点击VS Code左下角的远程连接图标,打开远程窗口菜单。
- 选择Connect to WSL using Distro...(使用发行版连接到WSL),再选择
Ubuntu-24.04。如果只有一个默认发行版,也可以直接选择Connect to WSL(连接到WSL)。 - 首次连接时,VS Code会自动在这个发行版中安装VS Code Server,等待连接完成即可。这是让Windows中的编辑器连接WSL的服务,不会替你安装项目需要的编译器或其他开发依赖。
- 连接完成后,左下角应显示WSL: Ubuntu-24.04。菜单名称可能随界面语言和版本略有不同,也可以按
F1,搜索并运行WSL: Connect to WSL using Distro。
首次连接需要联网下载安装VS Code Server,可能会比之后连接慢一些。如果提示安装失败,先检查网络,再重新连接。
3.打开Linux目录下的代码仓库
在已经连接WSL的窗口中,选择文件 → 打开文件夹,找到自己的项目目录,例如:
/home/<用户名>/workspace/<仓库名>
这里的<用户名>和<仓库名>需要换成实际名称。第一次打开自己的仓库时,如果出现工作区信任提示,确认目录和内容可信后再信任。
打开后,窗口标题或资源管理器的工作区名称通常会显示类似:
仓库名 [WSL: Ubuntu-24.04]
看到Linux目录下的仓库,并且左下角显示WSL: Ubuntu-24.04,就说明当前是在WSL环境中开发。标题的具体格式、冒号后的空格可能因VS Code版本和设置而不同,以左下角的连接状态为准。
接着选择终端 → 新建终端,执行:
pwd
输出应该是自己的Linux项目路径,例如/home/ruojin/workspace/my-project,而不是Windows的C:\...路径。如果输出是/mnt/c/...,虽然终端已经运行在WSL中,项目文件仍然放在Windows盘里,可以按上一节的建议将项目放到/home下。
4.也可以从WSL终端直接打开
如果已经在Ubuntu终端中,进入项目目录后执行code .,也能直接打开连接到WSL的VS Code窗口:
# 将my-project替换为自己的仓库目录
cd ~/workspace/my-project
code .
其中.代表当前目录。首次使用同样会安装VS Code Server,之后通常可以直接打开。若提示找不到code命令,检查Windows侧是否已安装VS Code并加入PATH,然后关闭并重新打开WSL终端。
某些扩展需要安装在WSL侧才能使用。连接后,如果扩展面板出现安装到WSL: Ubuntu-24.04的按钮,按项目需要安装即可。
参考:VS Code官方WSL文档、官方入门教程。
