物联网技术部第五次培训总结

物联网技术部第五次培训

0.VMware安装Ubuntu详细步骤

https://blog.csdn.net/stpeace/article/details/78598333

1.操作系统简介

1.1 操作系统

在这里插入图片描述

讲: 操作系统就是一种特殊的软件

作用:

  1. 直接操作硬件
  2. 把操作硬件的代码封装成一个个系统调用,供用户通过应用程序间接地调用硬件。

1.2 不同应用领域的主流操作系统

  • 桌面操作系统
  • 服务器操作系统
  • 嵌入式操作系统
  • 移动设备操作系统

1.2.1桌面操作系统:

  • windows 1. 用户群体大 2. 不是特别稳定
  • mac 适用于开发人员
  • linux应用软件少

1.2.2服务器操作系统:

  • linux安全、稳定、免费、占有率高
  • windows server 付费、占有率低

简单讲: 服务器就是一个硬件,通常通过远程控制来维护

1.2.3嵌入式操作系统:

  • linux 内核小、开源

1.2.4移动设备操作系统:

  • IOS
  • android(基于linux)

2.操作系统的发展历史

2.1 Unix

1965年之前,电脑并不像现在一样普及,他可不是一般人能消费得起,除非是或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘、显示器),连接一台电脑

在这里插入图片描述
为了解决数量不够用的问题

  1. 1965年左右由 贝尔实验室 加入了 麻省理工学院 以及 通用电气 合作的计划–该计划要建立一套 多使用者(multi-user)、多任务(multi-processor)、多层次(multi-level)的 MULTI 操作系统、想让大型机支持300台终端

    (多任务:多个用户同一时间登入到同一电脑上使用的操作系统)

  2. 1969年项目进展缓慢、资金短缺、贝尔实验室推出了研究

  3. 1969年从这个项目中退出的 Ken Thompson 当时在实验室无聊时,为了让一台空闲的电脑上能够运行“星际旅行(Space Travel)”游戏,在8月份左右乘着其妻子探亲的时间、用了1个月的时间,使用汇编写出了 Unix操作系统 的原型

  4. 1970年,美国贝尔实验室的 Ken Thompson ,以 BCPL 语言为基础、设计出很简单且很接近硬件的 B语言(取BCPL的首字母),并且用 B语言 写出了第一个操作系统

  5. 1971年,同样酷爱“星际旅行”的 Dennis M.Ritchie 为了能早点儿玩上游戏,加入了 Thompson 的开发项目,合作开发 Unix ,他的主要工作是改造 B语言 ,因为 B语言 的跨平台性较差

  6. 1972年,Dennis.M.Ritche B语言 的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是 C语言

  7. 1973年初, C语言 的主体完成, ThompsonRitchie 迫不及待地用它完全重写了现在大名鼎鼎的 Unix操作系统

在这里插入图片描述

肯尼思·汤普森和丹尼斯·里奇

2.1.1 c语言

  • 在把 UNIX 移植到其他类型的计算机上使用时, C语言 强大的移植性在此显现
  • C语言 程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的 C语言编译器 和库、然后将C源代码编译、连接成目标二进制文件之后即可运行

2.1.2 UNIX图谱

在这里插入图片描述

2.2 Minix

  • 因为AT&T(通用电气) 的政策改变,在Version 7 Unix 推出之后,发布新的使用条款,将UNIX源代码私有化、在大学中不再使用UNIX源代码
  • Andrew S.Tanenbaum(塔能鲍姆) 教授为了能在课堂上教授学生操作系统运作的细节,决定在不使用AT&T源码的前提下、自行开发与UNIX兼容的操作系统、以避免版权上的争议
  • 小型UNIX(mini-UNIX) 之意,将它命名为MINIX

2.3 Linux

  • 1991 年林纳斯(Linus) 就读于赫尔辛基大学期间,对Unix产生浓厚兴趣、尝试在Minix上做一些开发工作
  • 因为Minix只是教学使用,因此功能并不强、林纳斯经常用他的终端仿真器去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了Linux第一个内核的雏形,当时,他年仅21岁!
  • 林纳斯利用GNU的bash当做开发环境,gcc当做编译工具,编写了Linux内核,一开始Linux并不能兼容Unix
    • 即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致
    • 一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件

在这里插入图片描述

林纳斯

3.Linux内核及发行版

3.1 Linux 内核

内核 是系统的心脏,是运行程序和管理像磁盘和打印机硬件设备的核心程序,它提供了一个裸设备与应用程序间的抽象层

在这里插入图片描述

3.2 Linux 发行版本

  • Linux发行版通常包含了包括桌面环境,办公套件,媒体播放器,数据库等应用软件

  • 常见的发行版本如下:

    • Ubantu:多年来,得益于 Canonical 和开源社区的支持,Ubuntu 已经成为 Linux 桌面场景的一大亮点。由于其受欢迎程度和持续发展,这个 Debian 衍生物在云和服务器应用程序中被大量使用。它也有多种风格来满足人们的不同需求。LTS 版本提供了良好的体验,可以快速解决问题。 Ubuntu 也支持流行的 .deb 包管理系统。
    • Redhat
    • CentOS

4.Linux终端命令

4.1 终端命令基本格式

一个命令由命令名选项参数组成,其基本格式为command [-options] parameter

  • command : 命令名
  • [-options]: 选项,可省略
  • parameter: 传给命令的参数

4.2 终端热键使用技巧

  • Tab键补全名称
  • / 曾经使用的命令来回切换
  • ctrl+c退出当前命令

4.3 查看目录命令

ls 是list的简写,列出文件夹目录

4.3.1 Linux下文件和目录的特点

  • Linux 文件 或者 目录 名称最长可以有 256 个字符
  • . (点)开头的文件为隐藏文件, 需要用 -a 参数才能显示
  • .(点) 代表当前目录
  • (两个点) 代表上一级目录

4.3.2 ls常用选项

参数 含义
-a 显示指定目录下所有子目录与文件,包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合 -l 以人性化的方式显示文件大小

4.3.3 通配符的使用

含义 含义
* 代表任意个数个字符
代表任意一个字符,至少一个
[] 表示可以匹配字符组中的任意一个
[abc] a或b或c
[a-f] a到f范围任意一个字符

Tips: 其实就是类似正则表达式的用法 (命令 : ls *1.text => 就是1结尾的所有text文件)

4.4 切换目录

4.4.1 cd命令

cd 是英文单词 change directory 的简写, 其功能为更改当前的工作目录

使用方法:cd 路径

Tips: Linux 所有的目录 和 文件名都是大小写敏感的

4.4.2 绝对路径和相对路径

相对路径 在输入路径时, 最前面不是 / 或者 - ,表示相对当前目录 所在的目录位置

绝对路径 在输入路径时, 最前面是 / 或者 - ,表示从 **根目录/家目录 **开始的具体目录位置

4.5 创建和删除操作

4.5.1 touch命令

创建文件或者修改文件时间 (文件不存在,则创建若存在 ,则修改末次时间)

4.5.2 mkdir命令

创建一个新的目录

选项 含义
-p 可以递归创建目录

4.5.3 rm命令

删除文件或者目录

选项 含义
-f 强制删除, 忽略不存在的文件, 无需提示
-r 递归地删除目录下的内容, 删除文件夹 时必须加此参数

Tips:rm -rf /* 删库跑路咯

4.6 拷贝和移动文件

命令 对应英文 作用
tree[目录名] tree 以树状图列出文件目录结构
cp 源文件 目标文件 copy 复制文件或目录
mv 源文件 目标文件 move 移动文件或者目录 / 文件或者目录

4.6.1 tree命令

  • tree 可以以树状图列出文件目录结构
  • tree -d 只显示目录

Tips:tree ~表示家目录中所有文件

4.6.2 cp命令

cp 命令的功能是将给出的 文件 或 目录 复制到另一个 文件 或 目录 中 ,相当于DOS 下的 copy 命令

选项 含义
-f 已经存在的目标文件直接覆盖, 不会提示
-i 覆盖文件前提示
-r 若给出的源文件是目录文件, 则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须是一个目录名

4.6.3 mv命令

mv 命令可以用来 移动文件 或 目录 , 也可以给 文件或目录重命名

选项 含义
-i 覆盖文件前提示

4.7 查看文件内容

命令 对应英文 作用
cat 文件名 concatenate 查看文件内容,创建文件,文件合并,追加文件内容等功能
more 文件名 more 分屏显示文件内容
grep 搜索文本文件名 grep 搜索文本文件内容

4.7.1 cat命令

cat 命令具有 查看文件内容创建文件追加文件内容 等功能

  1. cat用于查看文件内容:
  • cat 会一次显示所有的内容, 适合 查看内容较少 的文本文件
选项 含义
-b 对非空输出行编号
-n 对输出所有行编号
  1. cat用于创建文件:cat 文件名 >>结束标志,我们当然可以仅用cat >文件名,然后Ctrl + C退出bash

在这里插入图片描述

  1. cat用于清空文件内容(覆盖):如果我们想清空文件内容,可以直接输入结束标记,这样便向文件中写入0字符,文件即被清空了

  2. cat也可以用来追加文件内容,用法为:cat >>文件名 <<结束标志,这里面关键是两个追加符号

4.7.2 more命令

  • more 命令可以用于分屏显示文件内容, 每次只显示一页内容
  • 适合于 查看内容较多的文本文件
操作键 功能
空格键 显示手册页的下一屏
回车键 一次滚动手册的一行
b 回滚一屏
f 前滚一屏
q 退出

4.7.3 grep命令

  • Linux 系统中 grep 命令是一种强大的文本搜索工具
  • grep 允许文本文件进行 模式查找, 所谓模式查找, 又被称为正则表达式,
选项 含义
-n 显示匹配行及行号
-v 显示不包含匹配文本的所有行(相当于求反)
-i 忽略大小写
参数 含义
^a 行首, 搜寻以a 开头的行
b$ 行位, 搜寻以b 结束的行

4.8 打包与压缩

4.8.1 打包与解包

打包压缩 是日常工作中备份文件的一种方式

在不同操作系统中, 常用的打包压缩方式是不同的

  • Windows 常用 rar
  • Mac 常用 zip
  • Linux 常用 tar.gz

tar命令如下:

  1. 打包文件tar -cvf 打包文件名称.tar 被打包的文件 / 路径

  2. 解包文件tar -xvf 打包文件.tar

选项 含义
c 生成档案文件,创建打包文件
x 解开档案文件
v 列出归档解档的详细过程,显示进度
f 指定档案文件名称, f 后面一定是 tar 文件, 所以必须放选项最后

提醒: f 选项必须放在最后, 其他选项顺序可以随意

4.8.2 压缩与解压缩

要点:

  • tar命令负责打包与解包,gzip命令负责将打包后的文件压缩与解压缩
  • tar打包后的文件的扩展名为.tar,gzip压缩后文件的扩展名为.tar.gz
  • tar命令中有个选项-z可以调用gzip,从而可以实现压缩和解压缩的功能

压缩与解压缩的两种实现方式:

  1. 压缩文件:
    • tar -zcvf 打包文件名.tar.gz 被压缩的文件 / 路径
    • gzip 打包文件名.tar.gz 被压缩的文件/路径
  2. 解压缩文件:
    • tar -zxvf 打包文件.tar.gz
    • gzip -b 打包文件.tar.gz
    • 解压到指定路径:tar -zxvf 打包文件.tar.gz -C 目标路径

Tips:linux中的压缩文件除了.gz文件,还有.bz2、.zip文件等,都有相应的压缩与解压缩的命令

5.用Linux编写c语言程序

Ubuntu自带gcc编译器且已经配置好了环境变量,我们可以使用gcc -v这个命令查看gcc的版本信息

c语言源文件需要经过编译、汇编、连接后形成产生可执行文件

  • Win:源文件(.c文件)-> 目标文件(.obj文件) -> 可执行文件(.exe文件)
  • Unix:源文件(.c文件)-> 目标文件(.out文件)

Linux编写C语言:

  1. 编写源文件(注意扩展名一定是c)
  2. 编译文件:gcc 源文件名.c
  3. 运行可执行文件:./a.out

猜你喜欢

转载自blog.csdn.net/NOTFOUND_Liu/article/details/84946477
今日推荐