记录一次折腾 WSL 的经历

初试 Linux 命令行界面

技术
技术LinuxWSL

2026-03-23

首先列出目前可用的 Linux 发行版:

wsl --list --online

显示:

以下是可安装的有效分发的列表。
使用“wsl.exe --install <Distro>”安装。

NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Ubuntu-24.04                    Ubuntu 24.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
openSUSE-Tumbleweed             openSUSE Tumbleweed
openSUSE-Leap-16.0              openSUSE Leap 16.0
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7
SUSE-Linux-Enterprise-16.0      SUSE Linux Enterprise 16.0
kali-linux                      Kali Linux Rolling
Debian                          Debian GNU/Linux
AlmaLinux-8                     AlmaLinux OS 8
AlmaLinux-9                     AlmaLinux OS 9
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10
AlmaLinux-10                    AlmaLinux OS 10
archlinux                       Arch Linux
FedoraLinux-43                  Fedora Linux 43
FedoraLinux-42                  Fedora Linux 42
eLxr                            eLxr 12.12.0.0 GNU/Linux
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_10                Oracle Linux 8.10
OracleLinux_9_5                 Oracle Linux 9.5
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6

如果不指定具体发行版,默认会安装 Ubuntu

wsl --install

显示:

正在下载: Ubuntu
正在安装: Ubuntu
已成功安装分发。可以通过 “wsl.exe -d Ubuntu” 启动它
正在启动 Ubuntu...
Provisioning the new WSL instance Ubuntu
This might take a while...

接着它提示让你设置用户名和密码,密码在输入的时候光标是不会移动的也没有任何提示:

Create a default Unix user account: wxh1104
New password:
Retype new password:
passwd: password updated successfully
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

现在就到了 Linux 正式的命令行界面了:

与 Linux 的初次见面

但是 WSL 默认是安装到 C 盘,由于我的 C 盘空间紧张,遂准备将其迁移到 D 盘。

wsl --list --verbose
  NAME      STATE           VERSION
* Ubuntu    Stopped         2

现在我们要将这个系统连带着其中的数据打包到 D:\WSL\ubuntu.tar

wsl --export Ubuntu D:\WSL\ubuntu.tar
正在导出,这可能需要几分钟时间。 (1549 MB)

操作成功完成。

打包完成后,相当于有了系统的完整备份,所以我们卸载原先 C 盘的系统:

wsl --unregister Ubuntu
正在注销。
操作成功完成。

然后再将备份导入路径 D:\WSL\Ubuntu。这将作为新子系统的根目录。

wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL\ubuntu.tar

我们成功将 Linux 子系统迁移到了 D 盘。

此时会发现在 D:\WSL\Ubuntu 目录下有两个文件:

现在 Windows 的开始菜单可以看到 Ubuntu 了,只要点击就可以打开到子系统的用户根目录:

用户根目录的命令提示符界面

有趣的是,如果先在 Windows 中打开命令提示符,然后运行 wsl 命令,此时 Linux 命令行显示的当前目录是 /mnt/c/Users/<用户名>(或其他类似的路径)。

运行命令后的命令提示符界面

问了 AI 后才知道这是 WSL 的默认行为:继承 Windows 当前工作目录的路径,并将其转换为 WSL 内部的路径格式。

我是在 C:\Users\<用户名> 启动 WSL 的,WSL 会自动把 Windows 当前目录映射为 Linux 当前目录,相当于在根目录运行 cd /mnt/c/Users/Wxh1104。这算是 WSL 的一个便利特性,可以直接在 Windows 目录下执行 Linux 命令来处理跨平台文件。

为了能够继续在 Linux 下折腾新项目、写代码,还需要将 WSL 连接到 Windows 上安装的 VS Code。在用户根目录运行:

wxh1104@WECHXEHO:~$ code .

会弹出一个 VS Code 窗口,一番加载后显示如图:

连接到 WSL Ubuntu 子系统的 VS Code 界面

参考资料