文章目录
- win11安装WSL
- 设置 Linux 用户名和密码
- 更改或重置密码
- 更新和升级软件包
- WSL 命令互操作性
- WSL 的基本命令
- 安装
- 列出可用的 Linux 发行版
- 列出已安装的 Linux 发行版
- 将 WSL 版本设置为 1 或 2
- 设置默认 WSL 版本
- 设置默认 Linux 发行版
- 将目录更改为主页
- 通过 PowerShell 或 CMD 运行特定的 Linux 发行版
- 更新 WSL
- 检查 WSL 状态
- 检查 WSL 版本
- Help 命令
- 以特定用户的身份运行
- 更改发行版的默认用户
- 关闭
- Terminate
- 标识 IP 地址
- 导出分发版
- 导入分发版
- 就地导入发行版
- 注销或卸载 Linux 发行版
- 装载磁盘或设备
- 卸载磁盘
- 已弃用的 WSL 命令
win11安装WSL
开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 通过适用于 Linux 的 Windows 子系统 (WSL),开发人员可以安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,不用进行任何修改,也无需承担传统虚拟机或双启动设置的费用。
先决条件
必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。 如果使用的是更早的版本,请参阅手动安装页。
安装 WSL 命令
现在,可以使用单个命令安装运行 WSL 所需的一切内容。 在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入 wsl --install
命令,然后重启计算机
。
PowerShell
wsl --install
此命令将启用运行 WSL 并安装 Linux 的 Ubuntu 发行版所需的功能。
执行完命令,重启电脑后发现无法打开文件夹。再次执行命令,命令执行完成后,弹出新窗口,标题为Linux的Windows子系统
。
神奇的是在地址栏,输入
cd \\wsl.localhost\
回车,居然是可以访问的。再次点击快捷方式时,恢复正常。
启动系统,并设置用户名和密码。出现Create a default Unix user account
时,输入用户名,回车。出现New password
,输入密码,注意,密码不显示出来。出现Retype new password
再次输入相同的密码。
PS C:\Users\MagicBook> wsl.exe -d Ubuntu
Provisioning the new WSL instance Ubuntu
This might take a while...
Create a default Unix user account: magic
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.Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/proSystem information as of Fri May 2 11:57:31 CST 2025System load: 0.0 Processes: 31Usage of /: 0.1% of 1006.85GB Users logged in: 0Memory usage: 5% IPv4 address for eth0: 172.24.26.194Swap usage: 0%This message is shown once a day. To disable it please create the
/home/magic/.hushlogin file.
magic@LAPTOP-20250502:/mnt/c/Users/MagicBook$
常用命令
查看系统版本命令
# 查看系统版本
$ cat /etc/os-releasePRETTY_NAME="Ubuntu 24.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.2 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
退出子系统环境命令
# 退出子系统环境
exit# 关闭子系统
wsl --shutdown# 下次进入可以仅输入wsl
wsl
设置 Linux 用户名和密码
使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开该发行版(默认情况下为 Ubuntu)。 系统将要求你为 Linux 发行版创建“用户名”和“密码”。
- 此用户名和密码特定于安装的每个单独的 Linux 分发版,与 Windows 用户名无关。
- 请注意,输入密码时,屏幕上不会显示任何内容。 这称为盲人键入。 你不会看到你正在键入的内容,这是完全正常的。
- 创建用户名和密码后,该帐户将是分发版的默认用户,并将在启动时自动登录。
- 此帐户将被视为 Linux 管理员,能够运行
sudo
(Super User Do) 管理命令。 - 在 WSL 上运行的每个 Linux 发行版都有其自己的 Linux 用户帐户和密码。 每当添加分发版、重新安装或重置时,都必须配置一个 Linux 用户帐户。
随 WSL 一起安装的 Linux 发行版是按用户安装,不可与其他 Windows 用户帐户共享。
更改或重置密码
若要更改或重置密码,请打开 Linux 发行版并输入命令:passwd
。 系统会要求你输入当前密码,然后要求输入新密码,之后再确认新密码。
如果忘记了 Linux 分发版的密码:
-
请打开 PowerShell,并使用以下命令进入默认 WSL 分发版的根目录:
wsl -u root
如果需要在非默认的分发版中更新忘记的密码,请使用命令:
wsl -d Debian -u root
,并将Debian
替换为目标分发版的名称。 -
在 PowerShell 内的根级别打开 WSL 发行版后,可使用此命令更新密码:
passwd
,其中 `` 是发行版中帐户的用户名,而你忘记了它的密码。 -
系统将提示你输入新的 UNIX 密码,然后确认该密码。 在您被告知密码已正确更新后,请在 PowerShell 内使用以下命令关闭 WSL:
exit
。
更新和升级软件包
建议使用发行版的首选包管理器定期更新和升级包。 对于 Ubuntu 或 Debian,请使用以下命令:
sudo apt update && sudo apt upgrade
Windows 不会自动更新或升级 Linux 分发版。 大多数 Linux 用户往往倾向于自行控制此任务。
WSL 命令互操作性
通过 WSL 安装的 Linux 发行版最好使用 PowerShell 或 Windows 命令提示符 (CMD) 进行管理。 有关使用 WSL 时需要熟悉的基本命令的列表,请参阅 WSL 命令参考指南。
此外,许多命令在 Windows 和 Linux 之间都具有互操作性。 下面是几个示例:
- 从 Windows 命令行运行 Linux 工具:打开 PowerShell,通过输入以下内容使用 Linux
ls -la
命令显示C:\temp>
的目录内容:wsl ls -la
- 混合 Linux 和 Windows 命令:在此示例中,使用 Linux 命令
ls -la
列出目录中的文件,然后使用 PowerShell 命令findstr
筛选包含“git”的单词的结果:wsl ls -la | findstr "git"
。 这还可以通过混合使用 Windowsdir
命令和 Linuxgrep
命令来实现:dir | wsl grep git
。 - 直接从 WSL 命令行运行 Windows 工具:
.exe
。例如,若要打开 .bashrc 文件(启动 Linux 命令行时运行的 shell 脚本),请输入:notepad.exe .bashrc
- 使用 Linux Grep 工具运行 Windows ipconfig.exe 工具:从 Bash 输入命令
ipconfig.exe | grep IPv4 | cut -d: -f2
或从 PowerShell 输入ipconfig.exe | wsl grep IPv4 | wsl cut -d: -f2
。此示例演示了 Windows 文件系统上的 ipconfig 工具,该工具先是用于显示当前 TCP/IP 网络配置值,然后通过 Linux 工具 grep 被筛选为仅显示 IPv4 结果。
WSL 的基本命令
以下 WSL 命令以 PowerShell 或 Windows 命令提示符支持的格式列出。 若要通过 Bash/Linux 发行版命令行运行这些命令,必须将 wsl
替换为 wsl.exe
。 若要获取完整的命令列表,请运行 wsl --help
。 如果尚未执行此操作,我们建议更新到从 Microsoft Store 安装的 WSL 版本,以便尽快在 WSL 更新可用时接收更新。 (详细了解如何通过 Microsoft Store 安装 WSL)。
安装
wsl --install
安装 WSL 和 Linux 的默认 Ubuntu 发行版。 了解详细信息。 还可以使用此命令通过运行 wsl --install <Distribution Name>
来安装其他 Linux 发行版。 若要获取发行版名称的有效列表,请运行 wsl --list --online
。
选项包括:
--distribution
:指定要安装的 Linux 发行版。 可以通过运行wsl --list --online
来查找可用的发行版。--no-launch
:安装 Linux 发行版,但不自动启动它。--web-download
:通过联机渠道安装,而不是使用 Microsoft Store 安装。
未安装 WSL 时,选项包括:
--inbox
:使用 Windows 组件(而不是 Microsoft Store)安装 WSL。 (WSL 更新将通过 Windows 更新接收,而不是通过 Microsoft Store 中推送的可用更新来接收)。--enable-wsl1
:在安装 Microsoft Store 版本的 WSL 的过程中也启用“适用于 Linux 的 Windows 子系统”可选组件,从而启用 WSL 1。--no-distribution
:安装 WSL 时不安装发行版。
备注
如果在 Windows 10 或更低版本上运行 WSL,可能需要在 --install
命令中包含 -d
标志以指定发行版:wsl --install -d <Distribution Name>
。
列出可用的 Linux 发行版
wsl --list --online
查看可通过在线商店获得的 Linux 发行版列表。 此命令也可输入为:wsl -l -o
。
列出已安装的 Linux 发行版
wsl --list --verbose
查看安装在 Windows 计算机上的 Linux 发行版列表,其中包括状态(发行版是正在运行还是已停止)和运行发行版的 WSL 版本(WSL 1 或 WSL 2)。 比较 WSL 1 和 WSL 2。 此命令也可输入为:wsl -l -v
。 可与 list 命令一起使用的其他选项包括:--all
(列出所有发行版)、--running
(仅列出当前正在运行的发行版)或 --quiet
(仅显示发行版名称)。
将 WSL 版本设置为 1 或 2
wsl --set-version <distribution name> <versionNumber>
若要指定运行 Linux 发行版的 WSL 版本(1 或 2),请将 <distribution name>
替换为发行版的名称,并将 <versionNumber>
替换为 1 或 2。 比较 WSL 1 和 WSL 2。 WSL 2 仅在 Windows 11 或 Windows 10 版本 1903、内部版本 18362 或更高版本中可用。
警告
在 WSL 1 和 WSL 2 之间切换可能非常耗时,并且可能会由于两种体系结构之间的差异而导致失败。 对于包含大型项目的分发,建议在尝试转换之前备份文件。
设置默认 WSL 版本
wsl --set-default-version <Version>
若要设置 WSL 1 或 WSL 2 的默认版本,请将 <Version>
替换为数字 1 或 2。 例如 wsl --set-default-version 2
。 该数字表示新 Linux 发行版安装默认使用的 WSL 版本。 比较 WSL 1 和 WSL 2。 WSL 2 仅在 Windows 11 或 Windows 10 版本 1903、内部版本 18362 或更高版本中可用。
设置默认 Linux 发行版
wsl --set-default <Distribution Name>
若要设置 WSL 命令将用于运行的默认 Linux 发行版,请将 <Distribution Name>
替换为你首选的 Linux 发行版的名称。
将目录更改为主页
wsl ~
~
可与 wsl 一起使用,以在用户的主目录中启动。 若要在 WSL 命令提示符中从任何目录跳回到主目录,可使用命令 cd ~
。
通过 PowerShell 或 CMD 运行特定的 Linux 发行版
wsl --distribution <Distribution Name> --user <User Name>
若要通过特定用户运行特定 Linux 发行版,请将 <Distribution Name>
替换为你首选的 Linux 发行版的名称(例如 Debian),将 <User Name>
替换为现有用户的名称(例如 root)。 如果 WSL 发行版中不存在该用户,你将会收到一个错误。 若要输出当前用户名,请使用 whoami
命令。
更新 WSL
wsl --update
将 WSL 版本更新到最新版本。 选项包括:
--web-download
:从 GitHub 而不是 Microsoft Store 下载最新更新。
检查 WSL 状态
wsl --status
查看有关 WSL 配置的常规信息,例如默认发行版类型、默认发行版和内核版本。
检查 WSL 版本
wsl --version
检查有关 WSL 及其组件的版本信息。
Help 命令
wsl --help
查看 WSL 中可用的选项和命令列表。
以特定用户的身份运行
wsl --user <Username>
若要以指定用户身份运行 WSL,请将 <Username>
替换为 WSL 发行版中存在的用户名。
更改发行版的默认用户
<DistributionName> config --default-user <Username>
更改用于发行版登录的默认用户。 用户必须已经存在于发行版中才能成为默认用户。
例如:ubuntu config --default-user johndoe
会将 Ubuntu 发行版的默认用户更改为“johndoe”用户。
备注
如果在确定发行版名称时遇到问题,请使用命令
wsl -l
。
警告
此命令不适用于导入的发行版,因为这些发行版没有可执行启动器。 可以改为使用
/etc/wsl.conf
文件来更改导入的发行版的默认用户。 请参阅高级设置配置文档中的“自动装载”选项。
关闭
wsl --shutdown
立即终止所有正在运行的发行版和 WSL 2 轻量级实用工具虚拟机。 在需要重启 WSL 2 虚拟机环境的情形下,例如更改内存使用限制或更改 .wslconfig 文件,可能必须使用此命令。
Terminate
wsl --terminate <Distribution Name>
若要终止指定的发行版或阻止其运行,请将 <Distribution Name>
替换为目标发行版的名称。
标识 IP 地址
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 访问网络应用程序:识别 IP 地址。
导出分发版
wsl --export <Distribution Name> <FileName>
将指定分发版的快照导出为新的分发文件。 默认为 tar 格式。 在标准输入中,文件名可以是 -
。 选项包括:
--vhd
:指定导出分发版应为 .vhdx 文件而不是 tar 文件(这仅在使用 WSL 2 的情况下受支持)
导入分发版
wsl --import <Distribution Name> <InstallLocation> <FileName>
导入指定的 tar 文件作为新的分发版。 在标准输入中,文件名可以是 -
。 选项包括:
--vhd
:指定导入分发版应为 .vhdx 文件而不是 tar 文件(这仅在使用 WSL 2 的情况下受支持)--version <1/2>
:指定将分发版导入为 WSL 1 还是 WSL 2 分发版
就地导入发行版
wsl --import-in-place <Distribution Name> <FileName>
将指定的 .vhdx 文件导入为新的发行版。 虚拟硬盘必须采用 ext4 文件系统类型格式。
注销或卸载 Linux 发行版
尽管可以通过 Microsoft Store 安装 Linux 发行版,但无法通过 Store 将其卸载。
注销并卸载 WSL 发行版:
wsl --unregister <DistributionName>
如果将 <DistributionName>
替换为目标 Linux 发行版的名称,则将从 WSL 取消注册该发行版,以便可以重新安装或清理它。 警告:取消注册后,与该分发版关联的所有数据、设置和软件将永久丢失。 从 Store 重新安装会安装分发版的干净副本。 例如:wsl --unregister Ubuntu
将从可用于 WSL 的发行版中删除 Ubuntu。 运行 wsl --list
将会显示它不再列出。
还可以像卸载任何其他应用商店应用程序一样卸载 Windows 计算机上的 Linux 发行版应用。 若要重新安装,请在 Microsoft Store 中找到该发行版,然后选择“启动”。
装载磁盘或设备
wsl --mount <DiskPath>
通过将 <DiskPath>
替换为物理磁盘所在的目录\文件路径,在所有 WSL2 发行版中附加和装载该磁盘。 请参阅在 WSL 2 中装载 Linux 磁盘。 选项包括:
--vhd
:指定<DiskPath>
引用虚拟硬盘。--name
:使用装入点的自定义名称装载磁盘--bare
:将磁盘附加到 WSL2,但不进行装载。--type <Filesystem>
:装载磁盘时使用的文件系统类型默认为 ext4(如果未指定)。 此命令也可输入为:wsl --mount -t <Filesystem>
。可以使用blkid <BlockDevice>
命令检测文件系统类型,例如:blkid <dev/sdb1>
。--partition <Partition Number>
:要装载的分区的索引号默认为整个磁盘(如果未指定)。--options <MountOptions>
:装载磁盘时,可以包括一些特定于文件系统的选项。 例如,wsl --mount -o "data-ordered"
或wsl --mount -o "data=writeback
之类的 ext4 装载选项。 但是,目前仅支持特定于文件系统的选项。 不支持通用选项,例如ro
、rw
或noatime
。
备注
如果你正在运行 32 位进程来访问 wsl.exe(一种 64 位工具),那么你可能需要按如下方式运行此命令:
C:\Windows\Sysnative\wsl.exe --command
。
卸载磁盘
wsl --unmount <DiskPath>
卸载磁盘路径中给定的磁盘,如果未提供磁盘路径,则此命令将卸载并分离所有已装载的磁盘。
已弃用的 WSL 命令
wslconfig.exe [Argument] [Options]
bash [Options]
lxrun /[Argument]
这些命令是用于配置随 WSL 安装的 Linux 发行版的原始 wsl 语法,但已替换为 wsl
或 wsl.exe
命令语法。