欢迎来到天天文库
浏览记录
ID:58726909
大小:133.50 KB
页数:61页
时间:2020-10-04
《嵌入式Linux的Shell编程ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章嵌入式Linux的Shell编程5.1shell简介5.2shell基础编程5.3bash的内部命令5.4Shell程序的运行与调试方法5.5Shell编程实例5.1shell简介Shell是一种具备特殊功能的程序,它是介于使用者和UNIX/Linux操作系统之核心程序(kernel)间的一个接口。在UNIX/Linux系统中,常用的Shell有3种,分别是Bourneshell(AT&Tshell,在Linux下是bash)、Cshell(Berkeleyshell,在Linux下是tcs
2、h)和Kornshell(Bourneshell的超集)。这3种shell在交谈(interactive)模式下的表现相当类似,但作为命令文件语言时,在语法和执行效率上就有些不同了。Bourneshell是第一个有重要意义的标准的UNIXshell,V7(AT&T的第七版)UNIX是在1979年底被提出,且以它的创造者StephenBourne来命名。Bourneshell以Algol语言为基础来设计,主要被用来做自动化系统管理工作。虽然Bourneshell以简单和速度而受欢迎,但它缺少许多交谈
3、性使用的特色,例如历程、别名和工作控制。大部份的系统管理命令文件,例如rcstart、stop与shutdown都是Bourneshell的命令档,且在单一使用者模式(singleusermode)下以root签入时它常被系统管理者使用。Bourneshell是由AT&T发展的,以简洁、快速著名。Bourneshell提示符号的默认值是$。Cshell是在加州大学柏克来分校于70年代末期发展而成,而以2BSDUNIX的部分发行。这个shell主要是由BillJoy写成,提供了一些在标准Bourne
4、shell所看不到的额外特色,在交谈式运用上作了一些改进,如命令列历程(history)、别名(alias)、内建算术、档名完成(filenamecompletion)、和工作控制(jobcontrol)。Cshell是以C程序语言作为基础,且它被用来当程序语言时,能共享类似的语法。因为Cshell是在大型机器上设计出来,且增加了一些额外功能,所以Cshell在小型机器上跑得较慢,即使在大型机器上跟Bourneshell比起来也显得缓慢。Cshell提示符号的默认值是%。Kornshell是Bou
5、rneshell的超集(superset),由AT&T的DavidKorn所开发。它增加了一些特色,比Cshell更为先进。Kornshell的特色包括了可编辑的历程、别名、函式、正规表达式万用字符(regularexpressionwildcard)、内建算术、工作控制(jobcontrol)、共作处理(coprocessing)、和特殊的除错功能。Bourneshell几乎和Kornshell完全向上兼容(upwardcompatible),所以在Bourneshell下开发的程序仍能在Kor
6、nshell上执行。在Linux系统使用的Kornshell叫做pdksh,它是指PublicDomainKornShell。Kornshell提示符号的默认值也是$。在shell的语法方面,Kornshell是比较接近一般程序语言,而且它具有子程序的功能及提供较多的资料型态。至于Bourneshell,它所拥有的资料型态是这3种shell中最少的,仅提供字符串变量和布尔型态。在整体考量下Kornshell是三者中表现最佳者,其次为Cshell,最后才是Bourneshell,但是在实际使用中仍有
7、其它应列入考虑的因素,如速度是最重要的选择时,很可能应该采用Bourneshell,因它是最基本的shell,执行的速度最快。tcsh是近几年崛起的一个免费软件(Linux下的Cshell其实就是使用tcsh)执行,它虽然不是UNIX的标准配备,但是从许多地方都可以下载到它。如果开发者是Cshell的拥护者,可不妨试试tcsh。Linux下的bash就是Bourneshell,是向下兼容的,Bourneshell融入许多Cshell与Kornshell的功能。如:(1)工作控制(jobcontor
8、l)。bash支持了关于工作的讯号与指令。(2)别名功能(aliases)。alias命令是用来为一个命令建立另一个名称,它的运作就像一个宏,展开成为它所代表的命令。别名并不会替代掉命令的名称,它只是赋予那个命令另一个名字。(3)命令历程(commandhistory)Unix的Shell有很多种类,Linux系统继承了Unix系统中Shell的全部功能,现在默认使用的是bash。Shell具有如下突出特点。(1)把已有命令进行适当组合构成新的命令。(2)提供了文件名扩展字符(通配
此文档下载收益归作者所有