一. 前期准备
1.1 确认windows的版本
win11默认支持wsl,无需确认;部分win10版本不支持,需要确认
win + r打开运行窗口- 输入
winver命令,并执行 - 确认当前win10为
22h2版本

1.2 开启linux子系统的支持
1.2.1 图形化方式

1.2.2 命令行方式
执行下面两行命令之后,重启电脑。
# 开启【适用于 linux的 windows 子系统】 dism.exe /online /enable-feature /featurename:microsoft-windows-subsystem-linux /all /norestart # 开启【虚拟机平台】 dism.exe /online /enable-feature /featurename:virtualmachineplatform /all /norestart
1.3 安装wsl软件
⏹官方提供的wsl管理软件,找到最新的版本安装即可
- https://github.com/microsoft/wsl/tags
⏹官方提供的wsl_update_x64.msi的升级包
- https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
1.4 安装linux分发版
- 可以选择在
microsoft store商店安装 - 也可以下载linux 分发版的安装包,并手动安装
- 对应的安装包的下载地址可参考微软官方提供的教程
注意:
- win10的自动更新功能不能关闭,否则无法正常启动
- 安装时会提示输入账户名和密码,输入完成之后,就完成了子系统的配置
二. 基本配置
2.1 windows terminal
在windows terminal中,可通过如下方式进入指定的linux发行版

可以在设置中,指定当前linux发行版的启动命令行,工作目录等配置
- 命令行:
wsl -d ubuntu --cd ~:通过wsl命令启动名称为ubuntu的linux发行版,启动完成之后将路径切换为home目录
- 启动目录:
我们也可以将启动目录设置为//wsl$/ubuntu/home/用户名,此时的--cd ~就可以省略了

2.2 wsl
安装wsl之后,可在开启菜单找到蓝色企鹅图标,进入之后,可对wsl进行各种配置

2.3 发行版linux
2.3.1 配置root密码
初始安装之后,root用户并没有设置密码,可通过下面的命令设置密码
sudo passwd root
2.3.2 配置ssh
wsl中的发行版linux需要配置ssh之后,外部才能访问
# 更新apt sudo apt update # 安装openssh-server sudo apt install openssh-server # 修改配置文件 sudo vi /etc/ssh/sshd_config # 将配置文件中的配置项的注释解开,并修改 passwordauthentication yes permitrootlogin yes usepam no
安装配置完成之后,开启ssh服务
sudo service ssh start
2.3.3 切换源为国内的源
ubuntu的软件安装源在海外,国内使用的话,有可能会失败,可通过镜像源的方式解决
系统源备份:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
修改 sources.list, 加入镜像站提供的源
- 主要使用下面两个镜像站
- 清华源:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
- 中科大源:https://mirrors.ustc.edu.cn/help/ubuntu.html
- 保存之后,更新镜像源:
sudo apt update
2.4 vs code安装wsl插件
⏹如下图所示,安装wsl插件

⏹插件安装完成之后,在linux中输入code .之后,.vscode-server就会安装到linux中,然后就可以通过vs code来编辑linux中的文件了。

三. 命令行简介
3.1wsl --help
查看wsl命令的帮助信息

3.2 子系统的安装与查看
# 命令行的方式升级wsl wsl --update # 在线查看微软官方提供的子系统 wsl --list --online # 通过命令行的方式安装子系统 wsl --install -d 子系统名称 # 查看本地安装的所有版本 wsl -l -v
3.3 子系统的默认设置
# 设置wsl的默认版本 wsl --set-default-version 2 # 当存在多个子系统时,设置默认的子系统 wsl --set-default 子系统名称
3.4 进入子系统
# 指定用户进入wsl wsl -d <distro_name> -u <username> wsl -d ubuntu_22.04 -u apluser # 启动指定的子系统, 并切换到home目录 wsl -d ubuntu_22.04 --cd ~
3.5 导出导入子系统
子系统导出
# 将安装的linux子系统导出 wsl --export ubuntu "e:\ubuntu_22.04.tar"
子系统导入
- 注意,导入之后的系统,会以【
ext4.vhdx】的文件名保存,本质上是一个虚拟硬盘 - 该文件名不要更改,最佳实践是在外套一层文件夹用来区分
wsl --import ubuntu_22.04 "e:\vm_pc\wsl\ubuntu_22.04" "e:\ubuntu_22.04.tar" --version 2
3.6 修改默认登录用户
导入wsl系统之后,默认以root账户登录
可以在windows terminal的设置中的命令行处,指定普通用户-u 用户名的方式来登录
也可以在linux的配置文件中修改默认的登录用户
- 通过root用户登录
- 查看该配置文件是否存在,不存在的话,就新建
ls -l /etc/wsl.conf
- 编辑该配置文件
vim /etc/wsl.conf
追加如下内容
apluser@fengyehong-hp:~$ cat /etc/wsl.conf [user] default=apluser
退出后wsl之后,回到powershell终端,然后输入下面的命令关闭wsl
wsl --shutdown
- 再一次进入wsl之后,就可以看到通过指定的默认用户登录了
wsl -d ubuntu_22.04 --cd ~
3.7 关闭与删除
关闭
# 关闭指定的子系统 wsl --terminate ubuntu_22.04(系统名称) # 关闭所有的子系统 wsl --shutdown
删除
- 必须先关闭然后才能卸载删除
- 执行下面的命令之后,【ext4.vhdx】的文件会被删除
wsl --unregister ubuntu_22.04
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论