【WSL系列】(一)安装与文件互访

WSL,即Windows Subsystem on Linux。中文叫Linux子系统。可以在windows里,直接启动一个linux系统,用过通过命令行控制。就和远程ssh差不多。但是,比远程ssh方便。你可以用熟悉的Linux命令轻松的操作windows文件,也可以用windows访问linux里面的文件。

除了文件,应用程序也是互通的。在WSL启动的web服务,直接在Windows用localhost打开就行了,端口都不用换。

从WSL 1.0,我就开始使用它了。有了它,很多东西就可以直接丢掉了。比如putty,你想,你可以直接启动一个linux,那么你就在Linux里面访问ssh了,你要putty干嘛?合并Windows文件,我直接用linux命令了。一行cat命令,省下好几行逻辑复杂的python。git也可以考虑删除了,因为linux自带git。

WSL 1.0 是没有UI界面。不过,我觉得界面这东西也不需要了。编辑文本文件我直接用Notepad++了,干嘛用这么复杂的vim。编程可以用vscode,他直接支持WSL。visual studio也支持WSL。我现在用vscode写python,用visual studio写c++,他们都很好的支持WSL。

WSL 1.0 不支持GPU的。WSL 2.0 开始支持GPU了,微软(Microsoft Developer)5月24日的视频里说的。

另外,我最近安装了Docker,也已经基于WSL了。微软还展示了WSL对UI的支持。

安装

升级Windows 10

现在,你可以选择安装WSL 1.0 或者 WSL 2.0。不过,如果你要装WSL 2.0,你需要升级你的Windows 10 到19041

https://www.microsoft.com/zh-cn/software-download/windows10

安装1.0

可以在powershell里执行以下命令。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

安装2.0

可以在powershell里执行以下命令。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

执行完这句命令以后,还需要升级wsl kernel。在这里直接下载。

https://docs.microsoft.com/en-us/windows/wsl/wsl2-kernel

安装Linux

打开Windows 商店,你就可以安装Linux了。
在这里插入图片描述
中国访问别的外网很慢,但是windows 商店的速度是刚刚的。我这里下载速度20兆,吓死我了。

很快,你就会看到如下节目,输入用户名,密码,开始你的WSL之旅吧。

文件互访

WSL里面访问windows文件很简单,你只需要输入/mnt/d,就是d盘了,/mnt/e就是e盘,以此类推。

你还可以直接在WSL启动windows程序。比如,你可以直接启动explorer,如果你加上.就直接启动当前WSL文件夹了。

explorer.exe .

在这里插入图片描述

启动explorer以后,你会看到路径是\wsl$开头的,没错,你也可以直接输入这个地址访问。

除此之外,你还可以启动vscode。(别忘了点)

code .

Common Practice

插一句,不知道你是不是和我一样,兴奋的决定到windows里面去修改linux的软件安装镜像。我改了半天,不让保存。所以,还是要回到wsl里面去改。微软不建议在外面修改linux文件。不过,你还是可以在wsl里面自由的修改windows文件。所以,我把代码都放在了windows,把程序安装在wsl。如果要重装,直接删除linux并重装。

同时,我把linux各种软件的安装文件都放在d盘。比如anaconda linux版,cmake等。安装的时候,我直接访问/mnt/d/linux就行了。解压的时候,也直接解压在这里。不过要用WSL解压,否则会有问题。问题就是可执行文件变成不可执行文件了。

把文件都放在windows的d盘,还有另一个原因。那就是wsl必须安装在系统盘,即c盘。这样导致c盘越来越大。linux的需要用的文件,仍然放在windows中,可以防止wsl占满c盘。

常见WSL命令

WSL是通过wsl命令来管理的。你在cmd或者powershell输入wsl可以直接打开默认的linux。输入

wsl --help

可以查看帮助。

最好的检查wsl版本的方法就是执行

wsl -l -v

如果出来的是帮助,那么说明wsl还是1.0。如果wsl是2.0,会显示已经安装的linux。
在这里插入图片描述
wsl升级到2.0以后,安装的linux并不会自动升级到2.0,需要执行以下命令。

wsl --set-version  Ubuntu-20.04 2

这个升级似乎很快,几分钟就好了。

下面这个命令可以设置linux默认使用wsl 2.0。

wsl --set-default-version 2

常见问题

有时候,在升级wsl,安装docker wsl版的时候,会碰到
“参考的对象类型不支持尝试的操作”

或者英语

“The attempted operation is not supported for the type of object referenced”

可以执行


netsh winsock reset

6月20日补充
升级后的问题,今天升级windows到了20150.1000,结果悲剧了。打开wsl,他让我升级。但是下了升级的msi,又说我没有wsl。后来找了这篇,手动把kernel文件放进去了。

For WSL2 you will need 2 Windows components so make sure they are already enabled:
Microsoft-Windows-Subsystem-Linux
VirtualMachinePlatform
Also it seems some people have problems with the installer extracting the kernel.
You can always extract it manually with:
msiexec /a “wsl_update_x64.msi” /qb TARGETDIR=“C:\temp”
and then copy the kernel file from C:\temp to C:\Windows\System32\lxss\tools
Final version shouldn’t have this problem since the install comes from Windows Update.

参考

官方文档: https://docs.microsoft.com/en-us/windows/wsl/install-win10

猜你喜欢

转载自blog.csdn.net/juwikuang/article/details/106652833
今日推荐