Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

WSL 配置指南


简介

WSL (Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统) 可以让用户直接在 Windows 10/11 上运行 Linux 环境(包括大多数命令行工具和应用程序), 且不会产生传统虚拟机或双系统的开销。

安装

检查 Windows 版本

WSL 只能在 Windows 10 的较高版本或 Windows 11 上安装。因而,在安装 WSL 前,需要 先检查当前 Windows 系统的版本号是否满足 WSL 的要求。

按下 win + R 键,在打开的运行对话框中键入 winver,然后选择“确定”, 则会弹出“关于 Windows”对话框,会看到类似“版本 21H2 (OS 内部版本 19044)”的字样。 其中,21H2 是 Windows 版本号,19044 是系统内部版本号。

安装 WSL

  1. 在 Windows 系统的搜索框中输入 PowerShellcmd

  2. 以管理员身份打开 PowerShell 或“命令提示符”窗口,输入如下命令:

    $ wsl --install

    此命令将启动 WSL 并默认安装 Ubuntu

  3. 待安装完成后,重启计算机

WSL 默认会将 Linux 发行版安装到 C 盘。如果希望将 Linux 发行版安装到其它磁盘或目录,可以使用:

$ wsl --install Ubuntu --location D:\WSL\Ubuntu

其中,D:\WSL\Ubuntu 是安装目录,可根据实际需求修改。

更详细的安装步骤、常见问题的解决办法以及旧版本 Windows 下的安装方法可以参考 官方安装指南

配置 Linux

打开 PowerShell 或 CMD,运行 wsl 命令即可启动并进入 WSL 提供的 Linux 环境:

$ wsl

通过 WSL 安装 Linux 系统后,还需要对 Linux 系统进行配置。 Ubuntu 和 Fedora 用户可以分别参考《Ubuntu 配置指南》和 《Fedora 配置指南》对系统进行配置,以满足科研工作的需求。

使用 exit 命令可以退出 Linux 环境:

$ exit

WSL 常用命令

WSL 提供了命令 wsl 来管理 WSL。打开 CMD 后,即可在 CMD 中执行 wsl 命令。 下面的命令假定已通过 WSL 安装 Ubuntu,且其名称为 Ubuntu。

查看 wsl 命令的完整帮助文档:

$ wsl --help

列出所有已安装的 Linux 发行版的状态:

$ wsl --list

检查 WSL 状态:

$ wsl --status

停止正在运行的 Linux 发行版:

$ wsl --terminate Ubuntu

注销并卸载某个 Linux 发行版:

$ wsl --unregister Ubuntu

跨系统文件互访

WSL 有 WSL1 和 WSL2 两个版本。WSL2 是安装 Linux 发行版时的默认版本,通常也是更推荐的选择。 但在跨系统访问文件方面(即在 Windows 下访问 WSL 中的文件或在 WSL 下访问 Windows 中的文件), WSL1 在某些场景下可能比 WSL2 更快。因而,在使用 WSL2 时,建议尽量将处理的文件放在 WSL 中, 以避免跨系统访问文件。

对于有经常跨系统操作文件的需求,可以使用如下命令将 Linux 发行版(假定名为 Ubuntu)从 WSL2 转换为 WSL1:

$ wsl --set-version Ubuntu 1

同样的,也可以使用如下命令将 Linux 发行版(假定名为 Ubuntu)从 WSL1 转换为 WSL2:

$ wsl --set-version Ubuntu 2

WSL 访问 Windows

Windows 系统的硬盘挂载在 WSL 的 /mnt 路径下,用户可以在 WSL 终端中 输入 cd /mnt/d 命令进入 Windows 系统的 D 盘,然后便可编辑和运行 D 盘中的文件。

Windows 访问 WSL

在 Windows 下搜索、打开和编辑 WSL 下的文件和目录的方式有以下两种:

  1. 在 Windows 资源管理器的地址栏中输入 \\wsl$,会显示所有已安装的 WSL 目录, 然后根据需要找到文件进行操作

  2. 进入 WSL,在终端输入 cd ~ && explorer.exe .,会在 Windows 下打开 家目录,根据需要找到文件进行操作

在 Windows 下访问 WSL 文件系统时,文件和目录的路径有两种表示方式: 真实路径和 UNC 路径,后者指类似 \\wsl$ 这种格式的路径。

WSL1 支持真实路径访问,但 WSL2 不支持真实路径访问。

Windows 的 CMD 不支持 UNC 路径,所以使用 CMD 时,只能用 真实路径访问 WSL1 文件系统,无法用 UNC 路径访问 WSL1 文件系统,也无法用真实路径 和 UNC 路径访问 WSL2 文件系统。

Windows 的应用程序可以使用真实路径访问 WSL1 文件系统,某些支持 UNC 路径的 软件(如 MATLAB)还可以通过 UNC 路径访问 WSL1 或 WSL2 文件系统。

因此,如果想使用 Windows 的 CMD 以及应用程序编译或运行 WSL 中的文件, 需要先把 Linux 发行版切换到 WSL1 版本,进入 WSL 后新建一个名字独特的文件夹, 然后在 Windows 中对该文件夹进行定位,从而确定其真实的路径。

扩展阅读