Procházet zdrojové kódy

[tmp]:临时提交

鱼香ROS před 3 roky
rodič
revize
668a3ad790

+ 66 - 10
docs/humble/chapt1/basic/1.Linux与Ubuntu系统介绍.md

@@ -1,12 +1,12 @@
-1.Linux与Ubuntu系统介绍
+# 1.Linux与Ubuntu系统介绍
 
-1.Linux是什么
+## 1.Linux是什么
 
 1991年,一个名不见经传的芬兰研究生购买了自己的第一台PC,并且决定开始开发自己的操作系统。这个想法非常偶然,最初只是为了满足自己读写新闻和邮件的需求。这个芬兰人选择了Minix作为自己研究的对象。Minix是由荷兰教授Andrew S. Tanenbaum开发的一种模型操作系统,这个开放源代码的操作系统最初只是用于研究目的。
 
 这个研究生名叫Linus Torvalds,他很快编写了自己的磁盘驱动程序和文件系统,并且慷慨地把源代码上传到互联网。Linus把这个操作系统命名为Linux,意指“Linus的Minix”(Linus’ Minix)。
 
-2.Linux系统内核
+### 2.Linux系统内核
 
 这里需要了解下什么是操作系统,以及Linux内核是什么?
 
@@ -20,17 +20,17 @@
 
 ![img](1.Linux与Ubuntu系统介绍/imgs/format,png.png)
 
-2.Ubuntu是什么
+## 2.Ubuntu是什么
 
 > [Ubuntu](https://cn.ubuntu.com/)官网值得看看
 
-2.1 Ubuntu介绍
+### 2.1 Ubuntu介绍
 
 Ubuntu基于linux内核的桌面PC操作系统,术语上喜欢称Ubuntu是一个 linux 发行版。
 
 Ubuntu是一个以桌面应用为主的[Linux](https://baike.baidu.com/item/Linux/27050)操作系统,其名称来自非洲南部祖鲁语或[豪萨语](https://baike.baidu.com/item/豪萨语/2002173)的“ubuntu"一词,意思是“人性”“我的存在是因为大家的存在",是非洲传统的一种价值观。
 
-2.2 Ubuntu版本
+#### 2.2 Ubuntu版本
 
 按照用途可以分为桌面版、服务器版、Iot版本、风味版、移动版和云上版。
 
@@ -50,15 +50,71 @@ Ubuntu是一个以桌面应用为主的[Linux](https://baike.baidu.com/item/Linu
 
    Ubuntu风味版提供了一种特别的方式来体验不同默认应用程序、设置的Ubuntu,其由Ubuntu归档(Ubuntu Archive)提供软件包和更新。
 
-3.Ubuntu版本发布规则及代号
+## 3.Ubuntu版本发布规则及代号
 
+注意被小鱼加粗的版本都是带LTS的长期支持版本,都是在偶数年的4月下旬发布的。
 
+使用长期支持(LTS)版本的你同,你**会在较长的时间内获得安全、维护和功能的更新**。LTS 版本被认为是最稳定的版本,它经历了广泛的测试,并且大多包含了多年积累的改进。
 
-4.系统架构是什么
+| 版本号                                                       | 代号                | 发布时间        |
+| ------------------------------------------------------------ | ------------------- | --------------- |
+| **22.04 LTS**                                                | **Jammy Jellyfish** | **2022-04-19**  |
+| 21.10                                                        | Impish Indri        | 2021-10-14      |
+| 21.04                                                        | Hirsute Hippo       | 2021-04-22 [13] |
+| 20.10                                                        | Groovy Gorilla      | 2020-10-22      |
+| **20.04 LTS**                                                | **Focal Fossa**     | **2020-04-23**  |
+| 19.10                                                        | Eoan Ermine         | 2019-10-17      |
+| 19.04                                                        | Disco Dingo         | 2019-4-19       |
+| 18.10                                                        | Cosmic Cuttlefish   | 2018-10-18      |
+| **18.04 LTS**                                                | **Bionic Beaver**   | **2018-04-26**  |
+| 17.10([GNOME](https://baike.baidu.com/item/GNOME/5105879)成为默认桌面环境) | Artful Aardvark     | 2017-10-21      |
+| 17.04                                                        | Zesty Zapus         | 2017-04-13      |
+| 16.10                                                        | Yakkety Yak         | 2016-10-20      |
+| **16.04 LTS**                                                | **Xenial Xerus**    | **2016-04-21**  |
+
+## 4.CPU架构是什么
+
+推荐阅读:
+
+- [[Linux\]CPU架构/指令集:RISC / CISC | arm | amd | X86/i386 | aarch64 - 千千寰宇 - 博客园 (cnblogs.com)](https://www.cnblogs.com/johnnyzen/p/13224632.html)
+
+你需要知道的常见架构有:
+
+- amd64
+- arm
+- aarch64
+- x86/i386(不常用)
+
+根据电脑使用的CPU架构不同,你安装Ubuntu系统时应该选择对应的Ubuntu安装镜像包。
+
+同时注意:不同架构的不同操作系统的软件安装包也是不兼容的。
+
+## 5.Ubuntu权限管理
+
+推荐阅读:
+
+- [ubuntu 权限管理设置 - 掘金 (juejin.cn)](https://juejin.cn/post/6995788320169017375)
+
+你需要知道的有:
+
+- Linux 系统中的 超级用户 root 账号通常 用于系统的维护和管理,**对操作系统的所有资源 具有所有访问权限**
+- sudo 命令用来以其他身份来执行命令,预设的身份为 root,所以我们**可以使用sudo + 命令来提升操作权限**
+- chmod 命令可以用于**修改文件权限**
+
+## 6.**Ubuntu上如何安装软件**
+
+推荐阅读:
+
+- https://www.cnblogs.com/xwdreamer/p/3623454.html
+- [Ubuntu安装软件有这5种方法 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/270908077)
+
+你需要知道的是:
+
+- 使用apt从服务器下载安装,你需要提前添加服务器地址和服务器的秘钥,这一步就叫添加源或者换源
+- 使用源码进行编译安装,你需要下载源码和源码的各种依赖,之后编译出程序拷贝到系统中
+- 为什么可以使用apt安装?其实就是软件开发者在自己电脑上编译好程序,把程序打包上传到服务器,你就可以从服务器下载安装了
 
-5.Ubuntu权限管理
 
-6.Ubuntu上如何安装软件
 
 --------------
 

+ 5 - 7
docs/humble/chapt1/basic/2.在虚拟机中安装Ubuntu.md

@@ -1,12 +1,12 @@
-2.在虚拟机中安装Ubuntu
+# 2.在虚拟机中安装Ubuntu
 
 为方便学习,可以先使用虚拟机在Windows上使用Ubuntu,当然除了虚拟机还有Windows子系统等方法,你可以自行尝试。
 
-1.下载
+## 1.下载
 
 所谓虚拟机,就是在你的电脑已有的系统上再使用软件模拟出另外一个系统。比较著名的软件就是Vmware了,因为Vmware是收费的,我们使用他们的非商业版本Vmware-Player。
 
-1.1下载Vmvare
+### 1.1下载Vmvare
 
 Vmvare官方下载链接:[VMware Workstation Player - My VMware](https://my.vmware.com/en/web/vmware/downloads/details?downloadGroup=WKST-PLAYER-1612&productId=1039&rPId=66621)
 
@@ -14,7 +14,7 @@ Vmvare官方下载链接:[VMware Workstation Player - My VMware](https://my.vm
 
 ![image-20210719182446728](2.在虚拟机中安装Ubuntu/imgs/image-20210719182446728.png)
 
-1.1下载ubuntu
+### 1.1下载ubuntu
 
 下载好后虚拟机安装包后,接下来下载ubuntu镜像文件。
 
@@ -39,8 +39,6 @@ VMware-player-full-16.2.3-19376536
 
 ![image-20210719185440656](2.在虚拟机中安装Ubuntu/imgs/image-20210719185440656.png)
 
-
-
 ![image-20210719185458219](2.在虚拟机中安装Ubuntu/imgs/image-20210719185458219.png)
 
 ![image-20210719185545384](2.在虚拟机中安装Ubuntu/imgs/image-20210719185545384.png)
@@ -121,7 +119,7 @@ VMware-player-full-16.2.3-19376536
 
 ![image-20220526133606266](2.在虚拟机中安装Ubuntu/imgs/image-20220526133606266.png)
 
-4.更改分辨率
+## 4.更改分辨率
 
 在桌面空白处右击,选择Display Settings
 

+ 360 - 5
docs/humble/chapt1/basic/3.玩转Ubuntu之常用指令.md

@@ -1,23 +1,378 @@
-3.玩转Ubuntu之常用指令
+# 3.玩转Ubuntu之常用指令
 
-1.学会打开终端
+## 1.学会打开终端
 
 安装好,你需要学会的第一件事是打开终端,后面我们很多操作都将通过终端进行。
 
 常用打开终端的方式有以下几种:
 
-1.使用快捷键 Ctrl+Alt+T
+1. 使用快捷键 Ctrl+Alt+T
 
-2.文件夹中右击打开
+2. 文件夹中右击打开
 
 ![image-20220526134550982](3.玩转Ubuntu之常用指令/imgs/image-20220526134550982.png)
 
-3.桌面右击选择
+3. 桌面右击选择
 
 ![image-20220526134518911](3.玩转Ubuntu之常用指令/imgs/image-20220526134518911.png)
 
 ![image-20220526134726274](3.玩转Ubuntu之常用指令/imgs/image-20220526134726274.png)
 
+
+
+## 2.学会常用命令
+
+使用linux肯定要学一下命令行啦,所谓命令行就是通过操作黑乎乎的终端来控制计算机。
+
+linux中常用命令行如下,小鱼课程中也会用到,大家可以提前玩一玩。
+
+>  参考文档:菜鸟教程 https://www.runoob.com/w3cnote/linux-common-command-2.html
+
+2.1 一键安装命令
+
+所以一键安装命令指的是小鱼做的一键安装ROS等常用指令合集,使用方法也非常的简单,要求一定掌握。
+
+复制粘贴下面这句话到终端
+
+```shell
+wget http://fishros.com/install -O fishros && . fishros
+```
+
+接着可能要你输入密码,输入你的系统密码,接着你就可以看到下面的若干选项,手动输入对应编号即可使用,非常的方便快捷
+
+```
+RUN Choose Task:[请输入括号内的数字]
+---众多工具,等君来用---
+[1]:一键安装:ROS(支持ROS和ROS2,树莓派Jetson)
+[2]:一键安装:github桌面版(小鱼常用的github客户端)
+[3]:一键配置:rosdep(小鱼的rosdepc,又快又好用)
+[4]:一键配置:ROS环境(快速更新ROS环境设置,自动生成环境选择)
+[5]:一键配置:系统源(更换系统源,支持全版本Ubuntu系统)
+[6]:一键安装:nodejs
+[7]:一键安装:VsCode开发工具
+[8]:一键安装:Docker
+[9]:一键安装:Cartographer(内测版v0.1)
+[10]:一键安装:微信(可以在Linux上使用的微信)
+[77]:测试模式:运行自定义工具测试
+[0]:quit
+```
+
+2.2 安装与卸载软件
+
+> 第一节中小鱼曾写过:使用apt从服务器下载安装,你需要提前添加服务器地址和服务器的秘钥,这一步就叫添加源或者换源
+
+Ubuntu安装完成后是自带系统常用软件源的,但是自带的源的服务器地址是在国外的,我们直接用会非常的慢,所以我们一般会更换掉系统源为国内镜像源。
+
+打开终端,输入下面的指令,输入密码提升权限,接着选择`[5]:一键配置:系统源(更换系统源,支持全版本Ubuntu系统)`。
+
+```shell
+wget http://fishros.com/install -O fishros && . fishros
+```
+
+这里会让你选择是否清理第三方源,第三方源指的是你为了安装一些安装包在自己的服务器上软件,而添加到系统的软件源。
+
+新系统的选不选清理无所谓,刚装的系统一般不带第三方源。
+
+这里选择仅更换系统源。
+
+2.3 复制粘贴小能手
+
+2.4 编写文件之gedit/nano
+
+2.5 其他命令
+
+### 1、ls命令
+
+就是 list 的缩写,通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。
+
+**常用参数搭配:**
+
+```
+ls -a 列出目录所有文件,包含以.开始的隐藏文件
+ls -A 列出除.及..的其它文件
+ls -r 反序排列
+ls -t 以文件修改时间排序
+ls -S 以文件大小排序
+ls -h 以易读大小显示
+ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
+```
+
+**实例:**
+
+(1) 按易读方式按时间反序排序,并显示文件详细信息
+
+```
+ls -lhrt
+```
+
+(2) 按大小反序显示文件详细信息
+
+```
+ls -lrS
+```
+
+(3)列出当前目录中所有以"t"开头的目录的详细内容
+
+```
+ls -l t*
+```
+
+(4) 列出文件绝对路径(不包含隐藏文件)
+
+```
+ls | sed "s:^:`pwd`/:"
+```
+
+(5) 列出文件绝对路径(包含隐藏文件)
+
+```
+find $pwd -maxdepth 1 | xargs ls -ld
+```
+
+### 2、cd 命令
+
+cd(changeDirectory) 命令语法:
+
+```
+cd [目录名]
+```
+
+说明:切换当前目录至 dirName。
+
+**实例:**
+
+(1)进入要目录
+
+```
+cd /
+```
+
+(2)进入 "home" 目录
+
+```
+cd ~
+```
+
+(3)进入上一次工作路径
+
+```
+cd -
+```
+
+(4)把上个命令的参数作为cd参数使用。
+
+```
+cd !$
+```
+
+### 3、pwd 命令
+
+pwd 命令用于查看当前工作目录路径。
+
+**实例:**
+
+(1)查看当前路径
+
+```
+pwd
+```
+
+(2)查看软链接的实际路径
+
+```
+pwd -P
+```
+
+4、mkdir 命令
+
+mkdir 命令用于创建文件夹。
+
+可用选项:
+
+- **-m**: 对新建目录设置存取权限,也可以用 chmod 命令设置;
+- **-p**: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。
+
+**实例:**
+
+(1)当前工作目录下创建名为 t的文件夹
+
+```
+mkdir t
+```
+
+(2)在 tmp 目录下创建路径为 test/t1/t 的目录,若不存在,则创建:
+
+```
+mkdir -p /tmp/test/t1/t
+```
+
+### 5、rm 命令
+
+删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
+
+```
+rm [选项] 文件…
+```
+
+**实例:**
+
+(1)删除任何 .log 文件,删除前逐一询问确认:
+
+```
+rm -i *.log
+```
+
+(2)删除 test 子目录及子目录中所有档案删除,并且不用一一确认:
+
+```
+rm -rf test
+```
+
+(3)删除以 -f 开头的文件
+
+```
+rm -- -f*
+```
+
+### 6、rmdir 命令
+
+从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。
+
+**注意**:不能删除非空目录
+
+**实例:**
+
+(1)当 parent 子目录被删除后使它也成为空目录的话,则顺便一并删除:
+
+```
+rmdir -p parent/child/child11
+```
+
+### 7、mv 命令
+
+移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。
+
+当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。
+
+**实例:**
+
+(1)将文件 test.log 重命名为 test1.txt
+
+```
+mv test.log test1.txt
+```
+
+(2)将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中
+
+```
+mv llog1.txt log2.txt log3.txt /test3
+```
+
+(3)将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖
+
+```
+mv -i log1.txt log2.txt
+```
+
+(4)移动当前文件夹下的所有文件到上一级目录
+
+```
+mv * ../
+```
+
+### 8、cp 命令
+
+将源文件复制至目标文件,或将多个源文件复制至目标目录。
+
+注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!
+
+```
+-i 提示
+-r 复制目录及目录内所有项目
+-a 复制的文件与原文件时间一样
+```
+
+**实例:**
+
+(1)复制 a.txt 到 test 目录下,保持原文件时间,如果原文件存在提示是否覆盖。
+
+```
+cp -ai a.txt test
+```
+
+(2)为 a.txt 建立一个链接(快捷方式)
+
+```
+cp -s a.txt link_a.txt
+```
+
+### 9、cat 命令
+
+cat 主要有三大功能:
+
+1.一次显示整个文件:
+
+```
+cat filename
+```
+
+2.从键盘创建一个文件:
+
+```
+cat > filename
+```
+
+只能创建新文件,不能编辑已有文件。
+
+3.将几个文件合并为一个文件:
+
+```
+cat file1 file2 > file
+```
+
+- -b 对非空输出行号
+- -n 输出所有行号
+
+**实例:**
+
+(1)把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里
+
+```
+cat -n log2012.log log2013.log
+```
+
+(2)把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里
+
+```
+cat -b log2012.log log2013.log log.log
+```
+
+(3)使用 here doc 生成新文件
+
+```
+cat >log.txt <<EOF
+>Hello
+>World
+>PWD=$(pwd)
+>EOF
+ls -l log.txt
+cat log.txt
+Hello
+World
+PWD=/opt/soft/test
+```
+
+(4)反向列示
+
+```
+tac log.txt
+PWD=/opt/soft/test
+World
+Hello
+```
+
+
+
 --------------
 
 技术交流&&问题求助:

+ 12 - 1
docs/humble/chapt1/basic/4.玩转Ubuntu之编程工具.md

@@ -1,4 +1,15 @@
-**内容还在更新中,请关注公众号鱼香ROS,提前解锁新章节。**
+# 4.玩转Ubuntu之编程工具
+
+1.Hello FishROS
+
+1.1 Python版
+
+打开终端,利用上节课的指令新建一个文件,名字叫`hello_fishros.py`,接着使用
+
+1.2 C++版
+
+
+
 
 --------------