适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 – 包括大多数命令行工具、实用工具和应用程序 – 且不会产生传统虚拟机或双启动设置开销。
文档
PS C:\Windows\system32> wsl --help
版权所有(c) Microsoft Corporation。保留所有权利。
用法: wsl.exe [Argument] [Options...] [CommandLine]
运行 Linux 二进制文件的参数:
如果未提供命令行,wsl.exe 将启动默认 shell。
--exec, -e <CommandLine>
在不使用默认 Linux Shell 的情况下执行指定的命令。
--
按原样传递其余命令行。
选项:
--cd <Directory>
将指定目录设置为当前工作目录。
如果使用了 ~,则将使用 Linux 用户的主页路径。如果路径
以 / 字符开头,将被解释为绝对 Linux 路径。
否则,该值一定是绝对 Windows 路径。
--distribution, -d <Distro>
运行指定分发。
--user, -u <UserName>
以指定用户身份运行。
管理适用于 Linux 的 Windows 子系统的参数:
--help
显示用法信息。
--install [选项]
安装额外的适用于 Linux 的 Windows 子系统分发。
要获得有效分发列表,请使用“wsl --list --online”。
选项:
--distribution, -d [参数]
按名称下载并安装分发。
参数:
有效分发名称(不区分大小写)。
示例:
wsl --install -d Ubuntu
wsl --install --distribution Debian
--set-default-version <Version>
更改新分发的默认安装版本。
--shutdown
立即终止所有运行的分发及 WSL 2
轻型工具虚拟机。
--status
显示适用于 Linux 的 Windows 子系统的状态。
--update [选项]
如果未指定任何选项,则 WSL 2 内核将更新
到最新版本。
选项:
--rollback
还原到 WSL 2 内核的先前版本。
用于管理适用于 Linux 的 Windows 子系统中的分发的参数:
--export <Distro> <FileName>
将分发导出到 tar 文件。
对于标准输出,文件名可以是 –。
--import <Distro> <InstallLocation> <FileName> [Options]
将指定的 tar 文件作为新分发导入。
对于标准输入,文件名可以是 –。
选项:
--version <Version>
指定要用于新分发的版本。
--list, -l [Options]
列出分发。
选项:
--all
列出所有分发,包括
当前正在安装或卸载的分发。
--running
仅列出当前正在运行的分发。
--quiet, -q
仅显示分发名称。
--verbose, -v
显示所有分发的详细信息。
--online, -o
显示使用“wsl --install”进行安装的可用分发列表。
--set-default, -s <分发>
将分发设置为默认值。
--set-version <分发> <版本>
更改指定分发的版本。
--terminate, -t <分发>
终止指定的分发。
--unregister <分发>
注销分发并删除根文件系统。
示例
显示子系统列表和状态
wsl --list --verbose
启动子系统
方式1: 菜单栏中搜索指定的系统名字,然后点击即可
方式2:命令行中输入指定系统名字, 然后运行 Tip:通过tab键补齐名字
关闭子系统
方式1:关闭打开的窗口
方式2: 退出命令(exit)
方式3: ps> wsl -t [系统名称]
在一段时间后系统会就会关闭
FAQ
每次重启wsl后子系统的IP的会修改
没有root密码 如何设置root密码
以安装的普通管理员进入linux中 然后执行下面命令设置密码即可
sudo passwd root
不能使用 sudo systemctl enable ssh
- 版本: 5.10.16
root@DESKTOP-A7JRC5C:/home/jacky# sudo systemctl enable ssh
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
使用root也是不能的, 其他解决方案把需要开机启动的命令写到一个脚本中 启动wsl后手动执行这个脚本
关注这个问题: https://github.com/microsoft/WSL/issues/8883
wsl在使用的过程中突然 出现 WSL2 network unreachable
- 版本: 5.10.16
解决方案: 重启wsl wsl --shutdown
https://stackoverflow.com/questions/66338549/wsl2-network-unreachable