文档详情

嵌入式Linux Shell编程基础.ppt

发布:2017-06-19约7.65千字共31页下载文档
文本预览下载声明
嵌入式Linux Shell编程基础 课程大纲 什么是Shell ? Shell原意为外壳,用来形容物体外部的架构,Linux系统的Shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。 1. Shell可称为命令解释器: 负责用户和操作系统之间的沟通,把用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,所以,它拥有自己内建的Shell命令集,也能被系统中其他应用程序调用。 2. Shell还是一种高级程序设计语言: 它有变量、关键字,有各种控制语句,如if、case、while、for等语句,有自己的语法结构。利用Shell程序设计语言可以编写出功能强大的代码程序。 Shell解释命令的过程 学过DOS的都知道, DOS有内部命令与外部命令之分。在Shell中,有一些命令(比如改变工作目录命令cd)是包含在Shell内部的。还有一些命令(例如拷贝命令cp和移动命令rm)是存在于文件系统中某个目录下的单独的程序,如/bin目录中。对用户而言,不必关心一个命令是建立在Shell内部还是一个单独的程序。 Shell接到用户输入的命令后首先检查命令是否是内部命令,若不是再检查是否是一个应用程序。然后,Shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被系统传送给Linux内核。 常用的Shell类型 Shell的种类 Linux中的Shell有多种类型,其中最常见的是Bourne Shell(sh)、C Shell(csh)和Korn Shell(ksh)。三种Shell各有优缺点。 Bourne Shell是Unix最初始的Shell,并且在每种Unix上都可以使用。Bourne Shell在Shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种Shell。 Bash(Bourne Again Shell)是Bourne Shell的扩展,与Bourne Shell完全向下兼容,并且增加了许多特性。它还包含了很多C Shell和Korn Shell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。 Bash Shell Bash是大多数Linux系统的默认Shell。Bash有以下的优点: 1)补全命令。在Bash命令提示符下输入命令或程序名时,若没有输全命令或程序名,按“Tab”键,Bash将自动补全命令或程序名。 2)通配符。在Bash下可以使用通配符“*”和“?”。“*”可以替代多个字符,而“?”则替代一个字符。 3)历史命令。Bash能自动跟踪用户每次输入的命令,并把输入的命令保存在历史列表缓冲区中。 如何查看当前使用的Shell版本? #echo $SHELL 什么是Shell脚本 ? 想想:一个命令只能完成一项任务,有时我们要求做系统处理的工作较多,而且什么时候执行也不定,怎么办? 采用命令的组合,命令的组合就是Shell脚本编程 Shell脚本概念 Shell程序可以存放在文件中,这种被shell解释执行的命令文件称为shell脚本。Shell脚本程序与DOS/Windows系统的.bat批处理文件极为相似,但功能远远超过.bat批处理文件。它与Windows NT系列网络操作系统中的脚本的功能和作用类似。shell脚本可以包含任意从键盘键入的Linux命令。建立shell脚本的步骤与建立普通文本文件的方式相同,利用编辑器(如vi)进行程序录入和编辑加工。 Shell环境变量 问题:在windos环境,一个用户一般都有自己的个性化桌面,随系统启动时的程序:如qq,等等,这些设置用户工作环境在Linux一般通过一些变量来完成。 Shell环境变量 在用户登录过程中系统要做的一件事就是建立用户环境,就是Shell 下的控制及设置,包括文件搜索路径、用户目录和系统提示符等。Linux(Shell)环境由许多变量和这些变量的值组成,通过设置这些环境变量来控制用户环境。 如何查看当前环境变量? #env 课程大纲 Shell变量 Shell程序中也采用变量,用来存放字符串。Shell变量比C语言中的变量简单得多,没有众多存储类及类型的限制,也不需要预先定义,然后才能赋值,可以在使用时“现定义、现赋值”。 Shell有两类变量区别:环境变量和临时变量。环境变量是永久性变量,其值不会随shell脚本执行结束而消失。而临时变量是在she
显示全部
相似文档