uboot和系统移植-第2部分-2.2 补基础之shell和Makefile

uboot和系统移植-第2部分-2.2 补基础之shell和Makefile

第一部分、章节目录
2.2.1 shell介绍
2.2.2 动手写第一个shell
2.2.3 shell编程学习1
2.2.4 shell编程学习2
 
第三部分 随堂记录
2.2.1 shell介绍
2.2.1.1 shell是操作系统的终端命令行
(1)shell可以理解为软件系统提供给用户操作的命令行界面,可以说它是人机交互的一种方式。
(2)我们可以使用shell和操作系统、uboot等软件系统进行交互。具体来说就是我们通过shell给
软件系统输入命令然后回车执行,执行完成后又会回到shell命令行可以再次输入命令执行。
(3)上述的操作方式一般情况下工作很好,但是有缺陷。
譬如我们要在Linux下创建一个文件a.c,可以touch a.c
但是如果我现在是用在linux下创建100个文件,分别为a1.c a2.c.....a100.c
如果这时候还是手工去命令行执行命令创建也可以,但是很累。最好的做法就是把创建过程写成一个
shell脚本程序,然后去执行这个shell脚本程序,执行这个程序的效果和手工在命令行输入那些命令效果
一样的。

2.2.1.2 shell是一类编程语言
(1)编写shell脚本时使用的语言就是shell语言,又叫脚本语言。
(2)shell脚本其实是一类语言而不是一个语言。

2.2.1.3 常用shell语言:sh、bash、csh、ksh、perl、python等
(1)在linux下常用的脚本语言其实就是bash、sh;
(2)perl、python这样的高级shell脚本语言,常用在网络管理配置等领域,系统运维人员一般要学这些。
(3)脚本语言一般在嵌入式中应用,主要是用来做配置。(一个复杂的嵌入式程序都是可配置的,配置过程
就是用脚本语言来实现的)自然不会使用过于复杂的脚本语言特性,因此只需要针对性的学习即可。
(4)linux下最常用的脚本就是bash,我们学习也是以bash为主。

2.2.1.4 shell脚本的运行机制:解释运行
(1)C语言(C++)这种编写过程是:编写出源代码(源代码是不能直接运行的)然后编译链接形成可执行二进制程序,
然后才能运行;而脚本程序不同,脚本程序编写好后源代码即可直接运行(没有编译链接过程)
(2)shell程序是解释运行的,所谓解释运行就是当我们执行一个shell程序时,shell解析器会逐行的解释
shell程序代码,然后一行一行的去运行。(顺序结构)
(3)CPU实际只认识二进制代码,根本不认识源代码。脚本程序源代码其实也不是二进制代码,CPU也
不认识,也不能直接执行。只不过脚本程序的编译链接过程不是以脚本程序源代码为单位进行的,而是
在脚本运行过程中逐行的解释执行时才去完成脚本程序源代码转成二进制的过程(不一定是编译链接
,因为这行脚本程序可能早就编译链接好了,这里我们只是调用它)的。
对应bash来说,linux自带了解释器,不用你装了。


2.2.2 动手写第一个shell
2.2.2.1 编辑器、编译器、运行方法(脚本的3种执行方法)
(1)shell程序是文本格式的,只要是文本编辑器都可以。但是因为我们的shell是要在linux系统下运行
的,所以换行符必须是'\n',而windows下的换行符是"\r\n",因此windows中的编辑器写的shell不能在
linux下运行。所以我们整个课程都是在linux下使用vi编辑器(实际上是vim)进行编写调试的。


 

你可能感兴趣的:(嵌入式开发)