1. 什么是WSL

wsl是Windows Subsystem for Linux的缩写,中文全称是Linux的Windows子系统。它可以让开发人员按原样运行GUN/Linux环境,包括大多数命令行工具、实用工具和应用程序,且不会产生传统虚拟机或双启动设置开销。

wsl2是适用于Linux的Windows子系统体系结构的一个新版本,它支持适用于Linux的Windows子系统在Windows上运行ELF64 Linux二进制文件。它的主要目标是提高文件系统性能,以及添加完全的系统调用兼容性

以上内容来自这里

2. wsl安装使用

2.1 wsl安装

wsl安装可以使用下面的命令:

wsl --install

执行结束后,会默认安装Ubuntu系统。wsl也支持自定义发行版:

# 查看当前支持的发行版本
wsl --list --online
# 以下是可安装的有效分发的列表。
# 使用 '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_7_9                        Oracle Linux 7.9
# OracleLinux_8_7                        Oracle Linux 8.7
# OracleLinux_9_1                        Oracle Linux 9.1
# SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
# openSUSE-Leap-15.4                     openSUSE Leap 15.4
# openSUSE-Tumbleweed                    openSUSE Tumbleweed

# 安装指定的发行版本,这里以Oracle为例  
wsl --install -d OracleLinux_9_1

wsl安装结束后,还需要根据提示配置Linux用户信息。

要使用wsl,需要先确保你的运行的操作系统是Windows 10 2004或更高版本。

2.2 wsl命令使用

# 查看当系统中安装的发行版本,我这里设置的默认使用oracle系统
wslconfig /list
# 适用于 Linux 的 Windows 子系统分发:
# oracle (默认)
# docker-desktop
# docker-desktop-data
# ubuntu

# 设置默认子系统
wslconfig /setdefault ubuntu

除了使用Windows提供镜像外,我们还可以制作、发布自己的镜像。通过使用tar文件可以导入任何Linux发行版本。

使用的tar文件可以是官方提供的,也可以是我们自己制作的,这里以centos7为例,介绍如何创建并导入自定义的wsl镜像。

首先我们需要导出centos镜像:

$ docker run -t centos -n centos bash ls /
$ docker export centos > /mnt/c/tmp/centos.tar

接着导入我们刚刚制作的镜像:

cd C:\tmp
# 创建之后镜像导入的目录
mkdir F:\centos
# 导入镜像
wsl --import centos F:\centos centos.tar
# 启动刚导入的镜像
wsl -d centos
# 也可以使用以下命令导出发行版
wsl --export centos centos.tar

孟斯特

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin
blog: mengbin
Github: mengbin92
cnblogs: 恋水无意