无痛使用wsl
用 WSL ,当命令行糕手(x
无痛安装 WSL
启动WSL功能
在【控制面板 -> 程序 -> 程序和功能 -> 启用或关闭 Windows 功能】中勾选【适用于 Linux 的 Windows 子系统】
如果你的电脑里有用过 VMware ,需要把 hyper-v 也勾上。
如果没有 hyper-v ,请跳转自助填坑-1
在终端管理员里执行下面的两条命令
1 |
|
指定 wsl2 为默认版本
需要先下载更新包,直接 wsl --update
1 |
|
需要看一下自己的电脑版本是不是符合条件,wsl2要求 For x64 systems: Version 1903 or later, with Build 18362 or later.
win+R 输入 winver:
下载Ubuntu镜像
直接去微软商店里搜就行了。都是免费的
安装要挺久的,加上我之前代理有一点 bug,只能把代理关了才能用商店,啥事都干不了🥹
下载好之后就可以像打开一个软件一样打开 ubuntu ,在命令行里面操作辣。
好玩的
还在冲浪的时候看到给 WSL 配置代理的教程,发现有的佬说可以直接开 clash 的 TUN Mode。clash 主页也有提示,需要下载一个对应的插件工具,就可以无痛走代理了。
自助填坑
1-请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化。
发生在启用 wsl 的时候
可以在任务管理器里查看自己的电脑是否开启了虚拟化,没开的话退回到第一步检查一下
大部分的解决方案都是说在 powershell 里面执行下面的命令
1 |
|
这个适用于你的其他选项都正常只是没有开启 hyper-v 。很大原因是你的电脑上同时存在 VMware,而虚拟机会把你的 hyper-v 关掉。
但是问题是我根本没有 hyper-v 。
下载组件就好:
新建一个txt文件,把下面的内容复制进去
1 |
|
修改后缀为 cmd ,直接用管理员方式运行
安装完成之后,打开 Windows 功能,把 hyper-v 打开,勾选上,重启电脑。
再来一次 bcdedit /set hypervisorlaunchtype auto
2-Ubuntu运行时报错 WslRegisterDistribution failed
wsl 版本不匹配,太低或太高,自行安装不同版本调整
3-wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
可能是因为我开了代理吧,需要处理一下
WSL 中有一个配置文件用于配置高级设置选项 .wslconfig
,这个文件默认是没有的,我们要手动创建。
这个文件需要保存在 C:\Users\<UserName>\.wslconfig
中,我们在这个目录里面创建 txt 然后改文件名 ( 这个操作不会有人不会吧!!) 。
创建文件后,填入以下内容并保存。
1 |
|
再打开 power shell,输入 wsl --shutdown
,重新打开 WSL,就没有之前的提示了。
4-WSL和虚拟机的兼容
如果不兼容就是 vm 版本太低了,更新一下就好
或者每次使用之前开关 hyper-v
反正我是不用做任何的操作就直接可以兼容的
5- 404 Not Found [IP: 127.0.0.1 7890]
因为是新的虚拟机嘛,配环境要下载一些工具,直接就来了库库报错,如下图:
我一看这不是我的代理地址吗?
这是 clash 给我整的本机的代理地址,但我不想要虚拟机使用这样的代理地址,所以需要关闭一下
可以通过这个命令来查看ubuntu的代理配置 env | grep -i proxy
大致内容有 http_proxy,HTTPS_PROXY 和 HTTP_PROXY 这三项内容中的一项或者多项,对应地使用命令将其全部删除即可,例如 unset HTTP_PROXY
wsl 和 windwos 互传文件
我肯定会忘所以放这里
在 windows 可以在文件资源管理器里通过 \\wsl$
访问 WSL 分发版的默认用户。
也可以直接点那个 Linux 进入。
在 linux 里直接 cd /mnt/[对应盘符]
就可以访问到 windwos 主机的文件