什么是 WSL#
人人 Vibe Coding 的今天,没有人不用 Claude Code。但 Windows 对这类 CLI 工具的支持一直不太好,尤其是自动执行命令时,频繁报错。以前是买个小型服务器,通过 VS Code 的 远程隧道 来玩,但毕竟服务器是要花钱的。
后来偶然翻到 Claude Code 的文档,发现官方推荐 Windows 用户使用 WSL:Claude Code within WSL,试了一下,相见恨晚。
WSL(Windows Subsystem for Linux),即适用于 Linux 的 Windows 子系统。简单来说,它可以让你在 Windows 上直接运行一个完整的 Linux 环境,不需要虚拟机,也不需要双系统。它不是模拟器,而是微软官方支持的、与 Windows 深度集成的 Linux 发行版运行环境。目前 WSL 有两个版本:
- WSL 1: 通过翻译层将 Linux 系统调用转换为 Windows 系统调用,没有真正的 Linux 内核。
- WSL 2: 运行一个真正的 Linux 内核(基于 Hyper-V 轻量级虚拟化),性能更强,兼容性更好。
我们用 WSL 2,它已经是默认版本。
和买服务器用远程隧道比,WSL 有什么优劣势?
- WSL:零成本、零延迟、离线可用、与 Windows 深度集成、配置简单。但会吃本机资源、不能远程访问、算力上限就是你的电脑。
- 服务器:算力强、随时随地访问、不占本机资源、环境持久化。但要花钱、依赖网络、有延迟。
对于我的场景,在 Windows 上用 Claude Code,WSL 完胜。因为 Claude Code 本身不需要多大算力,它需要的只是一个正常的 Unix 终端环境,WSL 正好就是最轻量、零成本的解决方案。
安装 WSL#
前提条件#
- Windows 10(版本 2004 及更高版本)或 Windows 11
- 已启用虚拟化(通常 BIOS 中默认开启)
一条命令#
管理员 身份打开 PowerShell 或终端,执行:
wsl --installpowershell这条命令会自动完成以下所有事情:
- 启用 WSL 功能
- 启用虚拟机平台
- 下载并安装 Linux 内核
- 将 WSL 2 设为默认版本
- 下载并安装 Ubuntu(默认发行版)
如果你不想用 Ubuntu,可以先看看有哪些可选项:
wsl --list --onlinepowershell然后指定安装,比如用我喜欢的 Debian,它相比 Ubuntu 更轻量:
wsl --install -d Debianpowershell安装完成后会提示你重启电脑,重启就行。
设置用户名和密码#
重启后,Ubuntu 会自动启动一个终端窗口,提示你创建用户名和密码:
Enter new UNIX username: yourname
New password:
Retype new password:plaintext这个用户名和密码是 Linux 环境内部的,和 Windows 账户无关。密码输入时不会显示,正常输入然后回车即可。
基本使用#
启动与退出#
安装完成后,你可以通过以下方式启动 WSL:
- 点击安装的好的 Ubuntu 图标。
- 点击安装好的 WSL 图标。
- win + r 输入
wsl回车。 - 在任意打开的终端中输入
wsl回车。 - Windows Terminal 中直接选择 Ubuntu 标签页。
那么你会想,点击 Ubuntu 图标和点击 WSL 图标有什么区别?
- 点击 Ubuntu 图标:直接启动你安装的 Ubuntu 发行版,进入 Ubuntu 的终端。
- 点击 WSL 图标(或运行
wsl命令):启动你设置的 默认发行版。如果你只装了 Ubuntu,效果一样。但如果你装了多个发行版(比如 Ubuntu 和 Debian),wsl会启动默认的那个。
所以本质上:Ubuntu 图标 = 指定启动 Ubuntu,WSL = 启动默认发行版。
如果你只安装了一个 Ubuntu,那么点这两个的其中一个都可以,没有任何区别。
如果你安装了两个,需要指定启动的话,为了确保名字输入正确,我们先看一眼当前的列表:
wsl -l -vpowershell输出类似这样:
NAME STATE VERSION
* Ubuntu Running 2
Debian Stopped 2powershell然后指定启动其中一个:
wsl -d Ubuntu
# 或者
wsl -d Debianpowershell如果你需要更改默认启动:
# -s 是 --setdefault 的缩写
wsl -s Debianpowershell退出 WSL 就直接关闭终端窗口,或者输入 exit 即可。
包管理器#
Ubuntu 使用 apt 作为包管理器。进入 WSL 后,先更新一下软件源:
sudo apt update && sudo apt upgrade -ybash文件系统#
WSL 有自己的文件系统,同时也能访问 Windows 的文件。
在 WSL 中访问 Windows 文件:
Windows 的各个盘符被挂载在 /mnt/ 目录下:
# 访问 C 盘
cd /mnt/c
# 访问 D 盘的某个项目
cd /mnt/d/projectbash在 Windows 中访问 WSL 文件:
一般来说,安装 WSL 后你的资源管理器左侧会出现 Linux 图标,类似于 Windows 的各个盘符,点击就可以直接进入 WSL 的文件系统。
如果没有,在文件资源管理器的地址栏输入:
\\wsl$plaintext或者在 WSL 终端中执行:
explorer.exe .bash这会用 Windows 资源管理器打开当前 WSL 目录。
重要提示: 如果你在 WSL 中进行开发,项目文件应该放在 WSL 自身的文件系统中(比如
~/projects/),而不是/mnt/c/下。跨文件系统操作会有性能损耗,尤其是npm install或git操作时会明显变慢。
环境配置#
安装 NVM(Node 版本管理)#
推荐用 nvm 来管理 Node.js 的版本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bashbash安装完后重启终端,或者执行:
source ~/.bashrcbash验证:
nvm -vbash然后安装你需要的 Node.js 版本:
# 安装最新的 LTS 版本
nvm install --lts
# 验证
node -v
npm -vbash其他的 nvm 命令自查。
安装 JDK#
我自己习惯手动安装,然后通过 alias 别名来切换版本。
下载 jdk8 和 jdk17 到 /usr/local/java/ 目录下。
设置环境变量:
# 定义路径
export JDK8_HOME="/usr/local/java/jdk8"
export JDK17_HOME="/usr/local/java/jdk17"
# 默认使用 JDK17
export JAVA_HOME=$JDK17_HOME
export PATH=$JAVA_HOME/bin:$PATH
# 别名
alias usejdk8='export JAVA_HOME=$JDK8_HOME; export PATH=$JAVA_HOME/bin:$(echo $PATH | sed -E "s|/usr/local/java/jdk[^/]+/bin:?||g"); java -version'
alias usejdk17='export JAVA_HOME=$JDK17_HOME; export PATH=$JAVA_HOME/bin:$(echo $PATH | sed -E "s|/usr/local/java/jdk[^/]+/bin:?||g"); java -version'bash然后可以直接使用 usejdk8 和 usejdk17 来切换版本。
安装 Claude Code#
curl -fsSL https://claude.ai/install.sh | bash
# 或者使用 Node 安装
npm install -g @anthropic-ai/claude-codebash安装完成后,直接在项目目录运行:
claudebash在 WSL 中使用 Claude Code,终端命令的执行、文件的读写、各种操作都丝滑无比,再也没有 Windows 下那些莫名其妙的报错。
VS Code 与 WSL 联动#
VS Code 官方提供了 WSL 扩展,安装后可以直接在 VS Code 中连接 WSL 环境。
在 WSL 终端中,进入你的项目目录,执行:
code .bashVS Code 会自动打开,并连接到 WSL 环境。你会注意到左下角出现了一个绿色的标识,显示 WSL: Ubuntu。此时 VS Code 的终端、文件操作、插件运行,全部都在 Linux 环境中。
实用技巧#
设置默认用户#
如果 WSL 启动时进入了 root 用户,可以设置默认用户。在 Windows 的 PowerShell 中执行:
ubuntu config --default-user yournamepowershell调整 WSL 内存限制#
WSL 2 默认会占用较多内存。你可以在 Windows 用户目录下创建 .wslconfig 文件来限制:
在 C:\Users\你的用户名\.wslconfig 中写入:
[wsl2]
memory=4GB
swap=2GBini保存后,重启 WSL 生效:
wsl --shutdownpowershell最后#
WSL 是 Windows 上最优雅的 Linux 使用方案,它让你在不放弃 Windows 日常使用的前提下,拥有了一个原生的 Linux 开发环境。无论是跑 CLI 工具、搭建开发环境,还是使用 Claude Code 这类对 Unix 环境友好的工具,WSL 都能完美胜任。
如果你和我一样是 Windows 用户,又经常和命令行打交道,WSL 绝对值得一试。
