wsl的配置和使用

本文最后更新于 2026年7月1日 下午

适用于 Linux 的 Windows 子系统(WSL)是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双重启动。 WSL 旨在为想要同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。

WSL的基本命令

下面的 WSL 命令以 PowerShell 或 Windows 命令提示符支持的格式列出。 要从 Bash/Linux 发行版的命令行运行这些命令,必须将 wsl 替换为 wsl.exe

查询

1
2
3
4
wsl --help  # 完整的命令列表
wsl --status # 检查 WSL 状态。请参阅有关 WSL 配置的常规信息,例如默认分发类型、默认分发和内核版本。
wsl --version # 检查有关 WSL 及其组件的版本信息。
wsl --list --verbose # 列出已安装的 Linux 分发版;查看 Windows 计算机上安装的 Linux 分发版的列表,包括状态(分发正在运行还是已停止),以及运行分发版的 WSL 版本(WSL 1 或 WSL 2)。

安装、更新与卸载

前置工作:

  1. 按下 Win+R,输入 optionalfeatures,回车打开「Windows功能」窗口,勾选以下两个选项:
  • 适用于Linux的Windows子系统
  • 虚拟机平台
  1. 点击窗口底部「确定」,系统会开始安装所选功能,等待安装完成(约1-3分钟,视电脑配置而定)。

  2. 安装完成后,会提示「需要重启电脑才能生效」,点击「立即重启」(务必重启,否则后续步骤会失败)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
wsl --install  # 安装 WSL 和 Linux 的默认 Ubuntu 分发版。在管理员模式下打开 PowerShell运行命令,然后重启计算机。
# 首次启动新安装的 Linux 分发版时,控制台窗口将打开,系统会要求你等待文件取消压缩并存储在计算机上。 所有未来的发射应该需要不到一秒钟的时间。
# 安装 WSL 后,需要为新安装的 Linux 分发版创建用户帐户和密码。

wsl --list --online # 获取有效的发行版名称列表
wsl --install <Distribution Name> # 安装其他 Linux 分发版,比如 `wsl --install Ubuntu-20.04`。如果在 Windows 10 或更早版本上运行 WSL,则可能需要将-d标志包含在命令。如果安装过程停在 0.0%,请先运行 wsl --install --web-download -d <DistroName> 下载发行版,然后再进行安装。
wsl --set-default <Distribution Name> # 若要设置 WSL 命令将用于运行的默认 Linux 发行版,请将 <Distribution Name> 替换为您首选的 Linux 发行版名称。

wsl --set-version <distribution name> <versionNumber> # 若要指定 Linux 发行版运行的 WSL 版本(1 或 2),请将 <distribution name> 替换为发行版的名称,并将 <versionNumber> 替换为 1 或 2。
wsl --set-default-version <Version> # 若要设置 WSL 1 或 WSL 2 的默认版本,请将 <Version> 替换为数字 1 或 2。

wsl --update # 将 WSL 版本更新为最新版本

wsl --unregister <DistributionName>

运行与关机

1
2
3
4
5
6
7
8
9
wsl# 启动WSL
wsl ~ # 在用户主目录中启动 WSL
exit # 退出

wsl --distribution <Distribution Name> --user <User Name> # 从 PowerShell 或 CMD 运行特定的 Linux 分发版。若要打印当前用户名,请使用命令 whoami。
wsl --user <Username> # 为以指定用户身份运行 WSL,请将 <Username> 替换为 WSL 分发中存在的用户的名称。

wsl --shutdown # 关机。立即终止所有正在运行的分发版和 WSL 2 轻型实用工具虚拟机。
wsl --terminate <Distribution Name> # 若要终止指定的分发或阻止其运行,请将 <Distribution Name> 替换为目标分发的名称。

查看当前的Ubuntu版本:lsb_release -a

我的wsl默认安装的Ubuntu版本是Ubuntu 24.04.1 LTS

如果配置了Windows Terminal,则可以直接在标签页右侧的倒三角形下选择启动wsl指定的发行版。

导出和导入

1
2
wsl --export <Distribution Name> <FileName>  # 将指定分发的快照导出为新的分发文件。 默认为 tar 格式。 文件名可以是-,用于标准输入。 
wsl --import <Distribution Name> <InstallLocation> <FileName> # 将指定的 tar 文件导入为新的分发版。 文件名可以是-,用于标准输入。

标识 IP 地址

1
2
wsl hostname -I  # 返回通过 WSL 2 安装的 Linux 分发版的 IP 地址(WSL 2 VM 地址)。
ip route show | grep -i default | awk '{ print $3}' # 返回从 WSL 2(WSL 2 VM)中看到的 Windows 计算机的 IP 地址。

跨平台文件访问

WSL访问Windows文件(无需额外配置,直接访问):

1
cd /mnt/c  # wsl访问windows的C盘

Windows访问WSL文件(两种方式):

  • 在Ubuntu终端中输入 explorer.exe .(注意末尾有空格和点),会自动打开Windows文件管理器,定位到当前WSL目录。
  • 手动打开文件管理器,在地址栏输入 \\wsl$,回车,即可看到所有已安装的WSL发行版,双击进入即可访问文件。

若想获得最快的性能速度,请将文件存储在 WSL 文件系统中,前提是使用 Linux 工具在 Linux 命令行(Ubuntu、OpenSUSE 等)中处理这些文件。 如果是使用 Windows 工具在 Windows 命令行(PowerShell、命令提示符)中工作,请将文件存储在 Windows 文件系统中。 可以跨操作系统访问文件,但这可能会显著降低性能。

例如,在存储 WSL 项目文件时:

  • 使用 Linux 文件系统根目录:\\wsl$\<DistroName>\home\<UserName>\Project
  • 不是 Windows 文件系统的根目录:C:\Users\<UserName>\Project/mnt/c/Users/<UserName>/Project$

如果在 Windows、WSL 或容器之间使用相同的存储库文件夹,请务必设置一致的行尾。

由于 Windows 和 Linux 使用不同的默认行尾,Git 可能会报告大量文件被修改,但这些文件除了行尾之外没有其他差异。 若要防止发生这种情况,可以使用 .gitattributes 文件或在 Windows 端全局禁用行结束转换。 请参阅此 VS Code 文档,了解如何解决 git 行结束问题

配置WSL开发环境

了解如何运行命令以安装默认的 Bash Shell,它使用 Ubuntu,或者可以设置为安装其他 Linux 发行版、使用基本 WSL 命令、设置 Visual Studio Code 或 Visual Studio、Git、Windows 凭据管理器、MongoDB、Postgres 或 MySQL 等数据库、设置 GPU 加速、运行 GUI 应用等。

WSL+VSCode

如果用VS Code开发Linux项目,直接连接WSL,可实现「在Windows中编辑,在WSL中运行」,无需切换环境。

  1. 确保VS Code已安装,打开VS Code;

  2. 安装「Remote - WSL」插件:在VS Code扩展商店中搜索「Remote - WSL」,点击安装(微软官方插件,无需额外配置);

  3. 启动WSL(在Windows终端中输入wsl,启动Ubuntu);

  4. 在VS Code中,点击左下角的「绿色图标」(Remote窗口图标),在弹出的菜单中选择「New WSL Window」;

  5. 等待VS Code连接WSL,连接成功后,左下角会显示「WSL: Ubuntu-22.04」,此时即可在VS Code中打开WSL中的文件、编辑代码、运行命令;

    连接WSL时,确保WSL已正常启动,否则会连接失败;如果连接失败,重启WSL后再尝试。

  6. (可选)安装WSL中的VS Code插件:连接成功后,在扩展商店中搜索「C/C++」「Python」等常用插件,点击「Install in WSL: Ubuntu-20.04」,安装到WSL中,即可正常使用。

运行Linux GUI应用

以文本编辑器为例:

1
2
3
4
5
6
7
# Ubuntu <= 22.04
sudo apt install gedit
gedit ~/.bashrc # 尝试打开文本编辑器窗口

# Ubuntu > 22.04
sudo apt install gnome-text-editor
gnome-text-editor ~/.bashrc # 尝试打开文本编辑器窗口

配置WSL的网络

WSL中ML的GPU加速入门

问题与解决

wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。

  1. 关闭wsl:wsl --shutdown
  2. 在开始菜单找到并打开“wsl settings”。
  3. 网络-网络模式:Mirrored.
  4. 完成。

上面的步骤实际上也是执行了:

  1. 在用户根目录C:\Users\xxx下创建文件.wslconfig

  2. 写入:

    1
    2
    [wsl2]
    networkingMode=Mirrored
  3. 保存。

参考链接


wsl的配置和使用
http://zeyulong.com/posts/c2c1b657/
作者
龙泽雨
发布于
2026年6月26日
许可协议