Windows WSL 入门指南:安装、配置与基础使用 – wiki基地


Windows Subsystem for Linux (WSL) 入门指南:安装、配置与基础使用

前言:拥抱 Linux 的强大力量,无需离开 Windows

对于开发者、系统管理员,或者任何需要在 Windows 环境下使用 Linux 工具链、命令行工具、脚本或特定应用的 Linux 爱好者而言,Windows Subsystem for Linux (WSL) 无疑是一项革命性的技术。它打破了 Windows 与 Linux 之间的壁垒,让你能够在 Windows 操作系统内无缝运行一个真实的 Linux 环境,而无需安装虚拟机、双系统,或忍受 Cygwin 等模拟环境的限制。

WSL 并非一个传统的虚拟机,也不是一个简单的模拟层。它最初(WSL 1)是一个兼容层,将 Linux 系统调用转换为 Windows 系统调用。而更先进的 WSL 2 则采用了轻量级虚拟化技术,运行一个真实的 Linux 内核,从而提供了更强的系统调用兼容性、显著提升的文件系统性能以及更广泛的 Linux 应用支持,包括 Docker 等。目前,WSL 2 已成为默认推荐的版本。

本篇文章将带你一步步深入了解 WSL,从零开始指导你完成安装、基础配置,并掌握一些常用的基础操作,让你能够快速上手,利用 WSL 极大地提升你的工作效率和开发体验。无论你是 Linux 新手还是经验丰富的用户,希望这篇指南都能为你打开 WSL 的大门。

第一部分:安装 WSL

WSL 的安装流程已经随着 Windows 版本迭代而变得越来越简单。目前,对于绝大多数用户而言,一个命令即可搞定。

1.1 检查系统要求

在开始安装之前,请确保你的 Windows 版本满足要求:

  • WSL 1: 需要 Windows 10 版本 1607 (周年更新) 或更高版本。
  • WSL 2: 需要 Windows 10 版本 1903 或更高版本,且 Build 版本号大于 18362。对于 Windows 11,所有版本都支持 WSL 2。

要查看你的 Windows 版本和 Build 号,可以按下 Windows 徽标键 + R,输入 winver 并回车。

如果你的 Windows 版本过旧,建议先进行系统更新。

1.2 推荐安装方法(适用于 Windows 10 较新版本及 Windows 11):使用 wsl --install

这是目前最简单、最快速的安装 WSL 的方法,强烈推荐使用。它会自动为你完成以下步骤:

  1. 启用所需的 Windows 可选功能 (Windows Subsystem for Linux 和 Virtual Machine Platform)。
  2. 下载并安装最新的 WSL 2 Linux 内核。
  3. 将 WSL 2 设置为默认版本。
  4. 下载并安装默认的 Linux 发行版(通常是 Ubuntu)。

步骤:

  1. 打开 PowerShell命令提示符(Command Prompt)作为 管理员。你可以通过在开始菜单搜索栏输入 “PowerShell” 或 “cmd”,然后右键点击搜索结果,选择 “以管理员身份运行”。
  2. 在打开的管理员终端窗口中,输入以下命令并回车:

    bash
    wsl --install

  3. 系统会提示你进行安装。这个过程可能需要一些时间,取决于你的网络速度和计算机性能。安装完成后,可能会提示你需要重启计算机。

  4. 重启计算机。
  5. 重启后,WSL 将自动完成最后阶段的设置。通常会为你安装默认的 Linux 发行版(例如 Ubuntu),并在一个单独的窗口中启动它。
  6. 首次启动时,你需要创建一个新的 Linux 用户账户。系统会提示你输入用户名和密码。请记住这个密码,它将用于执行需要管理员权限的操作(使用 sudo 命令)。

    Installing, this may take a few minutes...
    Please create a default UNIX user account. The username need not match your Windows username.
    For more information please visit: https://aka.ms/wslusers
    Enter new UNIX username: [输入你的用户名]
    New password: [输入你的密码]
    Retype new password: [再次输入你的密码]
    passwd: password updated successfully
    Installation successful!

至此,你已经成功安装了 WSL,并且拥有了一个可用的 Linux 环境。

1.3 手动安装方法(适用于旧版本 Windows 或特定需求)

如果你的 Windows 版本不支持 wsl --install,或者你需要进行更精细的控制(例如先安装其他发行版),你可以选择手动安装。这个过程相对繁琐一些。

步骤:

  1. 启用 Windows Subsystem for Linux 可选功能:
    打开 PowerShell 作为管理员,运行以下命令:

    bash
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

  2. 启用 Virtual Machine Platform 可选功能(仅需安装 WSL 2 时):
    打开 PowerShell 作为管理员,运行以下命令:

    bash
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

    WSL 2 需要此功能才能运行其轻量级虚拟化。如果你只想安装 WSL 1,则跳过此步。

  3. 重启计算机。 完成上述功能启用后,需要重启使更改生效。

  4. 下载 Linux 内核更新包(仅需安装 WSL 2 时):
    WSL 2 运行在自己的轻量级虚拟机中,需要一个 Linux 内核。你需要下载并安装一个 MSI 包来获取这个内核。
    访问 https://aka.ms/wsl2kernel 下载最新版本。
    双击下载的 wsl_update_x64.msi 文件进行安装。这就像安装任何其他 Windows 应用程序一样简单。

  5. 将 WSL 2 设置为默认版本(可选,但强烈推荐):
    打开 PowerShell 或命令提示符(不需要管理员权限),运行以下命令:

    bash
    wsl --set-default-version 2

    这将确保你以后安装的任何新 Linux 发行版都默认以 WSL 2 模式运行。

  6. 选择并安装 Linux 发行版:
    打开 Microsoft Store,搜索你想要安装的 Linux 发行版。一些常见的选择包括:

    • Ubuntu (通常是最新 LTS 版本)
    • Debian
    • Kali Linux
    • openSUSE Leap
    • Fedora Remix for WSL
      点击你想安装的发行版,然后点击 “获取” 或 “安装”。下载完成后,点击 “启动”。
  7. 首次启动发行版:
    首次启动安装的 Linux 发行版时,会打开一个终端窗口,并要求你像使用 wsl --install 那样创建一个新的 Linux 用户账户和密码。完成设置后,你就进入了 Linux 环境。

1.4 安装更多 Linux 发行版

你可以在同一台 Windows 机器上安装多个 WSL 发行版。安装了第一个发行版后,你可以通过 Microsoft Store 安装更多,或者使用 wsl --install 命令安装指定发行版:

bash
wsl --install -d <发行版名称>

例如,安装 Debian:

bash
wsl --install -d Debian

你可以在 Microsoft Store 页面或通过运行 wsl --list --online 查看可用的发行版列表。

1.5 检查已安装的发行版及其版本

你可以随时查看你安装了哪些 WSL 发行版以及它们运行在哪个 WSL 版本(WSL 1 或 WSL 2):

“`bash
wsl –list –verbose

或者简写为 wsl -l -v

“`

输出示例:

NAME STATE VERSION
* Ubuntu Running 2
Debian Stopped 2

星号 (*) 表示当前默认的发行版。STATE 表示发行版的状态(Running、Stopped、Stopping 等)。VERSION 表示运行的 WSL 版本 (1 或 2)。

你可以使用 wsl --set-version <发行版名称> <版本号> 命令来更改特定发行版使用的 WSL 版本。例如,将 Ubuntu 设置为 WSL 1:

bash
wsl --set-version Ubuntu 1

或者设置为 WSL 2:

bash
wsl --set-version Ubuntu 2

这个转换过程可能需要一些时间,尤其是在 WSL 2 转换为 WSL 1 时(需要压缩文件系统)。

第二部分:WSL 的基础配置与使用

安装完成后,你就拥有了一个基本的 Linux 环境。接下来是一些基础的配置和使用技巧。

2.1 首次启动与用户账户

如前所述,首次启动任何一个新的 WSL 发行版时,系统都会提示你创建一个非 root 用户账户和密码。这是出于安全考虑的最佳实践。创建的账户将是该发行版的默认用户,并在需要执行管理员任务时使用 sudo 命令。

2.2 更新你的 Linux 发行版

这是你在新安装的 Linux 环境中做的第一件事,也是非常重要的一件事。定期更新可以确保你获得最新的安全补丁和软件版本。

打开你的 WSL 发行版(例如 Ubuntu),在终端中运行以下命令:

bash
sudo apt update
sudo apt upgrade

  • sudo: 以管理员(root)权限执行命令。执行此命令时需要输入你创建的用户密码。
  • apt: Debian/Ubuntu 系列发行版使用的包管理器。
  • update: 从软件源服务器下载最新的软件包列表,但不会安装或升级任何软件。
  • upgrade: 根据最新的软件包列表,升级系统中所有已安装的、有新版本的软件包。

在执行 sudo apt upgrade 时,系统可能会提示你确认是否继续安装。输入 Y 并回车即可。

如果你使用的是其他发行版,包管理器命令会有所不同:

  • Fedora: sudo dnf update
  • openSUSE: sudo zypper update
  • Alpine: sudo apk upgrade

2.3 访问 Windows 文件系统

从 WSL 内部访问 Windows 文件非常简单。WSL 会将你的 Windows 驱动器挂载到 /mnt/ 目录下。

  • 你的 C 盘通常可以在 /mnt/c 找到。
  • 你的 D 盘通常可以在 /mnt/d 找到。
  • 依此类推。

例如,要访问你的 Windows 用户目录下的 “文档” 文件夹:

bash
cd /mnt/c/Users/YourWindowsUsername/Documents

请将 YourWindowsUsername 替换为你实际的 Windows 用户名。

你可以在 WSL 中像操作任何 Linux 文件一样操作这些 Windows 文件(读、写、执行等),当然,权限受 Windows 文件系统 ACL 的限制。

重要提示: 在 WSL 2 中,从 WSL 环境访问 Windows 文件 (/mnt/...) 的性能会比在 Linux 文件系统内部 (~ 或其他 Linux 路径) 差很多。反之亦然(从 Windows 访问 WSL 文件)。因此,强烈建议将你的开发项目文件、代码库等放置在 WSL 的 Linux 文件系统内部,以获得最佳性能。

2.4 访问 WSL 文件系统

从 Windows 内部访问 WSL 文件也非常方便。你可以通过网络路径访问 WSL 的文件系统。

在 Windows 文件资源管理器的地址栏中输入:

\\wsl$

按下回车后,你会看到你安装的所有 WSL 发行版的列表。点击进入某个发行版,你就可以像浏览普通网络共享文件夹一样浏览其文件系统,包括你的用户主目录 (\\wsl$\<DistroName>\home\<YourUsername>)。

同样,从 Windows 访问 WSL 文件 (\\wsl$\...) 的性能在 WSL 2 中也可能不如在 Linux 环境内部操作。

2.5 在 WSL 中运行 Windows 命令

你可以在 WSL 终端中直接运行大多数 Windows 可执行文件(.exe.com.bat 等),就像它们是 Linux 命令一样。你需要指定完整的路径,或者如果可执行文件在 Windows 的 PATH 环境变量中,则可以直接输入文件名。

WSL 会自动将 Windows 的 PATH 环境变量与 Linux 的 PATH 合并,因此许多常用的 Windows 命令可以直接调用。

例如:

  • 打开 Windows 文件资源管理器,当前目录在 WSL 中,但资源管理器会在 Windows 中打开当前对应的 Windows 目录:

    bash
    explorer.exe .

    注意 .exe 后面的点 (.) 表示当前目录。

  • 用 Windows 的记事本打开一个 WSL 文件:

    bash
    notepad.exe ~/.bashrc

    请注意,这将在 Windows 端启动记事本,并打开 WSL 文件系统中的 .bashrc 文件。

  • 运行 Windows 命令行工具:

    bash
    ipconfig.exe /all

2.6 从 Windows 运行 WSL 命令

反过来,你也可以从 Windows 的 Command Prompt 或 PowerShell 中直接运行 WSL 命令。使用 wsl 命令作为前缀即可。

cmd
wsl <Linux 命令>

例如:

  • 从 Windows 列出你的 WSL 用户主目录内容:

    cmd
    wsl ls -l ~

  • 运行一个 Python 脚本,假设 Python 安装在 WSL 中:

    cmd
    wsl python3 your_script.py

  • 直接启动一个特定的 WSL 发行版终端(如果安装了多个):

    cmd
    wsl -d Ubuntu

  • 以特定用户身份运行命令:

    cmd
    wsl -u root ls /root

  • 仅仅启动默认的 WSL shell:

    cmd
    wsl bash

2.7 安装软件

WSL 发行版使用标准的 Linux 包管理器。对于大多数基于 Debian/Ubuntu 的发行版,你将使用 apt

  • 搜索软件包:

    bash
    sudo apt search <关键词>

    例如:sudo apt search nginx

  • 查看软件包信息:

    bash
    sudo apt show <软件包名称>

    例如:sudo apt show nginx

  • 安装软件包:

    bash
    sudo apt install <软件包名称>

    你可以一次安装多个软件包,用空格隔开:sudo apt install git nodejs

  • 卸载软件包:

    bash
    sudo apt remove <软件包名称>

  • 卸载软件包及其配置文件:

    bash
    sudo apt purge <软件包名称>

请记住,在执行 apt installapt remove 等操作之前,最好先运行 sudo apt update 来更新软件包列表。

2.8 WSLg:运行 Linux GUI 应用程序

如果你使用的是 Windows 10 版本 21H2 或更高版本,或者 Windows 11,并且安装了 WSLg,你就可以在 WSL 中直接运行带有 GUI 的 Linux 应用程序。这些应用程序会像普通的 Windows 应用程序一样出现在 Windows 桌面和任务栏中,并且声音和图形输出都能正常工作。

WSLg 通常随 wsl --install 命令自动安装。如果你是手动安装或者版本较旧,可能需要更新 WSL:

bash
wsl --update

安装一个简单的 GUI 应用(例如 xeyes 或文本编辑器 gedit)来测试:

bash
sudo apt update
sudo apt install x11-apps # 安装 xeyes
sudo apt install gedit # 安装 gedit 文本编辑器

安装完成后,直接在 WSL 终端中运行命令即可启动 GUI 应用:

bash
xeyes
gedit

应用程序的窗口会出现在 Windows 桌面上。

2.9 WSL 与集成开发环境 (IDE)

许多现代 IDE 和代码编辑器提供了对 WSL 的出色支持,例如 Visual Studio Code。通过安装相应的远程开发扩展(如 VS Code 的 Remote – WSL 扩展),你可以在 Windows 上使用你熟悉的 IDE 界面,但代码的实际编辑、运行、调试等操作都在 WSL 环境中执行。这结合了 Windows 桌面应用的便利性与 WSL 环境的强大功能和性能(特别是文件系统性能)。

2.10 管理 WSL 实例

你可以使用 wsl 命令来管理你的 WSL 实例:

  • 启动默认发行版:
    打开命令提示符或 PowerShell,直接输入 wsl 并回车。

  • 启动特定发行版:
    cmd
    wsl -d <发行版名称>

  • 关闭正在运行的所有发行版:
    这会停止所有 WSL 进程。

    cmd
    wsl --shutdown

  • 终止特定发行版:

    “`cmd
    wsl –terminate <发行版名称>

    或者简写为 wsl -t <发行版名称>

    “`

  • 设置默认用户:
    你可以在每个发行版的 /etc/wsl.conf 文件中配置默认登录用户。或者,对于已安装的发行版,你可以使用命令设置:

    cmd
    <发行版名称> config --default-user <用户名>

    例如:ubuntu config --default-user myuser (请在 Windows 命令提示符或 PowerShell 中运行此命令,而不是 WSL 内部)

  • 导出和导入 WSL 发行版:
    这允许你备份、迁移或复制你的 WSL 环境。
    导出:wsl --export <发行版名称> <导出文件名.tar>
    导入:wsl --import <新发行版名称> <安装目录> <导出文件名.tar> --version <1或2>
    导入时,你可以选择安装路径和使用的 WSL 版本。

  • 注销(卸载)发行版:
    这将删除发行版的整个文件系统和数据。操作不可逆,请谨慎使用。

    cmd
    wsl --unregister <发行版名称>

2.11 网络连接

在 WSL 2 中,每个发行版都有自己的虚拟网卡和 IP 地址,与 Windows 主机共享同一个网络命名空间。通常情况下,网络是“桥接”到 Windows 主机的。这意味着你的 WSL 环境可以访问互联网,并且通常可以访问本地网络中的其他设备。

  • 访问互联网: 大多数情况下开箱即用。
  • 从 WSL 访问 Windows 服务: 如果你在 Windows 上运行了一个服务(例如 Web 服务器监听 8080 端口),你可以从 WSL 内部使用 localhost 或 Windows 主机的 IP 地址访问它。
  • 从 Windows 访问 WSL 服务: 这是 WSL 2 中稍复杂的地方,因为 WSL 2 的 IP 地址是动态分配的。然而,由于网络地址转换 (NAT) 的设置,通常你可以直接使用 localhost 从 Windows 访问 WSL 中运行的服务。例如,如果在 WSL 中运行的 Web 服务器监听 3000 端口,你在 Windows 浏览器中访问 http://localhost:3000 即可。如果 localhost 不工作,你需要找到 WSL 2 实例的动态 IP 地址(在 WSL 内部运行 ip addr show eth0hostname -I)并在 Windows 中使用该 IP 访问,但这不方便且 IP 会变化。幸运的是,Windows 较新版本对 WSL 2 的 localhost 访问做了优化。
  • 通过 Windows 防火墙: 如果你在 WSL 中运行了一个服务并想从 Windows 或外部访问它,你可能需要在 Windows 防火墙中允许相应的端口或应用程序通过。

2.12 WSL 1 vs WSL 2 的选择

虽然 wsl --install 默认安装 WSL 2,并且强烈推荐使用 WSL 2,了解两者的区别有助于在特定情况下做出选择。

  • WSL 1:

    • 基于系统调用转换层。
    • 不使用虚拟化技术。
    • 启动速度通常比 WSL 2 快。
    • 在 WSL 1 环境中访问 Windows 文件系统 (/mnt/) 性能比 WSL 2 高。
    • 系统调用兼容性不如 WSL 2,某些 Linux 应用无法运行。
    • Linux 文件系统(WSL 1 内部)性能相对较低,尤其在涉及大量文件 I/O 的场景(如 git clone 大型仓库)。
  • WSL 2:

    • 运行在轻量级虚拟机中的真实 Linux 内核。
    • 完全的系统调用兼容性,几乎所有 Linux 应用都能运行(包括 Docker)。
    • Linux 文件系统(WSL 2 内部)性能显著优于 WSL 1,与原生 Linux 接近。
    • 启动速度可能略慢于 WSL 1(因为需要启动 VM)。
    • 跨文件系统访问性能较差(从 WSL 2 访问 Windows 文件,或从 Windows 访问 WSL 2 文件)。
    • 占用更多内存(因为是 VM)。
    • 网络配置稍复杂(动态 IP,但 localhost 访问已优化)。

结论: 绝大多数场景下,选择 WSL 2。它的文件系统性能和兼容性优势巨大,对于开发工作流至关重要。只有当你对内存占用极其敏感,或者你的工作流主要涉及在 /mnt/ 下操作大量文件且 WSL 1 的兼容性已足够时,才可能考虑 WSL 1。

2.13 配置文件:.bashrcwsl.conf

  • ~/.bashrc~/.zshrc (取决于你的 Shell): 这是标准的 Linux shell 配置文件。你可以在这里添加自定义别名、环境变量、修改提示符等。每次打开新的终端会话时都会加载它。使用你喜欢的编辑器(如 nanovim)来编辑它:
    bash
    nano ~/.bashrc

    编辑完成后,使用 source ~/.bashrc 或重新打开终端来应用更改。

  • /etc/wsl.conf: 这个文件允许你配置 WSL 实例的特定设置,例如自动挂载 Windows 驱动器的方式、网络设置等。这个文件需要在 WSL 内部创建或编辑,并需要管理员权限。更改此文件后,你需要关闭并重启 WSL 实例(使用 wsl --shutdown)才能使更改生效。
    例如,禁用 Windows 驱动器自动挂载:
    ini
    [automount]
    enabled = false

    或者配置网络:
    ini
    [network]
    generateResolvConf = false # 防止 WSL 自动生成 /etc/resolv.conf

    编辑 wsl.conf 需要 sudo 权限:
    bash
    sudo nano /etc/wsl.conf

第三部分:基础 Linux 命令回顾

既然你在使用 WSL,了解一些基础的 Linux 命令是必不可少的。这里回顾一些最常用且基础的命令。

  • pwd: Print Working Directory。显示当前所在的目录。
    bash
    pwd
    # 输出示例: /home/yourusername

  • ls: List files and directories。列出当前目录或指定目录下的文件和子目录。

    • ls: 列出当前目录内容。
    • ls -l: 以长格式列出,显示文件权限、所有者、大小、修改日期等信息。
    • ls -a: 显示所有文件,包括隐藏文件(以 . 开头的文件)。
    • ls -lh: 以人类可读的格式显示文件大小(例如 10K, 2M)。
    • ls <目录路径>: 列出指定目录的内容。
  • cd: Change Directory。改变当前工作目录。

    • cd <目录路径>: 进入指定目录。例如 cd /mnt/c/Users/
    • cd ..: 返回上一级目录。
    • cd ~: 返回当前用户的 HOME 目录(通常是 /home/yourusername)。
    • cd -: 返回上一次所在的目录。
  • mkdir: Make Directory。创建一个新目录。

    • mkdir <目录名称>: 在当前目录创建一个新目录。
    • mkdir /path/to/new/directory: 在指定路径创建一个新目录。
    • mkdir -p /path/to/nonexistent/parent/new_directory: 创建多级目录,如果父目录不存在则自动创建。
  • rm: Remove files or directories。删除文件或目录。此命令非常强大且危险,请谨慎使用,尤其是在使用 -r-f 选项时!

    • rm <文件名>: 删除指定文件。
    • rm -r <目录名>: 递归删除目录及其内容。
    • rm -f <文件名>: 强制删除文件,不进行确认提示。
    • rm -rf <目录名>: 强制递归删除目录及其内容。(极度危险,务必确认你要删除的是什么!)
  • cp: Copy files or directories。复制文件或目录。

    • cp <源文件> <目标位置>: 复制文件到目标位置。
    • cp <源文件> <新文件名>: 复制文件并重命名。
    • cp -r <源目录> <目标位置>: 递归复制目录及其内容。
  • mv: Move or rename files or directories。移动或重命名文件/目录。

    • mv <源> <目标>: 移动文件/目录到目标位置。
    • mv <旧名称> <新名称>: 重命名文件/目录。
  • cat: Concatenate and display files。显示文件内容。

    • cat <文件名>: 显示文件的全部内容。
  • less: Page through files。分页显示文件内容,适合查看大文件。按 空格键 向下翻页,按 b 向上翻页,按 q 退出。

    • less <文件名>
  • grep: Search plain-text data for lines that match a pattern。在文件中搜索包含指定文本的行。

    • grep "pattern" <文件名>: 在文件中搜索包含 “pattern” 的行。
    • command | grep "pattern": 将命令的输出作为输入,搜索包含 “pattern” 的行。
  • echo: Display a line of text。打印文本或变量的值。

    • echo "Hello, WSL!"
    • echo $PATH: 打印 PATH 环境变量的值。
  • man: Display the manual page for a command。显示命令的帮助手册。按 q 退出。

    • man ls
  • sudo: Execute a command as another user (usually root)。以超级用户权限执行命令。需要输入当前用户的密码。

    • sudo <command>
  • clear: Clear the terminal screen。清空终端屏幕。

掌握这些基础命令,你就可以在 WSL 环境中进行文件导航、管理和基本的系统交互了。随着使用的深入,你还会学习到更多强大的 Linux 命令和工具。

第四部分:常见问题与故障排除

尽管 WSL 旨在提供顺畅的体验,但在安装或使用过程中仍可能遇到问题。

  • wsl --install 失败或提示错误:

    • 检查 Windows 版本: 确保你的 Windows 版本和 Build 号满足 wsl --install 的要求。
    • 以管理员身份运行终端: wsl --install 必须在管理员权限的 PowerShell 或命令提示符中执行。
    • 检查虚拟化是否启用: 对于 WSL 2,你的计算机 BIOS/UEFI 设置中需要启用虚拟化技术(Intel VT-x 或 AMD-V)。重启电脑,进入 BIOS/UEFI 设置查找相关选项并启用。
    • 检查 Hyper-V 或 Virtual Machine Platform 功能: 手动安装步骤中的这两个可选功能需要被启用。有时即使使用了 --install,也可能需要手动检查。
    • 网络问题: 下载发行版或内核更新需要网络连接。
  • 安装的发行版无法启动:

    • 重启 WSL 服务: 在 Windows 命令提示符或 PowerShell 中运行 wsl --shutdown,然后再次尝试启动发行版。
    • 检查 WSL 版本: 运行 wsl -l -v 查看发行版使用的是 WSL 1 还是 WSL 2。如果设置为 WSL 2,确保 Linux 内核已正确安装(参考手动安装步骤 4)。如果遇到 “WSL 2 平台未知” 或相关错误,通常是内核缺失或需要更新。
    • 重置发行版: 作为最后的手段,你可以考虑注销并重新安装发行版(wsl --unregister <发行版名称>,请注意这会删除所有数据)。
  • 网络连接问题:

    • 检查 Windows 网络: 确保你的 Windows 主机有正常的互联网连接。
    • 防火墙: 检查 Windows 防火墙设置,确保没有阻止 WSL 的网络访问。
    • DNS 问题: 有时 WSL 的 /etc/resolv.conf 文件可能出现问题。你可以尝试手动编辑它(sudo nano /etc/resolv.conf)并设置一个可靠的 DNS 服务器(例如 nameserver 8.8.8.8)。更改后可能需要运行 sudo chattr +i /etc/resolv.conf 阻止 WSL 自动覆盖它(如果 /etc/wsl.conf 中没有设置 generateResolvConf = false)。
  • 文件访问性能问题:

    • 如前所述,WSL 2 中跨文件系统(Windows <-> Linux)的性能较差。将经常操作的文件放在 WSL 文件系统内部 (~ 或其他 Linux 路径)。
  • 磁盘空间占用过大:

    • WSL 2 的虚拟磁盘文件 (ext4.vhdx) 会随着使用而增长,但不会自动收缩。如果需要释放空间,可以关闭所有 WSL 实例(wsl --shutdown),然后在 PowerShell 中运行优化命令(需要找到 .vhdx 文件的路径,通常在 %LOCALAPPDATA%\Packages\<DistroFolder>\LocalState 下):
      cmd
      Optimize-VHD -Path "C:\Users\YourUsername\AppData\Local\Packages\...\ext4.vhdx" -Mode Full

      请将路径替换为你的实际路径。

如果遇到更复杂的问题,微软的 WSL 文档(https://docs.microsoft.com/en-us/windows/wsl/)是一个非常有用的资源。

总结与展望

恭喜你!通过本指南,你已经掌握了 Windows Subsystem for Linux 的安装、基础配置和常用命令。你现在拥有了一个强大的、与 Windows 集成良好的 Linux 环境,可以开始探索和利用 Linux 丰富的软件生态系统了。

WSL 的出现极大地改善了 Windows 上的开发者体验,使得跨平台开发、使用命令行工具、进行系统管理等任务变得前所未有的便捷。

这仅仅是 WSL 世界的起点。你可以进一步学习:

  • 更高级的 Linux 命令和 Shell 脚本编写。
  • 在 WSL 中安装和配置各种开发环境(Node.js, Python, Docker, Web 服务器等)。
  • 利用 VS Code 等工具与 WSL 进行深度集成。
  • 探索 WSLg 运行 GUI 应用的便利性。
  • 深入了解 Linux 文件系统结构和权限管理。

WSL 是一个不断发展和完善的项目。随着微软的持续投入,它的功能和性能将越来越强大。

希望这篇详细的入门指南能够帮助你顺利踏上 WSL 的旅程!尽情享受在 Windows 上运行 Linux 的便利与强大吧!


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部