Corleone' ink

Back

WSL 初体验Blur image

什么是 WSL#

人人 Vibe Coding 的今天,没有人不用 Claude Code。但 Windows 对这类 CLI 工具的支持一直不太好,尤其是自动执行命令时,频繁报错。以前是买个小型服务器,通过 VS Code 的 远程隧道 来玩,但毕竟服务器是要花钱的。

后来偶然翻到 Claude Code 的文档,发现官方推荐 Windows 用户使用 WSL:Claude Code within WSL,试了一下,相见恨晚。

WSLWindows 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 --install
powershell

这条命令会自动完成以下所有事情:

  1. 启用 WSL 功能
  2. 启用虚拟机平台
  3. 下载并安装 Linux 内核
  4. 将 WSL 2 设为默认版本
  5. 下载并安装 Ubuntu(默认发行版)

如果你不想用 Ubuntu,可以先看看有哪些可选项:

wsl --list --online
powershell

然后指定安装,比如用我喜欢的 Debian,它相比 Ubuntu 更轻量:

wsl --install -d Debian
powershell

安装完成后会提示你重启电脑,重启就行。

设置用户名和密码#

重启后,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 图标 = 指定启动 UbuntuWSL = 启动默认发行版

如果你只安装了一个 Ubuntu,那么点这两个的其中一个都可以,没有任何区别。

如果你安装了两个,需要指定启动的话,为了确保名字输入正确,我们先看一眼当前的列表:

wsl -l -v
powershell

输出类似这样:

  NAME      STATE           VERSION
* Ubuntu    Running         2
  Debian    Stopped         2
powershell

然后指定启动其中一个:

wsl -d Ubuntu
# 或者
wsl -d Debian
powershell

如果你需要更改默认启动:

# -s 是 --setdefault 的缩写
wsl -s Debian
powershell

退出 WSL 就直接关闭终端窗口,或者输入 exit 即可。

包管理器#

Ubuntu 使用 apt 作为包管理器。进入 WSL 后,先更新一下软件源:

sudo apt update && sudo apt upgrade -y
bash

文件系统#

WSL 有自己的文件系统,同时也能访问 Windows 的文件。

在 WSL 中访问 Windows 文件:

Windows 的各个盘符被挂载在 /mnt/ 目录下:

# 访问 C 盘
cd /mnt/c

# 访问 D 盘的某个项目
cd /mnt/d/project
bash

在 Windows 中访问 WSL 文件:

一般来说,安装 WSL 后你的资源管理器左侧会出现 Linux 图标,类似于 Windows 的各个盘符,点击就可以直接进入 WSL 的文件系统。

如果没有,在文件资源管理器的地址栏输入:

\\wsl$
plaintext

或者在 WSL 终端中执行:

explorer.exe .
bash

这会用 Windows 资源管理器打开当前 WSL 目录。

重要提示: 如果你在 WSL 中进行开发,项目文件应该放在 WSL 自身的文件系统中(比如 ~/projects/),而不是 /mnt/c/ 下。跨文件系统操作会有性能损耗,尤其是 npm installgit 操作时会明显变慢。

环境配置#

安装 NVM(Node 版本管理)#

推荐用 nvm 来管理 Node.js 的版本:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
bash

安装完后重启终端,或者执行:

source ~/.bashrc
bash

验证:

nvm -v
bash

然后安装你需要的 Node.js 版本:

# 安装最新的 LTS 版本
nvm install --lts

# 验证
node -v
npm -v
bash

其他的 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

然后可以直接使用 usejdk8usejdk17 来切换版本。

安装 Claude Code#

curl -fsSL https://claude.ai/install.sh | bash
# 或者使用 Node 安装
npm install -g @anthropic-ai/claude-code
bash

安装完成后,直接在项目目录运行:

claude
bash

在 WSL 中使用 Claude Code,终端命令的执行、文件的读写、各种操作都丝滑无比,再也没有 Windows 下那些莫名其妙的报错。

VS Code 与 WSL 联动#

VS Code 官方提供了 WSL 扩展,安装后可以直接在 VS Code 中连接 WSL 环境。

在 WSL 终端中,进入你的项目目录,执行:

code .
bash

VS Code 会自动打开,并连接到 WSL 环境。你会注意到左下角出现了一个绿色的标识,显示 WSL: Ubuntu。此时 VS Code 的终端、文件操作、插件运行,全部都在 Linux 环境中。

实用技巧#

设置默认用户#

如果 WSL 启动时进入了 root 用户,可以设置默认用户。在 Windows 的 PowerShell 中执行:

ubuntu config --default-user yourname
powershell

调整 WSL 内存限制#

WSL 2 默认会占用较多内存。你可以在 Windows 用户目录下创建 .wslconfig 文件来限制:

C:\Users\你的用户名\.wslconfig 中写入:

[wsl2]
memory=4GB
swap=2GB
ini

保存后,重启 WSL 生效:

wsl --shutdown
powershell

最后#

WSL 是 Windows 上最优雅的 Linux 使用方案,它让你在不放弃 Windows 日常使用的前提下,拥有了一个原生的 Linux 开发环境。无论是跑 CLI 工具、搭建开发环境,还是使用 Claude Code 这类对 Unix 环境友好的工具,WSL 都能完美胜任。

如果你和我一样是 Windows 用户,又经常和命令行打交道,WSL 绝对值得一试。

WSL 初体验
https://vnsnclo.cn/blog/wsl
Author Corleone
Published at February 13, 2026
Comment seems to stuck. Try to refresh?✨