WSL2的安装与使用-Windows与Linux双系统的新选择

2023-05-16

文章目录

    • WSL2的安装与使用-Windows与Linux双系统的新选择
      • 1. WSL是什么
      • 2. 为什么会有WSL
      • 3. 为要选择WSL2作为开发环境
        • 3.1 WSL与WSL2有什么区别
        • 3.2 Windows与Linux系统的抉择
      • 4. WSL2的安装
        • 4.1 安装条件
        • 4.2 启用所需Windows功能
        • 4.3 设置默认WSL版本
        • 4.4 安装Linux发行版
        • 4.5 打开Linux发行版
        • 4.6 导出与导入Linux发行版
      • 5. WSL2的使用
        • 5.1 文件操作
        • 5.2 Linux子系统的配置
        • 5.3 使用VScode连接到WSL2
        • 5.4 使用Pycharm连接到WSL2
      • 6. 总结

WSL2的安装与使用-Windows与Linux双系统的新选择

既要使用Windows系统满足日常生活,协作办公,又要使用Linux系统满足开发工作,双系统来回重启好麻烦,双主机成本高,远程服务器好多限制,WSL也许是更好的解决方案,可以摆脱以上困扰

1. WSL是什么

WSL全称Windows Subsystem for Linux,适用于Linux的Windows子系统

WSL就是Windows系统下的一个Linux子系统,可以像一个应用一样安装在Windows系统中,为在Windows系统下进行开发的人员提供基于Linux系统的开发环境,并且可以选择不同Linux发行版本,拥有与原生Linux系统相同的大部分功能

微软对WSL描述为:适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销

2. 为什么会有WSL

在通用计算机系统领域Windows拥有着无法撼动的地位,但是Linux具有免费、开源、高安全性、高可用性等特点,在服务器、嵌入式开发、软件开发等领域中,Linux仍是主流的选择。虽然Linux系统拥有诸多优点,但是大部分人日常生活的使用还是无法脱离Windows系统,所以有不少人更多是日常生活用Windows,开发工作用Linux

微软现任CEO纳德拉上任以来开始拥抱开源,微软一度成为开源项目最大贡献者,在收购GitHub之后,又推出了一系列开源产品,如VScode、TypeScript等

微软在2018年发布了WSL,在2019发布了WSL2,作为一个重要的升级,大大增加了文件系统的性能,增加了对全系统调用兼容性的支持,增加了对使用基于 GUI 的 Linux 应用程序的支持。目前,Windows Server 2022已支持WSL2 Linux发行版,也代表WSL2现在已经覆盖了Windows Desktop和Windows Server

当然,微软作为一个商业公司,此举还是为了吸引更多的用户使用Windows

3. 为要选择WSL2作为开发环境

3.1 WSL与WSL2有什么区别


从上面的比较表中可以看出,WSL2架构在几个方面优于WSL1,并且WSL2拥有完整的Linux内核。对于跨OS文件系统的性能,微软也给出了解决办法:可通过将项目文件存储在与处理项目时运行的工具相同的操作系统上进行处理

3.2 Windows与Linux系统的抉择

日常生活办公需要Windows,开发工作需要Linux,对于两者都有需求的人来讲,都不可避免的要来回切换不同的操作系统。虽然,部分人可以在一些Linux发行版上满足日常生活办公的需求,但是,不可否认Windows拥有更加强大的生态和便捷性,更重要的是大家都是合作办公,需要交互。针对双系统的需求,有几种不同的解决方案,各有利弊

解决方案
双主机分别安装Windows与Linux独立运行、物理隔离成本高、不同系统数据传输不便
单主机双系统真实操作系统使用麻烦,需要重启切换
搭建远程服务器真实操作系统成本高、可能受到性能、带宽的限制
Linux系统虚拟机使用与真实操作系统基本无差异占用资源、运行效率低
WSL2使用便捷、无缝切换、不会产生传统虚拟机或双启动设置开销系统功能可能不完整、无法支持某些软件

对于Windows与Linux系统都有需求的人来说,WSL2是一个非常棒的解决方案,既能满足我们在日常生活办公中使用Windows,又能在开发工作中方便快捷的使用Linux

但是,WSL2毕竟是Windows下的Linux子系统,其运行稳定性的上限还是取决于其宿主Windows系统。若是追求高安全性与稳定性的专用服务器、工作站等,还是直接安装Linux系统

WSL2是一款优秀的产品,如果是只是进行日常开发工作,跑跑Demo,WSL2不失为一个好的解决方案。

4. WSL2的安装

4.1 安装条件

必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11

Tips:若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定” 。

4.2 启用所需Windows功能

安装WSL2需要启用windows功能中的虚拟机平台适用于Linux的Windows子系统
可以直接使用Windows+R快捷键,在打开的「运行」窗口中直接执行optionalfeatures打开「Windows 功能」,或者在控制面板中打开「Windows 功能」启用需要的功能,然后重新启动


4.3 设置默认WSL版本

可以通过PowerShell或者cmd使用下面的命令设置默认版本

     wsl --set-default-version <Version>

若要将默认版本设置为 WSL1 或 WSL2,请将<Version>替换为数字 1 或 2,表示对于安装新的 Linux 发行版,你希望默认使用哪个版本的 WSL,例如:


4.4 安装Linux发行版

可以在Microsoft Store里面,通过关键字搜素,查找相关应用,然后选择一个需要的Linux发行版安装


若Microsoft Store打开不顺畅,可以利用下面的方式安装Linux发行版

  1. 可以通过下面的命令查看可安装的Linux发行版
     wsl --list --online


  1. 然后通过下面的命令安装指定的Linux发行版
    wsl --install -d <Distribution Name>

安装指定的 Linux 发行版,请将 <Distribution Name> 替换为你首选的 Linux 发行版的名称(例如 Ubuntu-20.04)


4.5 打开Linux发行版

我们可以通过下面的命令查看已经安装的Linux发行版

     wsl -l


  • 可以在所有应用里面找到Ubuntu,然后打开,可以将其固定任务栏或开始屏幕以方便快捷启动



  • 也可以在Windows的终端中,直接打开Ubuntu



初次打开Linux发行版时,需要设置用户名和密码,输入密码时,屏幕上不会显示任何内容,为盲目键入。

4.6 导出与导入Linux发行版

我们可以将已经安装好的Linux发行版导出,然后安装到其他盘内,以节省C盘空间,同时,在协同开发中也可将导出的Linux发行版共享给他人使用,以实现开发环境的统一

  1. 以安装好的Ubuntu为例,导出Ubuntu的tar文件到D盘中

     wsl --export Ubuntu-20.04 D:\Ubuntu-20.04.tar
    
  2. 注销当前已经安装的Linux发行版

     wsl --unregister Ubuntu-20.04
    
  3. 将导出的Linux发行版重新导入并安装到D盘

     wsl --import Ubuntu-20.04 D:\Ubuntu-20.04 D:\Ubuntu-20.04.tar --version 2
    
  4. 设置默认登录用户

     ubuntu2004 config --default-user <UserName>
    

    <UserName>替换为初次打开Linux发行版时设置的用户名

5. WSL2的使用

5.1 文件操作

Windows系统下,在我的电脑中可以找到Linux子系统的文件夹,可以直接进行访问,并与Windows系统下的文件进行相互操作


5.2 Linux子系统的配置

WSL2安装完成之后,相关的系统配置就与真实的操作系统相似了
以Ubuntu为例,作为国内用户,为了方便我们使用可以更新国内的镜像源
对于使用Python编程的用户,可以安装Anaconda配置相关环境
具体操作就不在此赘述了

5.3 使用VScode连接到WSL2

  • VS Code 利用 Remote-WSL 扩展使你能够直接从 VS Code 使用 WSL2 作为实时开发环境


  • 通过使用 VS Code 中的快捷方式 CTRL+SHIFT+P 调出命令面板,以访问更多 VS Code 远程选项。 如果随后键入 Remote-WSL,将看到可用的 VS Code 远程选项列表,使你可以在远程会话中重新打开文件夹,指定要在哪个发行版中打开


  • 可以选择Remote-WSL:Open Folder in WSL打开WSL中的文件夹


  • 那么,利用WSL2中Python环境就可以正常编译运行代码,并且在VS Code中可以操作WSL的终端


  • 若要从Linux发行版打开项目,可以打开发行版的命令行并输入:code .


5.4 使用Pycharm连接到WSL2

在Pycharm项目中,可以在设置中将Python Interpreter修改为WSL2中构建的python环境,利用WSL2中Python环境就可以正常编译运行代码,并且可以操作WSL的终端




6. 总结

WSL作为一个开发人员的新选择,满足了Windows与Linux系统的高效使用,相比双系统、虚拟机等方案,WSL更加便捷、高效。随着微软的不断更新和支持,就Ubuntu而言,WSL的体验已经非常接近真实的Ubuntu系统。更多有关WSL的信息可以参考微软官方文档

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WSL2的安装与使用-Windows与Linux双系统的新选择 的相关文章

  • 模糊测试、黑盒测试、白盒测试、渗透测试

    模糊测试 模糊测试 xff08 fuzz testing fuzzing xff09 是一种软件测试技术 其核心思想是自动或半自动的生成随机数据输入到一个程序中 xff0c 并监视程序异常 xff0c 如崩溃 xff0c 断言 assert
  • MySQL中文参考手册之my.conf

    4 15 3 自动启动和停止MySQL mysql server脚本可以被用来启动或停止服务器 xff0c 通过用start或stop参数调用它 xff1a shell gt mysql server start shell gt mysq
  • 你的支付授权失败。请核对你的信息并重试,或尝试其他支付方式。 解决方案

    苹果开发账号续费的时候 xff0c 提示 xff1a 你的支付授权失败 请核对你的信息并重试 xff0c 或尝试其他支付方式 解决方案如下 xff1a 1 第一步在填写邮箱和手机号的地方 xff1a 1 手机号填写信用卡上面的手机号 2 x
  • 特征提取算法——HOG (Histogram of Gradient)方向梯度直方图学习笔记

    今天介绍一种图像特征提取算法 xff1a HOG xff08 Histogram of Gradient xff09 方向梯度直方图 HOG 43 SVM广泛运用与行人检测 xff0c 在CVPR2005这篇文章中 xff0c 实施HOG算
  • Spring源码解析(一)实现IOC的几种方式

    项目结构 iocinit iml pom xml src main java com terwergreen spring iocinit IOCTest1 java IOCTest2 java IOCTest3 java
  • 在Visual Studio Code安装Java(MacOS)

    首先要安装JDK xff0c 从网上搜索JavaSE xff0c JavaSE里面有JDK 自行下载和安装 打开Visual Studio Code界面里 xff0c 打开Extensions界面 xff0c 输入Java搜索 xff0c
  • 群晖自动将阿里云盘里面的内容下载到本地(全网独家)

    全网独家 更高效的群晖自动将阿里云盘里面的内容下载到本地 工具选取Clouddrive2 43 Webdav server 43 CloudsyncCloudDrive2设置Webdav server设置Cloudsync设置 更高效的群晖
  • 虚拟机中Linux系统不识别U盘问题的解决方案

    虚拟机中Linux系统不识别U盘问题的解决方案 1 首先查看工具栏 gt VM gt Settings gt Hardware 看看Device栏中有没有USB Controller xff0c 若没有ADD添加一个 若有再点击它 xff0
  • [WARNING] 'dependencies.dependency.systemPath' for...

    1 描述 使用Maven打包时 xff0c 总是会出现警告 xff0c 原因是我引用了本地lib包导致 D workspace f gt mvn package INFO Scanning for projects WARNING WARN
  • Vim配置文件(.vimrc),Vim配置教程

    Vim 启动时 xff0c 会根据配置文件 xff08 vimrc xff09 来设置 Vim xff0c 因此我们可以通过此文件来定制适合自己的 Vim Vim 配置文件分为系统配置文件和用户配置文件 xff1a 系统配置文件位于 Vim
  • Windows11+VS2019+CUDA11.8配置过程

    最近要处理大规模点云数据 xff0c 用CPU跑感觉有点慢 xff0c 想通过GPU加速点云处理过程 xff0c 于是想要学习CUDA编程 很多教程提到在安装CUDA之前 xff0c 需要打开cmd xff0c 输入nvidia smi x
  • k8s-集群搭建1.26.2【傻瓜式搭建】

    k8s 1 26 2 kubeadmin 傻瓜式集群搭建 1 环境准备 1 1硬件资源准备 1 每台机器 2 GB 或更多的 RAM xff08 如果少于这个数字将会影响你应用的运行内存 xff09 CPU 2 核心及以上 1 2软件环境准
  • 修改sqlserver的数据库名、物理名称和逻辑文件名

    最近在一个项目上遇到需要修改数据库名称 物理文件名和逻辑名称 如下图所示 xff0c 数据库ty cms lz的物理文件名是ty cms lz mdf和ty cms lz 0 ldf xff0c 逻辑文件名是lhc cms和lhc cms
  • 解决ubuntu 16.04显示wifi已禁用

    作者所使用的电脑型号为 xff1a acer aspirs 4750G 五一小长假 xff0c 闲来无事 xff0c 把表姐尘封已久的笔记本电脑装个ubuntu学习学习 xff0c 装机过程就不多说了 xff0c 百度一大堆的方法 在这里主
  • Kali Linux下搭服务器环境

    设置SSH开机启动 xff0c 前提是客户端和服务端均已安装 xff0c 查看是否启动 xff1a span class token function ps span e span class token operator span spa
  • 运行Djongo项目

    安装 python3 https www python org downloads 设置环境变量 PY HOME C Users Terwer AppData Local Programs Python Python37 Path PY H
  • 数据结构 —— 利用栈实现回文判断

    一 先理解什么是栈 什么是回文 栈的性质 xff1a 先进后出或后进先出的特性 xff0c 栈的实现也很简单 xff0c 只需要一个一维数组和一个指向栈顶的变量top就可以了 我们通过变量top来对栈进行插入和删除操作 回文 xff1a 回
  • 【CSS】flex布局实现一行展示三个子元素并两端对齐

    本代码在微信小程序里实现 xff0c 效果如下 xff1a WXML xff1a lt view class 61 34 goods box 34 gt lt view class 61 34 list 34 gt lt view clas
  • 阿里云域名动态解析

    由于国内个宽带商基本无法对个人用户免费提供固定的公网IP地址 xff0c 所以当我们需要通过公网IP映射域名的时候 xff0c 就会出现IP总是会变 xff0c 这个时候就需要用到域名动态解析 CodePlus AliyunDns Gith
  • Windows beego 安装

    前言 xff1a 是不是在执行go get命令很慢呀 xff0c 现在发大招了 打开window终端 xff0c 执行一下命令 go env w GO111MODULE 61 on go env w GOPROXY 61 https gop

随机推荐

  • left join结果条数会不会大于左表行数?

    会大于 今天电话面试一道题 xff0c 面试官问我 left join结果条数会不会大于左表行数 xff1f 你都这么问了 xff0c 我怎么能随便回答 xff1a 不会吧不会吧不会吧 那举个例子 两个表test和test2 一般情况下 x
  • updateClient

    updateClient lt 64 page contentType 61 34 text html 34 pageEncoding 61 34 gbk 34 gt lt DOCTYPE html gt lt html gt lt hea
  • 课后作业之几何图形

    题目 xff1a 通过程序设计几何图形 xff08 Shape xff09 矩形 xff08 Rectangle xff09 圆形 xff08 Circle xff09 正方形 xff08 Square xff09 几种类型 xff0c 能
  • 七牛云免费对象存储,并绑定到cloudreve中

    之前开通了腾讯云的对象存储COS并使用中 xff0c 不过之前主要将它当作云盘使用 xff0c 这两天再做博客系统时发现也可以将它作为网站的图库 xff0c 这样对网站的访问效率也会提高 今天了解到七牛云有免费的对象存储可以使用 xff0c
  • [蓝桥杯]七段码(Python 实现)

    题目 xff1a 问题描述 小蓝要用七段码数码管来表示一种特殊的文字 上图给出了七段码数码管的一个图示 xff0c 数码管中一共有 7 段可以发光的二极管 xff0c 分别标记为 a b c d e f g 小蓝要选择一部分二极管 xff0
  • Anaconda变量配置

    1 首先鼠标右击打开 此电脑 的属性 xff0c 选择高级系统设置 2 选择环境变量 xff0c 并找寻系统环境变量中的Path 3 单击选中Path xff0c 选择编辑 xff0c 然后选择新建 xff0c 将路径复制到新建的位置 xf
  • java使用MySQL和HQL数据去重

    思路 先查询出满足某种条件的数据的最小ID xff0c 然后删除最小ID以外的数据就实现了去重 实例 查询最小ID的重复数据 select from oms relation model orm where orm fd id 61 sel
  • 在VS2017上配置CMake并生成OpenCV源代码工程的解决方案

    这篇博客是对之前博客 在win10下配置VS2017搭载OpenCV4 0 的补充 xff0c 还没有配置好VS2017 43 OpenCV的小伙伴可以参考一下我之前的博客 一 为什么用CMake xff1f 想要在 Windows 平台下
  • 链表,结构体,文件混合操作

    span class token macro property span class token directive keyword include span span class token string lt stdio h gt sp
  • 设置CentOS不启用图形界面 CentOS只启动后端

    CentOS不要图形界面 xff0c CentOS只开启终端就行 我用的是CentOS8 方法 xff1a vi etc inittab 以前旧的这种直接改 etc inittab方式已经不支持了 vi etc inittab initta
  • yum安装mysql简单配置版

    yum安装mysql简单配置版 yum y install mysql server root 64 bogon vi etc my cnf 在 client 之后添加一行 xff1a default character set 61 ut
  • 第一次使用GitHub

    GitHub可能是当今开源社区最火爆的版本控制和源代码托管平台 xff0c 也不知道这句话是否正确 对GitHub还很陌生 xff0c 不过其确实很热 咱跟着潮流 xff0c 也注册了账号 一 注册 登录GitHub官方网站https gi
  • 彻底关闭Windows更新

    第一级 在控制面板中 xff0c 关闭Windows更新 xff0c 次方法在Windows7之前的系统是可用的 xff0c 从Windows10开始 xff0c Windows更新放在了设置里 第二级 在此电脑 管理 服务和应用程序 wi
  • 端口被占用,简单快捷的解决方法

    步骤 xff1a 1 键盘上按住Win 43 R xff0c 在弹框里输入cmd并点击Enter键 2 根据自己被占用的端口号输入以下命令 xff08 测试 xff1a 被占用的8080端口 xff09 netstat ano findst
  • MySQL的操作系统和硬件优化

    MySQL服务器性能受制于整个系统最薄弱的环节 xff0c 承载它的操作系统和硬件往往是限制因素 磁盘大小 可用内存和CPU资源 网络 xff0c 以及所有连接它们的组件 xff0c 都会限制系统的最终容量 因此 xff0c 需要小心地选择
  • java连接mysql数据库useSSL问题

    背景 Java spring程序 xff0c Java版本 java version 34 1 8 0 301 34 JDBC驱动版本5 1 40 mysql connector java 5 1 40 jar xff0c 连接 proxy
  • 机器阅读理解(MRC)和问答(QA)在信息抽取中的应用

    一 机器阅读理解 xff08 MRC xff09 问答系统 xff08 QA xff09 与信息抽取 最近实体关系抽取任务和命名实体识别任务的SOTA模型排行榜中 xff0c 有很多模型使用到了机器阅读理解 xff08 MRC xff09
  • 【前端面经】Vue-Vue中的 $nextTick 有什么作用?

    Vue js 是一个流行的 JavaScript 框架 xff0c 它提供了许多实用的功能 xff0c 其中之一就是 nextTick 方法 在 Vue js 中 xff0c nextTick 方法可以确保我们在更新 DOM 之后再去执行某
  • archlinux安装virtualbox+WindowsXP虚拟机

    文章目录 概述安装vituralbox安装windows xp虚拟机virtualbox虚拟机配置安装增强工具包 xff08 Guest Additions 设置虚拟机与宿主机共享文件夹 概述 Thinkpad T400笔记本 xff0c
  • WSL2的安装与使用-Windows与Linux双系统的新选择

    文章目录 WSL2的安装与使用 Windows与Linux双系统的新选择1 WSL是什么2 为什么会有WSL3 为要选择WSL2作为开发环境3 1 WSL与WSL2有什么区别3 2 Windows与Linux系统的抉择 4 WSL2的安装4