在正点原子的教程中学习linux需要安装虚拟机或者在电脑上安装一个Ubuntu系统,但个人觉得太麻烦了,现在linux之父加入了微软,因此在Windows上也可以运行linux 了。具体方法如下:
一、 在Windows上的设置
- 在window的搜索框内 (所有你找不到的应用都可以用这个搜索功能),搜索"Windows功能 ",出现了"启用或关闭Windows功能",双击打开。
- 勾选**"适用于Linux的Windows子系统","虚拟机平台","Windows虚拟机监控程序平台"** ,点击"确定"。点击"立即重新启动"。
勾选适用于Linux的Windows子系统,虚拟机平台,Windows虚拟机监控程序平台,点击 确定。
点击 立即重新启动
二、安装 Ubuntu
打开Microsoft Store ,单击搜索框 ,搜索 "wsl2" 。 然后单击"免费下载"进行下载和设置。(WSL2- Windows Subsystem for Linux)
下载后,打开,输入用户名和密码
这样,Ubuntu-20.04 系统就安装好了!
如果报错:
- 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
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
五、利用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博客
4、按ESC退出输入模式,然后键盘敲击:wq,保存文件并退出
可以利用 cat main.c 查看文件是否输入成功
4、利用gcc编译main.c文件,并输出一个out文件
bash
gcc main.c -o main
5、运行main文件(即运行程序)
bash
./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