章Shell编程.pptVIP

  • 10
  • 0
  • 约1.68万字
  • 约 70页
  • 2017-08-22 发布于江苏
  • 举报
章Shell编程

第6章 Shell编 程 Shell概述 Shell编程 习题 Shell概述 想想:当计算机播放音乐这个过程需要什么? 声卡,没有声卡怎么播放东西 操作系统,当然还要相关的声卡驱动程序。操作系统通过管理驱动程序管理设备,内存等与硬件相关的东西 还要什么?就是你呐!没有用户发出命令操作系统怎么知道播放 但是操作系统怎样识别用户发出的指令呢?也就是说,比如你输入一个指令:ls –l,操作系统怎么知道你要列出文件信息呢? 因此在操作系统与用户之间还要一个界面:他把用稍微人性化的语言或操作转换为操作系统能够识别的操作。在文本环境,这个沟通的工作,就是由shell完成 。 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 1.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中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。 2.Bash Bash是大多数Linux系统的默认Shell。Bash有以下的优点: 1)补全命令。在Bash命令提示符下输入命令或程序名时,若没有输全命令或程序名,按“Tab”键,Bash将自动补全命令或程序名。 2)通配符。在Bash下可以使用通配符“*”和“?”。“*”可以替代多个字符,而“?”则替代一个字符。 3)历史命令。Bash能自动跟踪用户每次输入的命令,并把输入的命令保存在历史列表缓冲区中。 4)别名。在Bash下,可用alias和unalias命令给命令或可执行程序起别名和删除别名,这样就可以用自己习惯的方式输入命令。 alias lm=`ls - al` 以后用lm命令就相当于ls - al 5)输入/输出重定向。输入重定向用于改变命令的输入,输出重定向用于改变命令的输出 系统默认的输入为键盘、输出为显示器 ,输入/输出重定向可以改变输入输出 例:输入重定向 mail –s “test” root /etc/passwd; 将/etc/passwd内容邮寄给root用户,如果不用输入重定向,则要手动输入。 例:输出重定向 ls dir.out 上面命令将ls命令的输出保存为文件dir.out。 ls dir.out 上面命令将ls命令的输出追加到文件dir.out。 6)管道。管道用于将一系列的命令连接起来,也就是把前面命令的输出作为后面命令的输入。管道的命令是“|”。管道的功能和用法与DOS/Windows系统的完全相同。

文档评论(0)

1亿VIP精品文档

相关文档