Linux学习笔记1---Windows上运行Linux

在正点原子的教程中学习linux需要安装虚拟机或者在电脑上安装一个Ubuntu系统,但个人觉得太麻烦了,现在linux之父加入了微软,因此在Windows上也可以运行linux 了。具体方法如下:

一、 在Windows上的设置

  1. 在window的搜索框内(所有你找不到的应用都可以用这个搜索功能),搜索"Windows功能",出现了“启用或关闭Windows功能”,双击打开。

2. 勾选"适用于Linux的Windows子系统",“虚拟机平台”,“Windows虚拟机监控程序平台”,点击"确定"。点击"立即重新启动"。

 勾选适用于Linux的Windows子系统,虚拟机平台,Windows虚拟机监控程序平台,点击 确定。

点击 立即重新启动

二、安装 Ubuntu

打开Microsoft Store,单击搜索框,搜索 "wsl2" 。然后单击“免费下载”进行下载和设置。(WSL2- Windows Subsystem for Linux)

下载后,打开,输入用户名和密码

这样,Ubuntu-20.04 系统就安装好了!

如果报错:

  1. WslRegisterDistribution failed with error: 0x800701bc

造成该问题的原因是WSL版本由原来的WSL1升级到WSL2后,内核没有升级,前往微软WSL官网下载安装适用于 x64 计算机的最新 WSL2 Linux 内核更新包即可。

下载链接:https://wslstorestorage.blob.core.windows.net

如果需要安装GUI界面应用,可以参考:超简单,不安装虚拟机,Windows11运行Linux - 知乎 (zhihu.com)

Windows中安装linux子系统(Ubuntu) - 知乎 (zhihu.com)

我这里暂时不安装了。

三、 Linux访问Windows

cd /mnt

/mnt文件夹中包含了windows10中所有的盘符。例如需要访问D盘,则只需输入:cd /mnt/d

四、安装GCC

原始的Ubuntu软件下是不带gcc的,所以还需要自行安装一下。

打开Ubuntu后输入以下命令即可自行安装gcc。

apt install gcc

假如在安装失败并提示:Err:1 http://security.ubuntu.com/ubuntu focal-updates/main amd64 binutils-common amd64 2.34-6ubuntu1.5

可以采用如下命令即可解决:

sudo service network-manager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state
sudo service network-manager start

再运行如下命令:

sudo apt-get update

然后再次安装gcc即可:

apt install gcc

 安装成功后可以运行以下命令查看gcc的版本:

gcc -v

五、利用Ubuntu输出hello  world

1、进入d盘创建一个Linux文件夹

cd ../mnt/d
mkdir Linux

2、进入Linux文件下创建一个main.c文件

cd Linux
vim main.c

3、单击i切换到输入模式,在文件中编写一下代码

#include <stdio.h>
int main(void)
{printf("hello world!!!\r\n");
}

关于vim编译器的相关命令可以查看:【Linux】VIM命令(全面详解)_linux vim-CSDN博客 

4、按ESC退出输入模式,然后键盘敲击:wq,保存文件并退出

可以利用 cat main.c 查看文件是否输入成功

4、利用gcc编译main.c文件,并输出一个out文件

 gcc main.c -o main

 

5、运行main文件(即运行程序)

./main

 

六、建立快捷方式

每次打开Ubuntu都需要重新进入需要的目录下,为了方便使用可以建立个快捷脚本

1、创建hzz文件(名称自定义)

vim hzz

2、按下i键进行编码

#"../mnt/d/STM32CubeMX/Linux" 是你所要进入的文件目录
cd ../mnt/d/STM32CubeMX/Linux

3、按Esc键,输入:wq (英文模式下输入),按回车键,保存文件并退出

4、利用source命令执行hzz 文件即可进入所需要的目录底下

source hzz

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/9102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java】还不会数组?一文万字全搞定

前言&#xff1a;前面两章我们详细讲解了Java基本程序设计结构中的基本知识&#xff0c;&#xff0c;包括&#xff1a;一个简单的Java应用&#xff0c;注释&#xff0c;数据类型&#xff0c;变量与常量&#xff0c;运算符&#xff0c;字符串&#xff0c;输入输出&#xff0c;控…

代码随想录算法训练营第二十三天|617.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

617.二叉搜索树的最小绝对差 文档讲解:代码随想录 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 遇到二叉搜索树&#xff0c;就要知道这棵树在中序遍历的情况下是一个升序的遍历。 这道题目的难点就是如何使用双指针遍历二叉树&#xff0c;一个指向中序遍历…

三条命令快速配置Hugging Face

大家好啊&#xff0c;我是董董灿。 本文给出一个配置Hugging Face的方法&#xff0c;让你在国内可快速从Hugging Face上下在模型和各种文件。 1. 什么是 Hugging Face Hugging Face 本身是一家科技公司&#xff0c;专注于自然语言处理&#xff08;NLP&#xff09;和机器学习…

写爬虫代码抓取Asterank中小行星数据

2024年5月4日 问题来源 解决方案 回顾2023年7月14日自己写的爬虫代码 import requests import re import pandas as pd texts[] def getData(page):#每页评论的网址urlhttps://item.jd.com/51963318622.html#comment#添加headers&#xff0c;伪装成浏览器headers{User-Agent:…

即插即用 | YOLOv8热力图可视化方法详解,揭秘AI如何「看」世界!【附完整源码】

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

常见的前端框架

常用的前端框架有以下几种&#xff1a; 模型 React&#xff1a;由Facebook开发的一款前端框架&#xff0c;采用虚拟DOM的概念&#xff0c;可高效地更新页面。Vue.js&#xff1a;一款轻量级的前端框架&#xff0c;易学易用&#xff0c;支持组件化开发和双向数据绑定。AngularJ…

接口框架项目实战-pytest(四)请求封装接口关联

把所有的请求方法集中到一个地方 目的&#xff1a;利于后期维护和加入日志 异常处理 等 目的&#xff1a;框架封装好之后&#xff0c;功能测试不需要写代码&#xff0c;也能执行自动化测试 config.yml base:base_php_url: http://47.107.116.139base_wx_url: https://api.weix…

vivado 低级别 SVF JTAG 命令、多链 SVF 操作

多链 SVF 操作 以下示例显示了如何在 SVF 链上处理操作。 每个链中连接有 2 个器件 &#xff1a; xcku11 和 xcku9 。配置存储器连接到链中的第 2 个器件 (xcku9) 。为访问此配置存储器 &#xff0c; SVF 会使用 HIR 、 HDR 、 TIR 和 TDR 命令来生成命令。为刷写此…

路由模块封装

目录 一、问题引入 二、步骤 一、问题引入 随着项目内容的不断扩大&#xff0c;路由也会越来越多&#xff0c;把所有的路由配置都堆在main.js中就不太合适了&#xff0c;所以需要将路由模块抽离出来。其好处是&#xff1a;拆分模块&#xff0c;利于维护。 二、步骤 将路由相…

小巧简单实用的Linux端口转发工具Rinetd

Linux下实现端口转发有很多种方法&#xff0c;尤其是在可以联网的情况下&#xff0c;更是容易。最近在资源受限的定制系统中&#xff0c;找到一个方便离线安装和使用的端口转发工具Rinetd&#xff0c;安装包仅几十K&#xff0c;而且有很多版本的Linux发行系统的支持。 1、安装…

Spring底层入门(九)

boot的执行流程分为构造SpringApplication对象、调用run方法两部分 1、Spring Boot 执行流程-构造 通常我们会在SpringBoot的主启动类中写以下的代码&#xff1a; 参数一是当前类的字节码&#xff0c;参数二是main的args参数。 public class StartApplication {public static…

解决jar包中没有主清单目录的问题

文章目录 解决jar包中没有主清单目录的问题问题描述环境描述方法一 | 阿里巴巴构造器的通用解决方案方式二 | 指定MANIFEST.MF路径 解决jar包中没有主清单目录的问题 问题描述 很简单可能很多人都遇到过&#xff0c;maven项目打成jar包后执行报错&#xff1a;jar包中没有主清单…

揭秘:深度学习与自然语言处理的本质差异

在人工智能的广阔天地中&#xff0c;深度学习与自然语言处理犹如两颗耀眼的明星&#xff0c;各自绽放着光芒。尽管它们时常在科技文章中齐头并进&#xff0c;但它们的核心区别与联系常常令人迷惑。如果你希望一次性搞懂这两个人工智能领域的差异和联系&#xff0c;那么本文将是…

2024OD机试卷-数组连续和 (java\python\c++)

题目:数组连续和 题目描述 给定一个含有N个正整数的数组, 求出有多少个连续区间(包括单个正整数), 它们的和大于等于x。 输入描述 第一行两个整数N x(0 < N <= 100000, 0 <= x <= 10000000) 第二行有N个正整数(每个正整数小于等于100)。 输出描述 输出一…

Spring Security 入门 2

1.项目实战 就以RuoYi-Vue 为例吧&#xff0c;主要以下几点原因&#xff1a; 基于 Spring Security 实现。 基于 RBAC 权限模型&#xff0c;并且支持动态的权限配置。 基于 Redis 服务&#xff0c;实现登录用户的信息缓存。 前后端分离。同时前端采用 Vue &#xff0c;相对来…

ai可以做思维导图吗?当然是可以的!

ai可以做思维导图吗&#xff1f;在快节奏的现代生活中&#xff0c;思维导图作为一种高效的信息组织和表达工具&#xff0c;越来越受到人们的青睐。随着人工智能&#xff08;AI&#xff09;技术的不断发展&#xff0c;AI思维导图软件也应运而生&#xff0c;它们不仅能够帮助用户…

Qt | QValidator 抽象类(验证器)及其子类|QDoubleValidator 类|QIntValidator 类

01、上节回顾 Qt | QComboBox(组合框)Qt | QLineEdit 类(行编辑器)02、QValidator 1、QValidator 类直接继承自 QObject 类,且是一个抽象类,因此具体功能主要由其子类来实现,或者子类化该类实现自定义的验证器。 2、验证器的作用是验证用户输入的

Orange3数据可视化(小提琴图)

小提琴图 小提琴图和箱线图类似&#xff0c;用来显示数据分布和概率密度。结合了箱线图和密度图的特征&#xff0c;用来显示数据的分布形状。 输入 数据: 输入数据集 输出 选中的数据: 从图中选中的实例 数据: 增加了一列&#xff0c;显示数据点是否被选中 …

k8s DaemonSet

DaemonSet 是k8s节点上的守护进程。 ReplicaSet 和 DaemonSet 的区别&#xff1a; ReplicaSet 部署在不同节点上的 pod 是随机分布的。DaemonSet 部署在不同节点上的 pod 的数量是刚好一个的&#xff0c;因此DaemonSet 不需要期望数量。 DaemonSet 将 pod 部署到集群中的所有…

java随机生成6位验证码,首位不能是0

在Java中&#xff0c;要随机生成一个6位的验证码&#xff0c;其中首位不能为0&#xff0c;可以使用以下代码示例&#xff1a; import java.util.Random;public class VerificationCodeGenerator {public static void main(String[] args) {System.out.println(generateVerific…