自动驾驶
yolo5自动驾驶
1、重要!更换U盘的操作指引
2、关闭开机自启动大程序
3、Linux基础
4、YoloV5训练集
5、自动驾驶基础调试(代码解析)
6、自动驾驶特调
7、自动驾驶原理
8、PID算法理论
9、阿克曼运动学分析理论
10、建立运动学模型
常用命令
首次使用
一、原理分析
麦克纳姆轮运动学分析
二、AI大模型
3、AI大模型类型和原理
4、RAG检索增强和模型训练样本
5、具身智能机器人系统架构
6、具身智能玩法核心源码解读
7、配置AI大模型
三、深度相机
2、颜色标定
10、深度相机的基础使用
11、深度相机伪彩色图像
12、深度相机测距
13、深度相机色块体积测算
14、深度相机颜色跟随
15、深度相机人脸跟随
16、深度相机KCF物体跟随
17、深度相机Mediapipe手势跟随
18、深度相机视觉循迹自动驾驶
19、深度相机边缘检测
四、多模态视觉理解
20、多模态语义理解、指令遵循
21、多模态视觉理解
22、多模态视觉理解+自动追踪
23、多模态视觉理解+视觉跟随
24、多模态视觉理解+视觉巡线
25、多模态视觉理解+深度相机距离问答
26、多模态视觉理解+SLAM导航
27、多模态视觉理解+SLAM导航+视觉巡线
28、意图揣测+多模态视觉理解+SLAM导航+视觉功能
五、雷达
8、雷达基础使用
思岚系列雷达
六、建立地图
9、Gmapping建图
cartographer快速重定位导航
RTAB-Map导航
RTAB-Map建图
slam-toolbox建图
cartographer建图
Navigation2多点导航避障
Navigation2单点导航避障
手机APP建图与导航
七、新机器人自动驾驶与调整
多模态视觉理解+SLAM导航
新机器人自动驾驶
场地摆放及注意事项
启动测试
识别调试
无人驾驶的车道保持
无人驾驶路标检测
无人驾驶红绿灯识别
无人驾驶之定点停车
无人驾驶转向决策
无人驾驶之喇叭鸣笛
无人驾驶减速慢行
无人驾驶限速行驶
无人驾驶自主泊车
无人驾驶综合应用
无人驾驶融合AI大模型应用
八、路网规划
路网规划导航简介
构建位姿地图
路网标注
路网规划结合沙盘地图案例
九、模型训练
十、YOLOV11开发
多机通讯配置
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
yolo5自动驾驶
3、Linux基础
3、Linux基础
## 2、Linux基础 ### 2.1、Linux系统简介 Linux是一套开源的操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 1994年3月,Linux 1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。 1995年1月,Bob Young创办了RedHat(小红帽),以GNU、Linux为核心,集成了400多个源代码开放的程序模块,搞出了一种冠以品牌的Linux,即RedHat Linux,称为Linux发行版,在市场上出售。 1996年6月,Linux 2.0内核发布,可以支持多个处理器。 Linux主要特点 免费且开源;完全兼容POSIX 1.0标准;多用户、多任务;拥有良好的界面;支持多种平台。 Linux主要版本 目前Linux发行版约有300种,几乎都可以作为服务器系统运行。Linux发行版很少互相复制,流行的Linux服务器发行版主要有以下几个: Red Hat Enterprise Linux(红帽企业级Linux):这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构。 Debian:Debian运行起来极其稳定,这使得它非常适合用于服务器。 CentOS:CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。 Ubuntu:Ubuntu是Debian的一款衍生版,侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。 ### 2.2、Ubuntu概述 Ubuntu是一个以桌面应用为主的Linux操作系统。Ubuntu基于Debian发行版和Gnome桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity。 自Ubuntu 18.04 LTS起,Ubuntu发行版又重新开始使用GNOME3桌面环境。在几乎每一份与 Linux 有关的榜单上,基于 Debian 的 Ubuntu都占有一席之位。Canonical 的Ubuntu 胜过其他所有的 Linux 服务器发行版 ―― 从简单安装、出色的硬件发现,到世界级的商业支持,Ubuntu确立了难以企及的严格标准 2.3、Ubuntu文件系统 Ubuntu 与Windows不同,没有盘符这个概念,只有一个根目录 【/】,所有文件都在它下面 ``` ├── bin # bin是Binary的缩写。存放系统中最常用的可执行文件(二进制)。 ├── boot # 这里存放的是linux内核和系统启动文件,包括Grub、lilo启动器程序。 ├── dev # dev是Device(设备)的缩写。该目录存放的是Linux的外部设备,如硬盘、分区、键盘、鼠标、usb等。 ├── etc # 这个目录用来存放所有的系统管理所需要的配置文件和子目录,如passwd、hostname等。 ├── home # 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 │ └── yahboom # 用户 │ ├── Desktop # 桌面 │ ├── Documents # 文档 │ ├── Downloads # 下载 │ ├── Music # 音乐 │ ├── Pictures # 图片 │ ├── Public # 共享 │ ├── Templates # 模板 │ ├── Videos # 视频 │ ... │ ... ├── lost+found # 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些零散文件。 ├── lib # 存放共享的库文件,包含许多被/bin和/sbin中程序使用的库文件。 ├── media # ubuntu系统自动挂载的光驱、usb设备,存放临时读入的文件。 ├── mnt # 作为被挂载的文件系统得挂载点。 ├── opt # 作为可选文件和程序的存放目录,主要被第三方开发者用来简易安装和卸载他们的软件。 ├── proc # 这个目录是一个虚拟的目录,它是系统内存的映射,这里存放所有标志为文件的进程,比较cpuinfo存放cpu当前工作状态的数据。 ├── root # 该目录为系统管理员,也称作超级权限者的用户主目录。 ├── sbin # s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序,如系统管理、目录查询等关键命令文件。 ├── srv # 存放系统所提供的服务数据。 ├── sys # 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。 ├── usr # 存放与系统用户有关的文件和目录。 │ ├── bin # 用户和管理员的标准命令 │ ├── games # 存放着XteamLinux自带的小游戏 │ ├── include # 用来存放Linux下开发和编译应用程序所需要的头文件,c或者c++ │ ├── lib # 应用程序和程序包的连接库 │ ├── local # 系统管理员安装的应用程序目录 │ ├── sbin # 存放root超级用户使用的管理程序 │ └── src # Linux开放的源代码 │ └── share # 存放共享数据 │ ... ├── var # 长度可变的文件,尤其是些记录数据,如日志文件和打印机文件。 │ ├── backups │ ├── cache # 应用程序缓存目录 │ ├── crash # 系统错误信息 │ ├── log # 日志文件 │ ├── mail # 电子邮件 │ └── tmp # 临时文件目录 │ ... ├── tmp # 这个目录是用来存放一些临时文件的,所有用户对此目录都有读写权限。 ... ``` ### 2.4、常用命令 #### 2.4.1、增 新建文件 ```例如需要增加一个名为test.txt的文件 touch test.txt ``` 新建文件夹 ``` mkdir test # 创建一个文件 mkdir -p test/src # 创建test文件夹,并在test文件夹中创建src文件夹 ``` 复制 ``` sudo cp test.txt test_copy.txt # 复制一个文件 ``` #### 2.4.2、删 -i 以进行交互式方式执行 -f 强制删除,忽略不存在的文件,无需提示 -r 递归地删除目录下的内容 ``` sudo rm test.txt # 删除文件 | 空文件夹 sudo rm -r test # 删除文件夹及文件夹里的内容 ``` #### 2.4.3、改 mv 移动、重名 ``` sudo mv test test_new # 将test文件夹修改为test_new sudo mv test.txt test_new.txt # 将test.txt文件修改为test_new.txt ``` chmod修改文件权限 权限设定 符号 含义 | 符号 | 含义 | |----|------| | + | 增加权限 | | - | 撤销权限 | | = | 设定权限 | #### rwx | 字母权限 | 含义 | |------|----------------------------------------------------| | r | read 表示可读取权限,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。 | | w | write 表示可写入权限,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。 | | x | excute 表示可执行权限,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。 | ``` sudo chmod +rwx test.txt ``` 添加所有权限的快捷方式 ``` sudo chmod 777 test.txt ``` * 修改密码 设置root密码 ``` sudo passwd root ``` 设置用户名密码 ``` sudo passwd 用户名 ``` #### 2.4.4、查 查看系统版本 ``` lsb_release -a # 发行版本号 uname -a # 内核版本及系统位数 cat /proc/version # 内核版本及gcc版本 ``` 查看硬件信息 ``` curl cip.cc 或者 ifconfig # 查看IP地址 cat /proc/cpuinfo or lscpu # cpu信息 sudo dmidecode -t memory # 内存信息 df -h # 查看所有挂载的文件系统空间情况 which python3 # 查看命令位置 v4l2-ctl --list-formats-ext # 查看相机设备参数 nproc # 查看内核数 ``` 查看文件信息 ``` la # 显示指定目录下所有子目录与文件,包括隐藏文件 ll # 以列表方式显示文件的详细信息 ls -h # 配合以人性化的方式显示文件大小 cat test.txt # 查看文件内容 tree # 查看文件目录(需要安装tree) ``` tree安装命令 ``` sudo apt install tree ``` 查找文件 ``` find ./ -name test.sh # 查找当前目录下所有名为test.sh的文件or目录 find ./ -name '*.sh' # 查找当前目录下所有后缀为.sh的文件or目录 find ./ -name "[A-Z]*" # 查找当前目录下所有以大写字母开头的文件or目录 ``` #### 2.4.5、其他 tar命令 tar使用格式:tar [参数] 打包文件名 文件 ``` -c # 生成档案文件,创建打包文件 -v # 列出归档解档的详细过程,显示进度 -f # 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 -t # 列出档案中包含的文件 -x # 解开档案文件 ``` 压缩 ``` tar -cvf xxx.tar * # 当前目录所有文件 tar -cvf xxx.tar *.txt # 以.txt结尾的文件 tar -cvf xxx.tar my-file my-dir # 打包指定目录或文件 ``` 解压 ``` tar -xvf xxx.tar # 解包到当前目录 tar -xvf xxx.tar -C my-dir # 解包到指定目录(需要先创建my-dir目录) ``` zip、unzip命令 压缩文件:zip [-r] 目标文件(没有扩展名) 源文件 ``` zip bak * # 当前目录所有文件,也可以指定文件 zip -r bak * # 当前目录所有文件&目录递归 ``` 解压文件:unzip -d 解压后目录文件 压缩文件 ``` unzip -d ./target_dir bak.zip # 解压到指定目录 unzip bak.zip # 解压到当前目录 ``` ln命令 软链接:软链接不占用磁盘空间,源文件删除则软链接失效。常用,可以对文件或文件夹创建 ``` ln -s 源文件 链接文件 ``` 硬链接:硬链接只能链接普通文件,不能链接目录。即使删除了源文件,链接文件还是存在 ``` ln 源文件 链接文件 ``` scp远程拷贝 ``` scp jetson@192.168.16.66:/home/jetson/xxx.tar.gz /home/yahboom/ # 从远程复制文件到本地 scp /home/yahboom/xxx.png jetson@192.168.16.66:/home/jetson/ # 从本地复制文件到远程 scp -r jetson@192.168.16.66:/home/jetson/test /home/yahboom/ # 从远程复制目录到本地 -r scp -r /home/yahboom/test jetson@192.168.16.66:/home/jetson/ # 从本地复制目录到远程 -r ``` wget文件下载 在百度随便搜索一张图片地址,作为示例。 ``` wget "https://img0.baidu.com/it/u=3911542037,2006161295&fm=224&fmt=auto&gp=0.jpg" # 下载普通文件(百度链接要加双引号) wget -O yahboom.jpg "https://img0.baidu.com/it/u=3911542037,2006161295&fm=224&fmt=auto&gp=0.jpg" # 以指定文件名保存文件 ``` 其他 ``` nautilus . # 打开当前文件 cd ~ # 切换到当前用户的主目录(/home/用户目录) cd . # 切换到当前目录 cd - # 可进入上次所在的目录 cd / # 切换到系统根目录/ pwd # 显示当前路径 echo "HelloWorld" # 向控制台输出HelloWorld信息 which # 查看命令位置 ``` ### 2.5、编辑器 #### 2.5.1、vim vim是vi的升级版,最常见的区别是能用多种颜色显示显示系统文件的一些特殊信息。 安装命令 ``` sudo apt install vim ``` 三种主要模式 命令模式(编辑模式):默认模式,移动光标,剪切/粘贴文本(界面表现:左下角显示文件名或为空) 插入模式(输入模式):修改文本(界面表现:左下角显示—INSERT–)插入模式下,按ESC按键返回命令模式 末行模式(扩展模式):保存、退出等(界面表现:左下角显示—VISUAL–)末行模式下连续按两次ESC按键返回末行模式 模式切换 命令模式切换到编辑模式 ``` i # 插入方式进入编辑模式 a # 追加方式进入编辑模式 o # 当前行下一行开始位置开始编辑 O # 当前行上一行开始位置开始编辑 ``` 命令模式切换到末行模式 ``` : # 输入冒号【:】 ``` 末行模式切换到命令模式:按【esc】 编辑模式切换到命令模式:按【esc】 Esc建:退出到当前模式 Esc建Esc建:总是返回到命令模式  末行模式 ``` w # 保存 q # 退出 wq #保存并退出 wq! #强制保存并退出 q! # 强制退出 x # 保存并退出 set nu # 显示行号 set # nonu 隐藏行号 0,$d # vim 删除文件全部内容: /string # 从光标处开始向后寻找字符串string;按n定位下一个,shfit+n定位上一个。 g/string # 检索string。使光标停止在第一个检索到的 string 串的行首。 ``` 命令模式 ``` yy # 复制 p # 粘贴 3yy # 复制3行 2p # 粘贴2遍 dd # 剪切 3dd # 剪切3行 u # 撤销 Ctrl + r # 反撤销 dd # 删除当前行 dG # 删除当前行到文件末尾 dH # 删除当前行到文件开头 gg # 跳到当前文档首行 G # 跳到当前文档末行 ^ # 跳到当前行首 $ # 跳到当前行尾 h # 左移一个字符 j # 下移一行 k # 上移一行 l # 右移一个字符 PageDown(或Ctrl+F) # 下翻一屏 PageUp(或Ctrl+B) # 上翻一屏 ``` ### 2.5.2、nano nano是Unix和类Unix系统中的一个文本编辑器,是Pico的复制品。 安装 ``` sudo apt install nano ``` 新建/打开文件 ``` nano 路径+文件名 例如:nano test_nano.txt ``` 控制命令 ``` Ctrl+v # 下一页 Ctrl+y # 上一页 Ctrl+w # 搜索单词或短语 Ctrl+x # 关闭当前文本,退出nano,返回shell Ctrl+\ # 搜索替换 Ctrl+k # 剪切文本行 Ctrl+u # 粘贴文本行 Ctrl+c # 显示光标在文本中的位置 ``` 2.5.3、gedit gedit跟Windows下记事本的用法没什么差别。 在编辑器中我们可以点击 ”Open” 按钮浏览最近打开过的文件列表并打开文件;点击 ”Save” 按钮可以保存当前正在编辑的文件;点击右侧的菜单栏进行更多的操作等等。 快捷键也跟windows下一样: ``` Ctrl + s 保存文件 Ctrl + Shift + s 另存为 Ctrl + f 搜索文本内容 ``` gedit编辑器启动必须在能够显示界面的情况下,不可ssh、jupyter、putty等远程无界面启动。 ### 2.6、Ubuntu软件操作命令 ``` sudo apt-get update # 更新源 sudo apt-get install package # 安装包 sudo apt-get remove package # 删除包 sudo apt-cache search package # 搜索软件包 sudo apt-cache show package # 获取包的相关信息,如说明、大小、版本等 sudo apt-get install package --reinstall # 重新安装包 sudo apt-get -f install # 修复安装 sudo apt-get remove package --purge # 删除包,包括配置文件等 sudo apt-get build-dep package # 安装相关的编译环境 sudo apt-get upgrade # 更新已安装的包 sudo apt-get dist-upgrade # 升级系统 sudo apt-cache depends package # 了解使用该包依赖那些包 sudo apt-cache rdepends package # 查看该包被哪些包依赖 sudo apt-get source package # 下载该包的源代码 sudo apt-get clean && sudo apt-get autoclean # 清理无用的包 sudo apt-get check # 检查是否有损坏的依赖 ```
admin
2025年11月27日 10:49
25
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期
AI