25赛季算法组第一阶段第二次培训
1. Ubuntu 的介绍
1.1. 操作系统和操作系统的选择
操作系统,英文名称Operating System,简称OS,是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心。
操作系统的作用是管理和控制计算机系统中的硬件和软件资源,例如,它负责直接管理计算机系统的各种硬件资源,如对CPU、内存、磁盘等的管理,同时对系统资源所需的优先次序进行管理。操作系统还可以控制设备的输入、输出以及操作网络与管理文件系统等事务。同时,它也负责对计算机系统中各类软件资源的管理。例如各类应用软件的安装、设置运行环境等。
主流操作系统介绍
- windows 懂得都懂。是目前生态最好,使用范围最广的操作系统。优点在与生态好,使用较为自由,支持软件多(盗版软件方便安装)用户界面较为友好。缺点在于:系统bug多,稳定性差;系统权限设置不合理,容易导致软件对系统的篡改;系统资源分配不合理,导致系统不当使用易卡顿,成了流氓软件的滋生养蛊之地(因此把你哪什么360,鲁大师,联想电脑管家,xxx极速浏览器,xxx应用市场,都TM给我卸载了)。windows 一般适合普通用户使用,因为一般搭载windows的电脑往往经济实惠,且由于系统的易用性较好,因此不需要太多电脑知识即可掌控。
- Mac 苹果系统。是目前效率最好,易用性最好(当然看你有没有钱)稳定性较高(咋都高于windows)资源分配最好(可以看看苹果电脑的续航)的操作系统。因此一般集中于需要较大计算的高端应用上(如图像剪辑和特效制作)和追求稳定性和易于性的普通用户(需要人民币)上。其缺点就是:贵,贵,贵。而且二次开发性差(难装盗版软件)。而且局限于特定硬件,不适合用于部署嵌入式系统。
- Linux(ubuntu)Linux系统是开源的操作系统。由于其出色的稳定性和安全性,往往是大型服务器的选择。linux由于其开源的特性,很多爱好者将其修改并创建自己的发行版(ubuntu 就是其中之一)以满足不同的需求(比如centos在服务器方面进行了优化,常用于做网络服务器;ubuntu在嵌入式机器人控制支持较好,也在易用性进行了优化,因此适合于机器人应用,和日常使用)其主要优点是:系统轻量,运行效率高,速度快,对硬件要求很低;系统稳定性高,不易崩溃;开发工具齐全(各种包管理器很好用);正确使用能发挥很好的效能,因此常用于嵌入式系统。缺点便是:使用困难(命令行操作),常用工具缺乏(office 等软件),入门门槛高。
综上所述:我们选择ubuntu作为操作系统设计机器人
1.2. Linux 简介
上述完备,不再赘述,详细可以百度百科。
1.3. Ubuntu 简介
上述完备,不再赘述,详细可以百度百科。
1.4. Ubuntu 版本说明
我们目前使用 22.04 而不是 24.04 因此不要安装24.04版本
- 22.04 是较新的版本且在生命周期内。网上资料较多,因此
2. Ubuntu 的安装
2.1. 主推:基于wsl2 的 Ubuntu 系统安装
2.1.1. wsl2 简介
为什么是wsl2?
wsl(适用于linux的windows子系统)是一种特殊的虚拟机。它和windows系统兼容性极好,能很好的利用windows主机的硬件资源,能获得较好的调度。
- 使用虚拟机是一种简便的,安全的,在windows上安装linux系统的方法,主流的虚拟机软件是VMware。然而,由于虚拟机搭建的是一个完整的虚拟linux系统,和操作系统兼容性不良,而且无法使用计算机原有硬件,只能使用虚拟化硬件。因此运行速度慢,易崩溃,耗内存,吃cpu和存储空间。在学习时期可以使用,然而在开发时期就捉襟见肘了。
- 使用双系统是一种高效的,和硬件兼容性最好的linux系统安装方式,本质上是在硬盘中安装两个系统,使的windows在电脑中共存。它能够很好利用计算机硬件,如你的nvidia,也是这三种方式中运行速度最快的一种。然而由于双系统的安装需要较为丰富的系统装机经验(否则可能导致你原先系统也无法正常运行),且安装复杂与否,与硬件密切相关。因此,不适合于初学者进行使用。
- wsl2 具有安装容易,与windows兼容较好,clion vscode 等开发工具支持度高的有点。虽然初学期间只能通过命令进行操作,无法使用图形界面(后期可以通过命令行安装),容易劝退,但一旦克服这点,就非常适合进行开发。因此本培训主要讲解wsl的安装
2.1.2. wsl2 上
ubuntu
注意:此处安装 ubuntu 22.04 LTS 而不是 24.04 版本,我们暂时不考虑更新版本。因为新版本是24年发布的,较新,资源较少,不适合初学,也不适合稳定应用程序的开发。
- 开启你的 wsl2 服务和虚拟机平台服务
- 在 windows 微软应用商店中搜索 ubuntu 并安装
- 安装linux内核 (https://zhuanlan.zhihu.com/p/650240196#:~:text=本文介绍了在win10系统中,将wsl1升级到wsl2后安装Debian时遇到的错误,以及解决办法。错误原因是没有安装wsl2的内核升级包,解决方法是从微软官网下载并安装wsl的内核升级包。)
- 如果使用windows 家庭版,可能需要手动开启hyper -v
- 输入用户名密码进行账号设置(注意:Linux 系统输入密码都是不显示输入值的,因此会让人以为没有成功输入)
详细参照:https://blog.csdn.net/weixin_44301630/article/details/122390018
2.2. 基于 VMware 虚拟机的 Ubuntu 环境搭建
不写详细文案,只做演示。详情请见视频回放
参考博客:VMware 安装配置 Ubuntu(最新版、超详细)_vmware-workstation-full-17.5.1-23298084.exe-CSDN博客 (注意VMware现不支持官网下载安装包,下载试用版安装包请参考这篇博客:2024.6最新详细的vmware17.5.2的下载及安装教程_vmware workstation 17.5.2-CSDN博客)
2.3. Ubuntu 与 windows 双系统的配置简介
不写详细文案,只做演示。详情请见视频回放
参考博客:Windows11 + Linux (Ubuntu22.04) 双系统最简安装详细避坑版_win11安装linux双系统-CSDN博客
系统安装分区参考博客:Windows11 + Linux (Ubuntu22.04) 双系统最简安装详细避坑版_win11安装linux双系统-CSDN博客
3. Ubuntu 的基本使用
3.1. 初识命令行
3.1.1. Ubuntu 命令行简介
ubuntu是一种基于Linux内核的操作系统,因此ubuntu命令和Linux命令基本一致。
使用linux终端命令的原因: linux刚开始是没有图形界面的,所有的操作全靠命令完成,如磁盘操作,文件存取,目录操作,进程管理,文件权限设定等等。
Linux发行的命令有很多,但常用的只有10个左右。
3.1.2. Ubuntu 的权限系统与 sudo
在Linux下,有普通用户和超级管理员(root)用户之分。对于一些系统的底层操作,需要使用到超级管理员用户权限。而如果直接让普通用户获取root,可能会导致失误造成系统破坏。因此,我们在使用其他指令时,使用sudo指令临时获得超级管理员权限。
sudo apt install xxx
3.2. 文件系统的基本操作
3.2.1. 目录操作:cd,mkdir,ls
- cd :更改当前的工作空间(注意:linux所有的目录和文件名都是大小写敏感的>
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(/home/用户目录) |
cd ~ | 切换到当前用户的主目录(/home/用户目录) |
cd . | 保持在当前目录不变 |
cd … | 切换到上级目录 |
cd - | 可以在最近两次工作目录之间来回切换 |
相对路径和绝对路径:
相对路径:输入前最前面无 / 或 ~ ,表示相对 当前目录 所在的目录位置
绝对路径:在输入路径时,最前面时 / 或 ~ ,表示从根目录或家目录开始的具体目录位置
- mkdir
创建一个新目录
选项 | 含义 |
---|---|
-p | 可以递归创建目录 |
新建目录名称 不能与当前已有的目录或文件 同名
- ls
list的简写,功能是列出目录的内容
ls 常用选项
参数 | 含义 |
---|---|
-a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l 以人性化的方式显示文件大小 |
<注意: 以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示>
3.2.2. 文件基础操作:cp,mv,rm
- cp
cp 命令的功能是将给出的文件 或 目录 复制 到另一个文件或目录中
选 项 | 含义 |
---|---|
-i | 覆盖文件前提示 |
-r | 若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
- mv
mv命令 可以移动文件 或 目录,也可以给 文件或目录 重命名
选项 | 含义 |
---|---|
-i | 覆盖文件前提示 |
- rm
删除文件或目录
使用 rm 命令要小心,因为文件删除后不能恢复
选项 | 含义 |
---|---|
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归地删除目录下的内容,删除文件夹 时必须加此参数 |
3.2.3. 文件的编辑
具体可参考:
https://www.cnblogs.com/bingle/p/9785621.html
- :vi编辑法:打开终端,输入vi test.txt 回车,按 i 进入编辑模式,输入想要编辑的内容,然后按esc键退出编辑模式,输入:wq保存并退出。(w 报错 q 退出 可选择加!表示强制执行)
- :vim编辑法:与vi编辑法指令界面,不过有代码高亮。
3.3. Ubuntu 镜像库软件安装
# 首先换源
# 鱼香ROS一键换源(初学者推荐)
wget http://fishros.com/install -O fishros && . fishros# 手动换源(中科大源)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update# 核心指令
sudo apt update
sudo apt install xxx
3.4. Ubuntu 非镜像库软件安装
# 核心指令
sudo dpkg -i xxx
4. clion 与 vscode cmake 开发环境的配置 (wsl2 + windows)
-
下载破解版 clion 可参考以下教程:Clion 2024.2.2 最新破解版安装教程(附激活码,至2099年~) - 犬小哈教程 (quanxiaoha.com) (注:推荐使用学生邮箱 + 正版。在 windows 上安装)
-
下载 vscode (免费,windows 上安装)
-
在wsl上配置 cmake 编译环境
- 换源(选择一种方法即可)
# 鱼香ROS一键换源(初学者推荐) wget http://fishros.com/install -O fishros && . fishros# 手动换源(中科大源) sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list sudo apt update
b. 安装相关依赖
sudo apt install vim cmake make -y
5. clion 与 vscode cmake 开发环境的配置 (Ubuntu 桌面)
见演示,可查看视频回放
6. 练习作业
完成cmake环境配置,并展示完成配置的截图(展示使用任意方式安装好的Ubuntu系统)(下次培训前-5号晚上)