Windows 开发者的最优解

前端生态天生长在 Linux 上——Node、npm 脚本、各种 CLI 工具,在 Windows 原生下经常冒出路径分隔符、文件权限、行尾字符、符号链接这些怪问题。Claude Code 在 Windows 原生也能跑,但子进程、文件监听、POSIX 工具链的表现都差一截,真正顺手的体验基本都在 WSL 里。好消息是 WSL2 让你在 Windows 里跑一个真正的 Linux 内核,文件、网络、GPU、USB 都打通,装完之后你就当自己在用 Ubuntu 就行。

一条命令装好

要求是 Windows 10 版本 2004 以上或 Windows 11,现在大多数机器都满足。确认一下系统版本(设置 → 系统 → 关于)之后,以管理员身份打开 PowerShell 跑:

wsl --install

这一条命令会启用 WSL 和虚拟机平台、下载 WSL2 内核、安装默认的 Ubuntu 发行版。跑完重启电脑,重启后 Ubuntu 窗口会自己弹出来让你设用户名和密码。用户名建议全小写无空格,密码是 sudo 用的随意设但要记住——这里屏幕不会显示 *,盲打就行。

进去之后先做一次系统更新:

sudo apt update && sudo apt upgrade -y

回到 PowerShell 确认一下版本:

wsl -l -v

输出里 VERSION 必须是 2。如果显示 1,跑 wsl --set-default-version 2wsl --set-version Ubuntu 2 切过去。

两件会极大提升体验的事

第一件是装 Windows Terminal。微软商店搜就能找到,比默认终端好看太多,多标签、主题、字体全都支持,后面所有 CLI 操作都会在它里面跑。

第二件容易被忽略但后果严重:项目要放在 WSL 原生文件系统里,不要放在 /mnt/c/。跨文件系统访问 Windows 盘的速度比原生慢 5 到 10 倍,pnpm install 一个稍大一点的前端项目就能让你等到怀疑人生,node_modules 一多甚至会直接卡死。养成所有代码都放到 ~/code/ 下的习惯:

cd ~ && mkdir -p code && cd code
git clone ...

需要从 Windows 端看 WSL 里的文件,资源管理器地址栏输 \\wsl$\Ubuntu\home\你的用户名 就能访问。

内存和 CPU 可以手动限制。默认 WSL 会吃掉很多系统资源,在 C:\Users\你\.wslconfig 写一份配置:

[wsl2]
memory=8GB
processors=4
swap=4GB

PowerShell 里 wsl --shutdown 一下,下次启动生效。

几个真实会踩到的坑

wsl --install 报"不认识这个命令"说明 Windows 版本太老,去微软商店搜 "Windows Subsystem for Linux" 手动装。

装完 WSL 打不开或者黑屏,八成是 BIOS 里虚拟化没开。搜你的电脑型号加 "enable virtualization in BIOS",找到 VT-x / AMD-V / SVM 对应开关打开。

公司 VPN 和 WSL 联网冲突是另一个常见陷阱——某些企业 VPN 会让 WSL 解析不了 DNS 或者整个联不上网。搜 "WSL2 VPN DNS" 有一堆针对不同 VPN 客户端的修复方案,或者直接找 IT 帮忙。

还有一个容易忘记的:WSL2 的虚拟磁盘只涨不缩,用久了会吃掉几十 GB 的 Windows 分区。需要回收空间时,PowerShell 关掉 WSL,然后用 diskpart 压缩 ext4.vhdx

wsl --shutdown
diskpart
# 在 diskpart 里:
# select vdisk file="C:\Users\你\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu.../LocalState/ext4.vhdx"
# compact vdisk
# exit

数据不会丢,只是把已释放的空间还给 Windows。

装完 WSL 只是打好底座,下一篇在 Ubuntu 里把 Node、Git、zsh、VS Code Remote 一套装齐。

参考资料

版权声明: 如无特别声明,本文版权归 sshipanoo 所有,转载请注明本文链接。

(采用 CC BY-NC-SA 4.0 许可协议进行授权)

本文标题:安装 WSL2:Windows 下的 Linux 开发环境

本文链接:https://www.sshipanoo.com/blog/ai/claude-code/02-安装WSL/

本文最后一次更新为 天前,文章中的某些内容可能已过时!