admin 管理员组

文章数量: 1103806

WSL是什么?

       Windows Subsystem for Linux, 是用于windows10/11系统之上的Linux子系统。目前有WSL1和WSL2两个版本。

作用:可以在Windows中获得Linux系统环境,直连计算机硬件来构建linux操作系统,而无需通过虚拟机去模拟硬件。

WSL1:较早的版本,其相当于一个翻译层,将linux指令翻译为Windows NT可理解的系统指令,wsl1不运行linux内核,用windows内核模拟linux系统,因此会出现兼容性问题,比如无法运行docker

WSL2:新版本,使用了真正的Linux内核,底层是基于Hyperv的虚拟化平台,开启Hypervisor后,windows和wsl2相当于2个虚拟机。可以运行docker

 使用WSL2的前提

        开启CPU虚拟化、开启windows两个功能(控制面板-程序中打开)。如下图所示,设置好后重启电脑。

 下载WSL

离线下载地址:

Download the latest package and run the update package

https://wslstorestorage.blob.core.windows/wslblob/wsl_update_x64.msi

If you're using an ARM64 machine, please download the ARM64 package instead.

https://wslstorestorage.blob.core.windows/wslblob/wsl_update_arm64.msi

直接使用命令行下载:wsl --install (网速慢使用命令wsl --install --web-download), 出现以下提示,表示默认ubuntu不适配系统

为了避免wsl本身并非最新而导致一些问题,先输入wsl --update,有以下正常输出:

再输入 wsl --list --online查看可以安装linux发行版列表,发现报以下错,表明网络链接不稳定:

此时用 Watt Tookit (官网:https://steampp,或者再 Microsoft Store 中也可以下载) 对 Github进行加速(它默认会勾选对Steam进行加速,我没有特意取消这一选项,所以我实际上对 Steam 和 Github 都进行了加速),

再次输入 wsl --list --online,发现可以正常输出:

为了连接网络顺利,打开 Watt Tookit 进行github网络加速,再指定linux发行版本下载:

设置好用户名和密码。

如果不使用命令行方式下载发行版,也可以直接在Microsoft Store里面搜索Ubuntu下载发行版。

打开已安装的子系统

对于老版window命令行,启动安装过的linux子系统,exit可以直接退出:   

对于新版的PowerShell,直接点击倒三角标识可以切换子系统:

也可以直接在应用程序中搜索Ubuntu并打开:

wsl的一些基础操作命令

卸载一个子系统:

备份(导出)子系统:(以下是导出ubuntu这个子系统,压缩包的名字是自己取的)

导入子系统(不占用C盘空间,把它导入到D盘新创建的目录里)

文件共享:ubuntu中通过 df -h命名显示了所有挂载卷

其中win中c盘和d盘,直接作为挂载卷进了linux系统(这种挂载卷的方式IO性能很差,建议直接把文件拷贝过来)

在WSL上下载G++编译器

打开子系统后,输入以下命令行:

sudo apt update

sudo apt install g++ -y

gcc --version 或 g++ --version

VScode连接WSL子系统实现编译C++文件

1.下载VScode,安装插件C/C++、WSL

插件下载后搜索框点击connect to wsl连接WSL子系统

2.直接在Terminal上使用命令行gcc c hello.c编译hello.c文件为二进制.o文件,再gcc hello.o -o hello,生成一个hello的exe文件。或直接gcc hello.c生成默认名为a.out的可执行文件。

本文标签: 子系统 Windows WSL