当前位置: 首页 > 科技观察

12步搞定Wsl 2,安装、交互、迁移、VSCode远程调试应有尽有

时间:2023-03-13 05:40:04 科技观察

12步完成Wsl2,安装,交互,迁移,VSCode远程调试。最新版本是WSL2。2、安装WSL2的软硬件条件WSL2的安装必须满足以下条件:(1)必须是Windows10或Windows11系统。如果是Windows10,版本必须是2004或以上,对应的内部版本号是19041或更高版本;如何查看Windows版本号和内部版本号:按Windows标志键+R键打开运行窗口,输入winver命令,弹出如下图窗口,其中版本号和内部编号。(2)CPU必须支持虚拟化,必须在BIOS中开启虚拟化支持;读者可以打开Windows任务管理器,在“性能”页面的右下角,如果找到如下图所示的“Virtualization:Enabled”,说明虚拟化已启用。3.在线安装WSL2安装WSL2非常简单,只需在PowerShell中执行以下命令即可安装。wsl--install此命令将启用所需的可选组件,下载最新的Linux内核,将WSL2设置为默认值,并安装Linux发行版(默认安装Ubuntu)。如果要更改默认安装的Linux(安装其他Linux发行版),可以使用以下命令:wsl--install-d表示Linux发行版名称,可以使用以下命令查看哪些Linux发行版WSL2目前支持。wsl--list--online或wsl-l-o执行命令后,会看到如下图所示的Linux发行版列表。例如,要安装DebianLinux,您可以执行wsl--install-dDebian命令。要查询本地安装了哪些Linux发行版,可以使用wsl--list或wsl-l。4、离线安装WSL2在线安装Linux发行版虽然很容易,但是有个问题就是不能选择安装路径。默认情况下,Linux发行版的所有文件都会安装在C盘。如果C盘不大,很容易装满。所以我们期望在其他磁盘上安装Linux发行版。网上有很多更改默认安装路径的方法。其实有更简单的实现方式,就是直接下载离线版的Linux发行版,解压运行即可。你解压到哪个盘,以后所有的文件都会放在这个盘里。读者可以到以下页面末尾下载相应的Linux发行版:https://docs.microsoft.com/zh-cn/windows/wsl/install-manualPS:如果读者使用的Windows版本比较低,不能使用在线安装方式,也可以按照上面的页面使用手动安装方式。下载的Linux发行版都是appx文件(或者其他扩展名),都是压缩文件,只要把扩展名改成zip,然后解压即可。假设您正在下载Ubuntu20.04。解压后里面有一个ubuntu2004.exe文件,直接运行即可。首次运行时,会要求输入用户名和相应的密码。以后直接运行就可以进入Ubuntu终端了,如下图。PS:同一个Linux发行版可以启动多个实例,共享其中的文件。另外,对于WSL中的Ubuntu,安装程序的方式与普通的Ubuntu安装完全一样。您可以使用sudoaptinstall在线安装任何程序。5.提升root用户的权限。默认情况下,普通用户登录WSL。如果要切换到root用户,一开始是不行的,因为root用户的密码没有设置,所以首先需要使用下面的命令设置root用户的密码。密码。设置好sudopasswdroot的密码后,就可以使用su命令提权了。每次重启WSL,你还是普通用户,需要用su命令切换到root用户。6、Windows访问WSLWSL与VMWare不同,WSL属于Windows的子系统,不是虚拟机,所以执行效率比VMWare快很多。但是无论是WSL还是VMware,都会涉及到与宿主机(Windows)的交互。我们先看看WSL中Windows是如何访问目录的。由于WSL是Windows的一个子系统,是一个系统很好的服务,所以可以直接使用如下地址访问:\\wsl$\Ubuntu-20.04其中\\wsl$是前缀,后面的Ubuntu-20.04在PowerShell中使用wsl-l命令列出的本地Linux发行版的名称。如果只使用\\wsl$,将显示所有Linux发行版。双击进入某个分布。你看到的目录结构如下图所示。这些是Ubuntu下的文件和目录。但是,随便点击某个目录,会发现有些目录根本进不去(无访问权限),即使有进入权限也不能创建文件或目录。所以需要在WSL中执行如下命令,将要访问的目录的权限设置为一个可以访问这些目录的用户,比如root。sudochown-Rroot/home/mydirsudochmod777/home/mydir如果想递归设置某个目录的权限,可以使用-R命令行参数,如下:sudochmod-R777/home/mydir现在就可以愉快的访问了Windows下的WSL/home/mydir目录没有了。PS:为了方便与WSL交互,可以通过\\wsl$列出所有的Linux发行版,然后通过右键菜单将一个Linux发行版映射到一个逻辑盘符。7.通过WSL访问Windows在WSL中访问Windows更容易。可以进入WSL中的/mnt目录,WSL会自动挂载Windows中的所有盘符,可读可写,如下图。读者只需输入相应的盘符即可完成相应的操作。8、在Windows中直接执行Linux程序WSL和Windows已经完全连接。Windows中的PowerShell可以执行Linux中的命令。比如输入PowerShell(推荐使用WindowsTerminal,可以显示多个WindowsPowerShell),直接输入ls,就可以用Linux风格列出Windows中的目录和文件,如下图。也可以使用wsl命令来执行任何Linux命令,比如wslgcca.c-oa该命令使用gcc将a.c编译成可执行文件a。然后使用wsla就可以运行a了。9.在Linux中执行Windows命令你也可以在Linux中执行Windowsexe文件。例如在Linux下输入/mnt/c/windows,在Windows下执行write.exe命令启动写字板程序。需要注意的是,虽然是在linux下运行,但是因为运行的是windows的exe程序,所以不区分大小写。其实本质上并不是在Linux中运行Windows程序,而是在WSL中向Windows发送要运行的程序的消息(比如exe文件的具体路径),最后执行exe文件通过Windows。所以执行write.exe和WRITE.exe的效果是一样的。10.VSCode远程调试VSCode如果想使用WSL调试程序,可以在Windows中安装VSCode,然后安装Remote-WSL插件,如下图所示。该插件允许在Windows版的VSCode中连接WSL环境,在VSCode的终端中可以直接输入Linux命令。安装此插件后,VSCode左侧工具栏上会有一个图标。点击该图标进入REMOTEEXPLORER页面,该页面会列出当前机器上安装了多少个WSLLinux实例。下图是我安装的WSLLinux实例。点击一个Linux实例,直接打开实例中的目录,即可正常开发。如果发现无法创建目录或文件,请使用chmod命令设置目录的权限。11、修改虚拟硬盘文件的默认路径。ext4.vhdx文件是WSL中的虚拟硬盘文件。如果不幸的是文件安装在C盘,而你又想将其移动到另一个硬盘,可以使用以下方法:(1)输入wsl-l--all-v命令会得到安装的所有Linux发行版WSL,以及状态和版本号;(2)使用以下命令将ext4.vhdx文件导出为wsl-ubuntu20.04.tar文件,该文件放在D盘根目录下,读者可以修改为任意路径。wsl--exportUbuntu-20.04d:\wsl-ubuntu20.04.tar(3)使用以下命令注销Linux发行版wsl--unregisterUbuntu-20.04(4)使用以下命令导入ext4.vhdx文件wsl--importUbuntu-20.04d:\wsl-ubuntu20.04d:\wsl-ubuntu20.04.tar--version2(5)重新注册Ubuntu12。将WSL发行版迁移到另一台机器也可以使用上述方法进行迁移,但这里提供另一种更简单的方法。(1)将要迁移的WSLLinux发行版中的ext4.vhdx文件复制到另一台机器上(2)按照正常步骤在另一台机器上安装相同的WSLLinux发行版(3)使用wsl--shutdown命令关闭down本机所有WSLLinux发行版(4)直接覆盖新安装的WSLLinux发行版中的同名ext4.vhdx文件(5)使用wsl-dUbuntu-20.04重启WSLLinux发行版哦,现在有了被完全迁移。另外注意将上面步骤中的Ubuntu-20.04换成自己机器上WSLLinux发行版的名字。本文转载自微信公众号“极客起源”,可通过以下二维码关注。转载本文请联系极客本源公众号。