适用于 Linux 的 Windows 子系统 WSL
Windows作为刷剧打游戏等日常使用是相当友好,但在开发上,相比于Unix/Linux还是拉了点。所以微软自家也搞出了个Windows下的Linux子系统,相当于官方支持的一个虚拟机,相比于VMWare在系统配置上又省事了很多。
目前的应用思路是将MySQL、Redis等通过WSL实现在Windows上的运行。
由于某些未知原因,我的电脑上升不了WSL2,难顶
安装
系统版本需要 Win 10 2004及以上
控制面板 > 程序 > 程序与功能 > 启用或关闭windows功能
中需要勾选“适用于Linux的Windows子系统”,“虚拟机平台”
- 微软商店直接下载
wsl --install
进行安装
使用
wsl # 未提供命令行,将启动默认分发
wsl --help
wsl --exec <CommandLine> # 在不使用默认linux Shell 的情况下执行指定的命令 ,-e
wsl --set-default-version 2 # 更改新分发的默认安装版本为wsl2
wsl --set-version <分发> 2 # 修改新分发的安装本版为wsl2
wsl --list --online # 可用的可安装的分发
wsl -l -o
wsl --install --distribution Ubuntu # 安装Ubuntu分发 -d
wsl --list --all # 列出所有分发
wsl -l -a
wsl --list --running # 列出正在运行的分发
wsl --list --verbose # 列出所有分发的详细信息
wsl -l -v
wsl --status # 显示wsl系统的状态
wsl --terminal <分发> # 终止指定的分发
wsl --shutdown # 立即终止所有运行的分发
<DistributionName> config --default-user <Username> # 更改发行版的默认用户(此命令不适用于导入的发行版,因为这些发行版没有可执行启动器)
由于WSL 中的 systemd 不是原生的,对一些服务的启动管理不能使用
systemctl
,而是需要使用sudo service xxx staus
WSL迁移
怎么说WSL也可以看作是一个操作系统了,又一个操作系统挂载在C盘难受的一批,占着自己的系统盘(整整12G+!),一个解决方法就是迁移到其他盘。
默认的安装位置为:C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_**\LocalState\rootfs
,这里对应的就是WSL中Ubuntu的文件系统。
-
查看正在运行的WSL
wsl -l --running # Ubuntu-20.04
-
终止当前正在运行的WSL
wsl --shutdown
-
将需要迁移的WSL导出
wsl --export Ubuntu-20.04 D:\WSL\ubuntu2004.tar
-
将导出的文件放到需要保存的地方,进行导入(此处的版本需要和原来一样)
wsl --import Ubuntu2004 D:\WSL\ubuntu2004 D:\WSL\ubuntu2004.tar --version 2
-
将原有的发布进行卸载
wsl --unregister Ubuntu-20.04
操作过程中遇到“RPC服务器连接问题”,导致导入这一步失败。(还好没有导出后就卸载)
—— 2022/8/18 ——
主要是因为版本没选对,目前我的电脑在使用版本2的时候还存在问题。迁移之后,默认登录用户就会变成root,但不影响原用户的存在,可以改为使用
/etc/wsl.conf
文件(需要新建)来更改导入的发行版的默认用户。具体见WSL 中的高级设置配置
# Set the user when launching a distribution with WSL. [user] default = DemoUser
Q&A
apt/apt-get无法更新到最新库
原因:DNS没有配置,不能解析
解决(参考【1】)
sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)