概念
复制代码
1
2
3
4
5
6基于window系统的linux子系统,也就是window中装了个linux,类似虚拟机,但比虚拟机轻量 wsl可以安装多个分发,也就是多个linux系统 wsl: 子系统,也就是管理工具,相当于linux镜像 Distro: 分发,也就是各个子系统软件实例,相当于镜像实例
安装
环境 | 要求 |
---|---|
系统 | windows 11 22H2 25217.1010以上 |
驱动(可选) | wslg需要显卡硬件支持GPU,支持的话安装对应版本驱动即可 用于 WSL 的 AMD GPU 驱动程序 用于 WSL 的英特尔 GPU 驱动程序 用于 WSL 的 NVIDIA GPU 驱动程序 |
虚拟化配置 | 启用虚拟化监控程序平台和虚拟机平台 重启进入bios界面确认启用虚拟化功能 |
软件包 | 1. wt: windows terminal(设置为默认程序) 2. wsl: window for linux preview 0.69以上 3. linux:Ubuntu-22.04.1 LTS |
说明
复制代码
1
2
3
4
5
6
7
8
9
10
11软件包可在微软商店下载 win11 + wsl 0.69以上 支持systemd和wslg界面 虚拟化配置路径:设置-应用-可选功能-更多window功能 可以按照官方文档说明安装,我是直接下载linux后直接打开就自动安装了 随界面提示安装好,第一次要修改密码: sudo passwd
官方安装文档
命令说明
常用命令
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17wsl --version WSL 版本: 0.67.6.0 内核版本: 5.15.62.1 WSLg 版本: 1.0.44 MSRDC 版本: 1.2.3401 Direct3D 版本: 1.606.4 DXCore 版本: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp Windows版本: 10.0.25206.1000 wsl -l -v wsl --set-default-version 2 wsl --shutdown wsl --export Ubuntu-22.04 D:softwaresystemUbuntu-22.04-1013.tar wsl --import Ubuntu-22.04-1013 D:softwaresystemUbuntu-22.04-1013 D:softwaresystemUbuntu-22.04-1013.tar
wsl | ||
---|---|---|
作用 | 管理子系统 | |
格式 | wsl [ARG] [option]... COMMAND | |
示例 | wsl -l -v | |
ARG | --exec, -e | 不使用默认shell执行指定命令 |
-- | 按原样传递其余命令行 | |
option | --cd | 指定当前目录 |
-d|--distribution | 运行指定子系统分发 | |
-u|--user | 指定用户 | |
wsl的参数 | --list --online | 查看能安装的分发 |
--install [-d ] | 安装指定分发,无指定即是默认分发 | |
--set-default-version | 指定wsl版本,一般设为2 | |
--shutdown | 停止所有运行的分发 | |
--update | 更新wsl内核版本 | |
--status | 查看wsl状态 | |
--rollback | 还原到wsl内核先前版本 | |
Distro的参数 | --export | 导出分发到指定tar文件 |
--import <安装路径> <导入路径> [options] | 导入分发到指定安装路径 option: --version 2 指定wsl版本 | |
--list|-l [options] | 列出分发信息 options --all 所有 --running 运行中 -q 只显示名称 -v 详细信息 -o 显示可安装的分发列表 | |
--set-edfault|-s | 设置默认进入的分发 | |
--set-version | 指定分发的wsl版本 | |
--terminate|-t | 终止分发 | |
--unregister | 注销分发并删除根文件系统 |
wslg
概念
复制代码
1
2
3
4wsl的图形工具,也就是支持你在window上显示linux应用的界面 wsl2 0.69以上版本 默认安装了wslg(比较稳定的wslg)
体验
复制代码
1
2
3
4apt install gedit gedit ~/.bachrc
网络配置固定IP
1.关闭network自动生成
复制代码
1
2
3
4
5vim /etc/wsl.conf [network] generateResolvConf = false
2.修改DNS地址
复制代码
1
2
3
4vim /etc/resolv.conf nameserver 8.8.8.8
复制代码
1
2
3
4
5
6重启后失效可以加入上面的.bashrc里 vim ~/.bashrc echo "nameserver 192.168.60.1" > /etc/resolv.conf
3.固定IP脚本
复制代码
1
2
3
4注意替换为你的分发名 使用方式:每次wsl shutdown都双击脚本进入
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33@echo on CHCP 65001 :: 开始获取管理员权限 setlocal set uac=~uac_permission_tmp_%random% md "%SystemRoot%system32%uac%" 2>nul if %errorlevel%==0 ( rd "%SystemRoot%system32%uac%" >nul 2>nul ) else ( echo set uac = CreateObject^("Shell.Application"^)>"%temp%%uac%.vbs" echo uac.ShellExecute "%~s0","","","runas",1 >>"%temp%%uac%.vbs" echo WScript.Quit >>"%temp%%uac%.vbs" "%temp%%uac%.vbs" /f del /f /q "%temp%%uac%.vbs" & exit ) endlocal :: 完成获取,下面可以开始写你自己的代码了 echo 当前运行目录: %cd% echo 批处理所在目录:%~dp0 echo 切换回批处理所在目录: cd /d %%~dp0 REM 先关闭虚拟子系统 wsl --shutdown REM 把这里理解为一个开机启动脚本就行 wsl -d 【你的分发名】 -u root ip addr del $(ip addr show eth0 ^| grep 'inetb' ^| awk '{print $2}' ^| head -n 1) dev eth0 wsl -d 【你的分发名】 -u root ip addr add 192.168.60.2/24 broadcast 192.168.60.255 dev eth0 wsl -d 【你的分发名】 -u root ip route add 0.0.0.0/0 via 192.168.60.1 dev eth0 powershell -c "Get-NetAdapter -IncludeHidden -Name 'vEthernet (WSL)' | Get-NetIPAddress | Remove-NetIPAddress -Confirm:$False; New-NetIPAddress -IPAddress 192.168.60.1 -PrefixLength 24 -InterfaceAlias 'vEthernet (WSL)'; Get-NetNat | ? Name -Eq WSLNat | Remove-NetNat -Confirm:$False; New-NetNat -Name WSLNat -InternalIPInterfaceAddressPrefix 192.168.60.0/24;" REM 启动对应Linux系统,我这里是使用windows terminal wt -p Ubuntu-22.04 exit
4. 测试
复制代码
1
2
3
4
5
6
7
8
9
10
11ip route default via 192.168.60.1 dev eth0 192.168.60.0/24 dev eth0 proto kernel scope link src 192.168.60.2 网关:192.168.60.1 子网掩码:192.168.60.0/24 ip地址:192.168.60.2 ping lu.com
5. 扩展
复制代码
1
2
3
4
5网上还有一种方式是制作exe执行文件,放入windows的service服务就可实现开机自动执行,无需手动点击脚本,但我没有尝试成功,附上文档和链接 关键API: HcnCreateNetwork HcnCreateEndpoint
exe方式教程
官方API
全栈技术分享,API文档动态更新,技术点简明易懂,快速入门
有帮助的话点个赞吧,感兴趣的关注加书签获得更多文档,方便随时查阅,有问题欢迎留言讨论
最后
以上就是虚拟手套最近收集整理的关于【WSL】文档 [不断补充中...]的全部内容,更多相关【WSL】文档内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复