在Windows中使用WSL和VS Code搭建出友好的终端开发环境

2023-10-27

        使用WSL(Windows Subsystem for Linux)这一适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置的开销。

        VS Code(Visual Studio Code)是由微软开发且跨平台的免费源代码编辑器,也是一个非常受开发者喜爱的代码编辑器。它支持语法高亮、代码自动补全、并且内置了命令行工具和 Git 版本控制系统等功能。并且其具有非常丰富且强大的拓展软件库。

        接下来介绍如何在Windows中安装WSL与VS Code,并进行简单的配置,搭建出一个开发者友好的终端开发环境。

目录

一、注意事项

二、WSL的安装

        2.1 安装WSL

                2.1.1 以管理员身份运行Windows Powershell(在开始菜单处单击鼠标右键)

                2.1.2 输入并运行以下命令

                2.1.3 重启计算机

        2.2 安装Linux操作系统(以安装Ubuntu为例)

                2.2.1 打开Microsoft Store

                2.2.2 搜索Ubuntu并进行安装

                2.2.3 安装完成后打开Ubuntu

                2.2.4 等待Ubuntu初始化完成后设置用户名,用户名可以根据个人偏好进行设置

                2.2.5 设置密码、并再次输入密码

                2.2.6 Ubuntu安装并配置完成

        2.3 WSL版本的查看与修改

                2.3.1 在cmd命令行或者Windows Powershell中输入以下命令

                2.3.2 WSL版本的修改

三、VS Code的安装

        3.1下载VS Code

        3.2 下载完成后,双击运行所下载的安装包 

        3.3 选择安装路径

        3.4 选择附加任务

        3.5 安装完成

四、VS Code的简单配置

        4.1 跟随向导进行一些初始化的配置

        4.2 修改语言为中文(在扩展中选择“简体中文”并重启VS Code)

        4.3 安装WSL扩展(在扩展中搜索WSL)

        4.4 如果有服务器之类的需求,可以安装Remote相关扩展

        4.5 使用VS Code连接到WSL

        4.6 一个hello wsl and vs code!的例子

                4.6.1 打开终端

                4.6.2 更新并安装gcc

                4.6.3 在资源管理器中打开/home/ubuntu

                4.6.4 新建文件,将其命名为test.c​

                4.6.5 编辑代码并保存 

                4.6.6 在终端中“编译并运行”

                4.6.7 终端实现在Windows环境中的WSL子系统(Linux系统)中,程序的编辑,编译链接与运行

五、在Windows和WSL之间文件互访的两种方式

        5.1 从WSL-Ubuntu中访问Windows中的文件

        5.2 在Windows里访问WSL-Ubuntu中的文件


一、注意事项

        安装WSL之后,可能会在WSL与虚拟机、手机模拟器等软件之间产生不兼容的问题,可能会导致:“即使修改配置之后也仅能运行其中一个软件”的问题。若有虚拟机及手机模拟器等软件需求的人需要慎重选择WSL的安装。(WSL与VMware之间的不兼容问题已经得到解决,详情可以参见VMware Workstation 与 Windows Subsystem for Linux 2(WSL2)不兼容问题的一种解决办法

二、WSL的安装

2.1 安装WSL

2.1.1 以管理员身份运行Windows Powershell(在开始菜单处单击鼠标右键)

2.1.2 输入并运行以下命令:

wsl --install

 

2.1.3 重启计算机

2.2 安装Linux操作系统(以安装Ubuntu为例)

2.2.1 打开Microsoft Store

 2.2.2 搜索Ubuntu并进行安装

2.2.3 安装完成后打开Ubuntu

2.2.4 等待Ubuntu初始化完成后设置用户名,用户名可以根据个人偏好进行设置

(本次演示将个人用户名设置为“ubuntu”)

 2.2.5 设置密码、并再次输入密码

 2.2.6 Ubuntu安装并配置完成

2.3 WSL版本的查看与修改

2.3.1 在cmd命令行或者Windows Powershell中输入以下命令

wsl -l -v

 可以看到刚刚安装的Ubuntu系统版本为WSL1

2.3.2 WSL版本的修改

WSL版本修改命令如下:
wsl --set-version 名字 版本号

我们选择将其升级为WSL2,输入以下命令(将“名字”替换为子系统的名字)

wsl --set-version 名字 2

注:这里的名字为刚刚查看的wsl的NAME列表中的对应子系统

 更多详细的信息请参考适用于 Linux 的 Windows 子系统文档 | Microsoft Learn

三、VS Code的安装

3.1下载VS Code

Download Visual Studio Code - Mac, Linux, Windows

3.2 下载完成后,双击运行所下载的安装包 

3.3 选择安装路径

3.4 选择附加任务

3.5 安装完成

四、VS Code的简单配置

4.1 跟随向导进行一些初始化的配置

4.2 修改语言为中文(在扩展中选择“简体中文”并重启VS Code)


 

4.3 安装WSL扩展(在扩展中搜索WSL)

 4.4 如果有服务器之类的需求,可以安装Remote相关扩展

推荐安装:

Remote - SSH

Remote - SSH: Editing Configuration Files

 Remote Explorer

4.5 使用VS Code连接到WSL

先点击图中左下角所标示的地方,再选择:New WSL Window ,等待初始化完成之后,即可正常使用。

4.6 一个hello wsl and vs code!的例子

4.6.1 打开终端

(终端->新建终端) 

 4.6.2 更新并安装gcc

sudo apt update
sudo apt install gcc

 4.6.3 在资源管理器中打开/home/ubuntu

(因为刚刚所创建的用户名为ubuntu)

 4.6.4 新建文件,将其命名为test.c

 4.6.5 编辑代码并保存 

#include <stdio.h>

int main()
{
    printf("hello wsl and vs code!\n");
    return 0;
}

4.6.6 在终端中“编译并运行”

在终端中输入:

gcc -o test.o test.c

./test.o

 4.6.7 可以看到,通过终端实现了在Windows环境中的WSL子系统(Linux系统)中,程序的编辑,编译链接与运行

五、在Windows和WSL之间文件互访的两种方式

5.1 从WSL-Ubuntu中访问Windows中的文件

Windows中的文件可以通过以下路径访问

/mnt

mnt目录下有着C、D、E、F等磁盘分区,比如要访问Windows中C盘下的某文件

5.2 在Windows里访问WSL-Ubuntu中的文件

可以使用资源管理器进行文件的访问,访问路径为

\\wsl$

可以看到,成功打开了刚刚所编写的test.c文件

使用资源管理器可以正常的进行文件的创建、删除、复制、移动等功能,非常方便。

如有不当或错误之处,恳请您的指正,谢谢!!!

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

在Windows中使用WSL和VS Code搭建出友好的终端开发环境 的相关文章

  • 在 shell 脚本中查找和替换

    是否可以使用 shell 在文件中搜索然后替换值 当我安装服务时 我希望能够在配置文件中搜索变量 然后在该值中替换 插入我自己的设置 当然 您可以使用 sed 或 awk 来完成此操作 sed 示例 sed i s Andrew James
  • 如何通过代理将套接字连接到http服务器?

    最近 我使用 C 语言编写了一个程序 用于连接到本地运行的 HTTP 服务器 从而向该服务器发出请求 这对我来说效果很好 之后 我尝试使用相同的代码连接到网络上的另一台服务器 例如 www google com 但我无法连接并从网络中的代理
  • 如何追踪手柄泄漏?

    在我的一个应用程序中 我观察到句柄数量不断增加 在不使用应用程序的情况下 该数字大约每秒增加一次 因此后台处理代码的某些部分一定存在句柄泄漏 我如何追踪此类泄漏 有什么工具可以帮助解决这个问题吗 跟踪句柄泄漏时要寻找哪些模式 导致手柄泄漏的
  • WinError6 句柄无效 Python 3+ 多处理

    我正在运行一个 Python 3 7 Flask 应用程序 它使用flask socketio设置一个socketio用于浏览器客户端的服务器 另一个连接到单独远程的Python进程socketio服务器和交换消息 以及另一个从 PIR 传
  • 为 Linux 安装 R 包时出错

    我试图在 R 3 3 上安装一个名为 rgeos 的包 但是当我输入 install packages rgeos 但它返回给我以下错误 其他包也会发生同样的情况 但不是所有包 gt installing source package rg
  • 将 HttpApi 与 I/O 完成端口结合使用

    我刚刚偶然发现了微软的HTTP 服务器 API http msdn microsoft com en us library aa364510 28v vs 85 29 aspx 简介中写道 HTTP 服务器 API 使应用程序能够通过 HT
  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • Windows:列出并启动与扩展关联的应用程序

    如何确定与特定扩展名 例如 JPG 关联的应用程序 然后确定该应用程序的可执行文件所在的位置 以便可以通过调用 System Diagnostics Process Start 来启动它 我已经知道如何读取和写入注册表 注册表的布局使得以标
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b
  • 抑制“程序无法启动,因为 X.dll 丢失”错误弹出窗口

    我有一个Python程序 它使用os system来执行各种命令 它不能使用subprocess因为它必须向后兼容到 Python 2 0 在 Windows 上 有时该命令会引用异常目录中的 DLL 因此我会收到臭名昭著的 程序无法启动
  • 如何确定登录的Windows帐户是否已在域上进行身份验证[重复]

    这个问题在这里已经有答案了 可能的重复 在客户端 服务器应用程序中使用 Active Directory 对用户进行身份验证 https stackoverflow com questions 1337923 authenticating
  • 如何获取 linux 实用程序 tail 的源代码?

    这个命令确实非常有用 但是我可以在哪里获取源代码以查看内部发生的情况 thanks tail 实用程序是 Linux 上 coreutils 的一部分 源压缩包 ftp ftp gnu org gnu coreutils coreutils
  • SC创建binpath错误

    我正在尝试在 PowerShell 中运行以下命令 sc create StrongSwan binpath C Users Kanishk Desktop Strong Strong stronswan strongswan 5 6 3
  • 怎样才能使 Windows 成为一个开箱即用的 POSIX 兼容操作系统?

    这个问题的动机是我的一个牵强的梦想 即 nix 平台上可用的许多优秀软件可以轻松移植到 Windows 微软最近对开源和开放性采取了不同的方法 所以我真的很想知道如果微软有这样的倾向 这样的事情会有多可行 我很好奇的一些更具体的事情是 是否
  • 在 Windows 上使用 docker compose 进行卷绑定

    我最近在 Windows 10 上升级了 Docker Toolbox 现在我的卷挂载不再起作用 我已经尝试了一切 这是当前的挂载路径 volumes C Users Joey Desktop backend var www html 我收
  • 如何通过批处理文件检查服务是否正在运行并启动它,如果它没有运行?

    我想编写一个执行以下操作的批处理文件 Check if a service is running 如果正在运行 请退出批处理 如果没有运行 启动该服务 到目前为止 我在谷歌上搜索的代码示例被证明不起作用 所以我决定不发布它们 启动服务是通过
  • 在 LINUX 上使用 Python 连接到 OLAP 多维数据集

    我知道如何在 Windows 上使用 Python 连接到 MS OLAP 多维数据集 嗯 至少有一种方法 通常我使用 win32py 包并调用 COM 对象进行连接 import win32com client connection wi
  • 无法安装 WWW::Curl::Easy: SZBALINT/WWW-Curl-4.17.tar.gz : make NO

    我正在尝试在我的 Fedora 26 机器上安装 WWW Curl Easy gcc c I usr include D REENTRANT D GNU SOURCE O2 g pipe Wall Werror format securit
  • 已安装全局 NPM 包但未找到命令

    我已经全局安装了两个 npm 包 下载 https www npmjs com package download and 谜虚拟盒 https www npmjs com package enigmavirtualbox通过命令行 npm
  • 在 powershell 脚本中以不同用户身份本地运行代码块

    这是非常简单的事情 但我就是无法让任何东西发挥作用 我想在特定用户下的 powershell 脚本中运行块代码 关键字是locally我正在使用 powershell 2 0 Invoke Command 似乎需要远程主机 我运行以下命令

随机推荐

  • Java进阶:用案例源码解析EventLoopGroup,面试真题解析

    一 前言 有句话 正因为你优秀 所以难以卓越 刚开始听这句话还在上学 既不卓越 也不优秀 甚至可能还有点笨 但突然从某次爬到班级的前几名后 开始喜欢上了这种感觉 原来前面的风景是如此灿烂 优秀和卓越差的不是一个等级 当你感觉自己优秀后 还能
  • 6-机器学习启蒙- 深度学习: 图像搜索

    6 深度学习 图像搜索 github https github com mtianyan graphLabStartedML 深度学习 图像搜索 基于图片的相似度来选购商品 可视化商品推荐 我想买双新鞋 但是 mark 符合我的风格 我又感
  • openssl 1.0.2d安装使用教程

    本文简要介绍CA和证书的基础知识 并演示openssl 1 0 2d的安装 CA证书生成 用户证书申请 使用CA签发用户证书等内容 另外 可以参考本人的其他文章如nginx教程 进行生成证书的验证 By 泪痕之木 实验环境 操作系统 Cen
  • 彻底解决小程序内嵌web-view缓存问题

    前言 项目是通过web view内嵌在小程序里的vue单页应用 然而前几天发现明明发布了代码 在小程序入口进去看到的还是旧页面 尝试了各种操作 手动退出小程序 再次进入 删除 发现 小程序 重新进入 关闭微信 杀掉进程 重新进入 修改 Ng
  • R语言【基本计数原理与技巧——阶乘、组合、排列】

    加法原理定义 做一件事有n种方法 第一类有 m 1 m 1 m1 种方法 第二类有 m 2 m 2
  • AM335X外部看门狗及LINUX系统驱动移植(二)

    看门狗定时器 WDT Watch Dog Timer 是嵌入式系统的的一个组成部分 它实际上是一个计数器 一般给看门狗设置复位时间间隔 程序开始运行后看门狗开始计数 如果程序运行正常 过一段时间CPU应发出指令让看门狗置零 重新开始计数 如
  • python打砖块游戏算法设计分析_Python打砖块

    在家闲来无事用Python写了一个打砖块游戏 目前完成度一般 先来段视频 声音有点大 演示https www zhihu com video 1235510400411369472 游戏主要分那么几个板块 小球Ball 挡板Paddle 砖
  • ECS突发性能T6服务器可以用来做哪些事情?

    能做的事情还是挺多的 一般比如个人建站 WordPress建站 小微企业建站 小程序搭建 web开发部署等各种项目基本都是可以的 不过这类入门的就不太时候大型项目了 比如大型电商网站 比如人工智能 机器学习等就不要用突发型实例了 一般的小网
  • 利用maven-war-plugin实现不同环境下的配置文件

    我这是一个标准的maven的目录结构 配置文件都在src main resources根目录下 因为要改成多环境的配置 所以只有properties的文件改变了 公共配置可以原地不动 1 将配置文件放到不同的文件夹下 2 创建2个不同的pr
  • 默认值约束 [MySQL][数据库]

    默认值约束 DEFAULT 默认值约束的作用 给某个字段 某列指定默认值 一旦我们设置了默认值约束之后 在插入数据时 如果此字段没有显式赋值 则赋值为默认值 如果我们没有给一个字段添加默认值约束 这个时候我们如果没给一个字段显式赋值 那么这
  • Android编译之lunch命令

    google官方给的编译步骤 官方的详细编译步骤见 http source android com source building html 按照google给出的编译步骤如下 source build envsetup sh 加载命令 这
  • 巨头刷脸补贴大战自伊始就没有停止过

    随 着5G时代的到来 互联网 AI智能 云计算 物联网等技术的成熟 中国财政科学研究院应用学博士后盘和林认为 刷脸支付比密码支付更安全更便捷 我国在移动支付领域相较于其他国家来说一直处于领先地位 支付宝和微信支付两家在这一领域的竞争就从来没
  • QT笔记之QSpinBox和QSlider的封装使用

    文章目录 1 创建QT测试工程 2 右键添加 新建项 3 添加新的Qt Widget Class 叫做MySpinBox Slider QSpinBox和QSlider的组合使用 4 添加好QSpinBox和QSlider两个控件 并且调整
  • 牛顿第二定律沿流线流动粒子 Python 分析(流体力学)

    当流体粒子从一个位置移动到另一个位置时 它通常会经历加速或减速 根据牛顿第二运动定律 作用在所考虑的流体粒子上的合力 必须等于其质量乘以其加速度 F m a mathbf F m mathbf a F ma 实际上 不存在无粘
  • 微信第三方平台的授权过程整理

    最近碰到微信第三方平台这个东西 就研究了下 由于微信官方文档顺序不是很明确 我特别也整理了一下 官方的概述是 公众平台第三方平台是为了让公众号或小程序运营者 在面向垂直行业需求时 可以一键授权给第三方平台 并且可以同时授权给多家第三方 通过
  • Android基础进阶 - 消息机制 之Native层分析,Android面试回忆录

    synchronized this msg markInUse msg when when Message p mMessages boolean needWake 如果消息链表为空 或者插入的Message比消息链表第一个消息要执行的更早
  • Mockito框架@Mock, @InjectMocks注解使用

    最近写项目Junit 使用Junit4框架 测试的数据都要依赖数据库 而好多接口需要调其他的系统 junit4框架完全无法实现测试功能 大佬推荐用Mockito框架 这篇博客用来记录学习Mockito的使用方法 不足欢迎指点 Mock In
  • Dump文件的生成和使用

    1 简介 第一次遇到程序崩溃的问题 之前为单位开发了一个插件程序 在本机运行没有出现问题 但把生成的可执行文件拷贝到服务器上一运行程序 刚进入插件代码 插件服务就崩溃了 当时被这个问题整的很惨 在同事的帮助下了解到 对于程序崩溃 最快的解决
  • qemu图形界面linux,QEMU 简单几步搭建一个虚拟的ARM开发板

    1 安装QEMU 先在Ubuntu中安装QEMU sudo apt get install qemu 1 安装几个QEMU需要的软件包 sudo apt get install zlib1g dev sudo apt get install
  • 在Windows中使用WSL和VS Code搭建出友好的终端开发环境

    使用WSL Windows Subsystem for Linux 这一适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU Linux 环境 包括大多数命令行工具 实用工具和应用程序 且不会产生传统虚拟机或双启动设