首页 WSL 安装和使用简介
文章
取消

WSL 安装和使用简介

WSL 官方文档,比如以下内容必读:

安装方式

打开 powershell 或者 cmd 窗口(以下简称“终端”),输入

1
wsl --install

以 WSL 2 方式安装 Ubuntu。你可以安装其他 Linux 系统,使用 wsl --list --online 查看:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
以下是可安装的有效分发的列表。
使用 'wsl.exe --install <Distro>' 安装。

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_8_5                        Oracle Linux 8.5
OracleLinux_7_9                        Oracle Linux 7.9
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
openSUSE-Leap-15.4                     openSUSE Leap 15.4
openSUSE-Tumbleweed                    openSUSE Tumbleweed

如果需要更复杂的自定义安装,参考 官方安装文档

正常情况下,它会自动下载相关工具和系统镜像,只要等待就好。(你需要良好的网络)

一些基本命令:

1
2
3
wsl --list --verbose
wsl --status
wsl --version

启动 WSL

在 Windows 下,做一件事有太多方式。。。

从终端输入 wsl 即可启动 Ubuntu 的虚拟机,初次进入要设置一个用户名和密码。

但我遇到 0x80370114 错误代码,没有成功启动。搜了一下,有建议去“安全”设置里弄 vmcompute.exe,可我没有这个命令。

最后去“功能” (feature) 面板,勾选两个选项就能用了。(然后才有 vmcompute.exe,不过已经不重要了)

除了这种直接方式,还有其他方式启用 wsl:

  • 点击 Ubuntu 图标启动:

  • wsl 相关命令都可以启动:

1
2
3
4
5
# 在 Ubuntu 主目录启动(没有 `~` 则在终端目录,该目录会被自动 mount)
wsl ~

# `ls -lah` 可以换成任何 linux 命令,直接后台启动虚拟机,然后基于终端目录操作
wls ls -lah

嗯,在 Windows 和 Linux 相互调用就是如此简单:从 Linux 调用 Windows 也仅仅需要把命令带上 .exe,比如在 Windows 下使用 ipconfig 命令,在 Linux 需使用 ipconfig.exe

  • 打开 wsl 文件启动:

    \\wsl.localhost\Ubuntu 是 Linux 系统专用的目录,你可以在两个系统之间交互操作各自系统文件。见 filesystems 文档。

  • 在 SSH 客户端(比如 mobaxterm) 中启动:

或许还有很多隐藏的启动方式,但知道这些很重要,或许你意外的启动了虚拟机,但 wsl --list --running 可能没有列出它正在运行。

要知道,启动虚拟机是有成本的,在我的机器上,它需要 1G 左右的内存(使用 Ctrl-Shit-Esc 调出“任务管理器”):

关闭 WSL

貌似在很多情况下, wsl 会在完全没有被直接使用时自动关闭。这对于意外和临时打开 wsl 很好。

最基础的登出操作是在 Linux 输入 exit 命令:

1
2
3
4
5
6
E:\Rust $ wsl
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

username:/mnt/e/Rust$ exit
logout

此外,你还可以使用,这基本上能确保在各种启动的情况下,让虚拟机完全关闭:

1
wsl --shutdown

或者在上面展示的“任务管理器”手动终止 WSL 的进程(不推荐这种做法)。

本文由作者按照 CC BY 4.0 进行授权

在 Windows 下使用 NeoVim

Clickhouse Mergetree Family