当前位置: 首页 > news >正文

windows上子系统WSL下载和使用

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.net/wslblob/wsl_update_x64.msi

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

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

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

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

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

此时用 Watt Tookit (官网:https://steampp.net,或者再 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的可执行文件。

注:此文章搬运自本人2025.05.04CSDN: https://blog.csdn.net/sinat_26398509/article/details/147685025?spm=1001.2014.3001.5502

http://www.jsqmd.com/news/412563/

相关文章:

  • linux系统 Qt 通常的目录结构
  • 算法备案分类详细及合规要点整理(2026年更新版)
  • MySQL数据库从win导出成_db.sql复制到linux
  • EC2 使用 dnsmasq 本地缓存 + EKS 使用 NodeLocalDNS
  • 基于 Kubernetes + Helm 部署高可用 ETCD 集群
  • OS 核心知识点全解析(一)
  • Redis 迁移方案-RedisShake
  • qml可拖动折线图
  • 【linuxqt】qsql_mysql.cpp:57:10: fatal error: QtSql/private/qsqldriver_p.h: No such file or directory
  • 我草我怎么这么牛
  • 基于 AWS Global Accelerator 实现全球低延迟访问-RapidX 全球加速方案
  • day96(2.25)——leetcode面试经典150
  • 【Linux】进程的页表详解
  • YOLO26最新创新改进系列:主干网络全新设计——EfficientNetV2-BackBone ,引入渐进式学习策略、自适应正则强度调整机制,共同优化训练速度和参数效率,全方位提升模型检测性能!!
  • YOLO26最新创新改进系列:融入AKConv(可改变核卷积),加强特征提取,任意数量的参数和任意采样形状,为网络开销和性能之间的权衡提供了更丰富的选择。 拉升检测性能!
  • 瑞芯微开发板开机自启动设置
  • FastAsyncWorldEdit zh-cn strings.json 中文汉化
  • **0-1 背包问题中回溯法的搜索过程、通用解题步骤及两种算法实现框架(递归与非递归)**,是算法设计与分析中的经典范例
  • SRE 团队体系建设之路
  • 惊叹!大数据数据增强如何颠覆传统模式
  • int[] 与 integer[] 相互转换
  • Amazon EMR 高可用 EMR 部署注意事项及关键配置
  • SolidPlant 2020管道设计软件安装包(含详细图文教程)|兼容SolidWorks 2017及以上版本
  • 【踩坑】MacOS26上的浏览器无法显示麦克风/摄像头列表
  • 【DFS】BISHI77数水坑
  • SimpleDateFormat(YYYY-MM-dd)格式化时间出现了bug?
  • 《P1973 [NOI2011] NOI 嘉年华》
  • 华为OD机考双机位C卷 - 几何平均值最大子数组 (Java Python JS GO C++ C)
  • 实现一个简单的文本摘要生成器。
  • pyTorch环境搭建及遇到的算力问题