在正点原子的教程中学习linux需要安装虚拟机或者在电脑上安装一个Ubuntu系统,但个人觉得太麻烦了,现在linux之父加入了微软,因此在Windows上也可以运行linux 了。具体方法如下:
一、 在Windows上的设置
- 在window的搜索框内 (所有你找不到的应用都可以用这个搜索功能),搜索"Windows功能 ",出现了"启用或关闭Windows功能",双击打开。
![](https://file.jishuzhan.net/article/1788729999121977345/8ee1fa44cd321617b25ba66f9c832a23.webp)
- 勾选**"适用于Linux的Windows子系统","虚拟机平台","Windows虚拟机监控程序平台"** ,点击"确定"。点击"立即重新启动"。
![](https://file.jishuzhan.net/article/1788729999121977345/bb0959bd873c5bc19a1b7441daf58e5f.webp)
勾选适用于Linux的Windows子系统,虚拟机平台,Windows虚拟机监控程序平台,点击 确定。
![](https://file.jishuzhan.net/article/1788729999121977345/be689e213b6010e982f788d54e810d93.webp)
点击 立即重新启动
二、安装 Ubuntu
打开Microsoft Store ,单击搜索框 ,搜索 "wsl2" 。 然后单击"免费下载"进行下载和设置。(WSL2- Windows Subsystem for Linux)
![](https://file.jishuzhan.net/article/1788729999121977345/97db5ee2899025ac7517e39bccd93c86.webp)
下载后,打开,输入用户名和密码
![](https://file.jishuzhan.net/article/1788729999121977345/478e2c2d1bc87a0ee12d3c3155fc5772.webp)
这样,Ubuntu-20.04 系统就安装好了!
![](https://file.jishuzhan.net/article/1788729999121977345/53bbf7b14781969dbbccac3504577078.webp)
如果报错:
- WslRegisterDistribution failed with error: 0x800701bc
![](https://file.jishuzhan.net/article/1788729999121977345/d191c4a7f298d05fe73c795ccc94847e.webp)
造成该问题的原因是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
bash
cd /mnt
/mnt文件夹中包含了windows10中所有的盘符。例如需要访问D盘,则只需输入:cd /mnt/d
四、安装GCC
原始的Ubuntu软件下是不带gcc的,所以还需要自行安装一下。
打开Ubuntu后输入以下命令即可自行安装gcc。
bash
apt install gcc
假如在安装失败并提示:Err:1 http://security.ubuntu.com/ubuntu focal-updates/main amd64 binutils-common amd64 2.34-6ubuntu1.5
可以采用如下命令即可解决:
bash
sudo service network-manager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state
sudo service network-manager start
再运行如下命令:
bash
sudo apt-get update
然后再次安装gcc即可:
bash
apt install gcc
安装成功后可以运行以下命令查看gcc的版本:
bash
gcc -v
![](https://file.jishuzhan.net/article/1788729999121977345/28381c9de663182360b7520dd36af531.webp)
五、利用Ubuntu输出hello world
1、进入d盘创建一个Linux文件夹
bash
cd ../mnt/d
mkdir Linux
2、进入Linux文件下创建一个main.c文件
bash
cd Linux
vim main.c
3、单击i切换到输入模式,在文件中编写一下代码
bash
#include <stdio.h>
int main(void)
{
printf("hello world!!!\r\n");
}
关于vim编译器的相关命令可以查看:【Linux】VIM命令(全面详解)_linux vim-CSDN博客
![](https://file.jishuzhan.net/article/1788729999121977345/995cb5d9b5f453a941a1e6c24ea6bf1c.webp)
4、按ESC退出输入模式,然后键盘敲击:wq,保存文件并退出
![](https://file.jishuzhan.net/article/1788729999121977345/6f8477d09f4232da7683f908956d4f65.webp)
可以利用 cat main.c 查看文件是否输入成功
![](https://file.jishuzhan.net/article/1788729999121977345/7c44473bd4604b193c09dc00622b71b1.webp)
4、利用gcc编译main.c文件,并输出一个out文件
bash
gcc main.c -o main
![](https://file.jishuzhan.net/article/1788729999121977345/a46d3d14684079d12d50046f142db74e.webp)
5、运行main文件(即运行程序)
bash
./main
![](https://file.jishuzhan.net/article/1788729999121977345/2d79920684be8c301e578c3b65c0e6b1.webp)
六、建立快捷方式
每次打开Ubuntu都需要重新进入需要的目录下,为了方便使用可以建立个快捷脚本
1、创建hzz文件(名称自定义)
vim hzz
2、按下i键进行编码
#"../mnt/d/STM32CubeMX/Linux" 是你所要进入的文件目录
cd ../mnt/d/STM32CubeMX/Linux
3、按Esc键,输入:wq (英文模式下输入),按回车键,保存文件并退出
![](https://file.jishuzhan.net/article/1788729999121977345/30edb682d328ba2440ffb65fe4f6e6a9.webp)
4、利用source命令执行hzz 文件即可进入所需要的目录底下
source hzz
![](https://file.jishuzhan.net/article/1788729999121977345/151cf3201943635e520b924b3c2efc29.webp)