- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 Shell编程 7.1 Shell的基本概念 7.2 Shell语法 7.3 正则表达式 7.4 Shell编程综合实例 习题 7.1 Shell的基本概念 7.1.1 Shell的概念 Shell是一个命令语言解释器,它拥有自己内建的Shell命令集,Shell也能被系统中其他应用程序调用。用户在提示符下输入的命令都由Shell解释后传给Linux核心。Shell、用户及Linux操作系统内核之间关系如图7-1所示。 有一些命令(比如改变工作目录命令cd)是包含在Shell内部的。还有一些命令(例如拷贝命令cp和移动命令rm)是存在于文件系统中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在Shell内部还是一个单独的程序。 Shell接到用户输入的命令后首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如ls和rm,也可以是购买的商业程序,如xv,或者是自由软件,如emacs)。然后,Shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。Shell对命令的解释过程如图7-2所示。 Shell的另一个重要特性是它自身就是一个解释型的程序设计语言。Shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。Shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个执行的Shell程序中。 当普通用户成功登录后,系统将执行一个称为Shell的程序。正是Shell进程提供了命令行提示符。作为默认值,对普通用户用“$”作提示符,对超级用户(root)用“#”作提示符。 一旦出现了Shell提示符,就可以键入命令名称及命令所需要的参数。Shell将执行这些命令。如果一条命令花费了很长的时间来运行,或者在屏幕上产生了大量的输出,可以在键盘上按【Ctrl-d】发出中断信号来中断它(在正常结束之前,中止它的执行)。 当用户准备结束登录对话进程时,可以键入logout命令、exit命令或文件结束符(EOF)(按【Ctrl-d】实现),结束登录。 下面的例子显示了Shell如何来工作: [root@redflag /root]#cal 3 2003 三月 2003 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [root@redflag /root]# 另外,用户键入有关命令后,如果Shell找不到以其中的命令名为名字的程序,就会给出错误信息。例如,如果用户键入: [root@redflag /root]#mytest bash:mytest:command not found 此时可以看到,用户得到了一个没有找到该命令的错误信息,这样的错误信息一般出现在用户输入错误命令时。 7.1.2 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中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。 C Shell是一种比Bourne Shell更适于编程的Shell,它的语法与C语言很相似。Linux为喜欢使用C Shell的人员提供了Tcsh。Tcsh是C Shell的一个扩展版本。Tcsh包
您可能关注的文档
- Linux操作系统( 第二版) 高职应用技术专业 吉书朋 第3章 图形化界面和命令行界面.ppt
- Linux操作系统( 第二版) 高职应用技术专业 吉书朋 第4章 文件系统与文件管理.ppt
- Linux操作系统( 第二版) 高职应用技术专业 吉书朋 第5章 用户和组的管理.ppt
- Linux操作系统( 第二版) 高职应用技术专业 吉书朋 第6章 其他系统管理任务及编程.ppt
- Linux操作系统( 第二版) 高职应用技术专业 吉书朋 第7章 网络服务管理.ppt
- Linux操作系统( 第一版) 高职高职应用技术专业 Linux操作系统4 8章.ppt
- Linux操作系统案例教程 教学课件 作者 彭英慧 第1章 linux 简介.ppt
- Linux操作系统案例教程 教学课件 作者 彭英慧 第2章 系统安装.ppt
- Linux操作系统案例教程 教学课件 作者 彭英慧 第3章 文件管理.ppt
- Linux操作系统案例教程 教学课件 作者 彭英慧 第4章 文本编辑器.ppt
- linux操作系统实用教程 梁广民 第8章 网络文件系统NFS.ppt
- linux操作系统实用教程 梁广民 第9章 动态主机配置协议DHCP.ppt
- linux操作系统实用教程 梁广民 第10章 Samba.ppt
- linux操作系统实用教程 梁广民 第11章 域名系统.ppt
- linux操作系统实用教程 梁广民 第12章 Apache.ppt
- linux操作系统实用教程 梁广民 第13章 FTP.ppt
- linux操作系统实用教程 梁广民 第14章 防火墙.ppt
- linux操作系统实用教程 梁广民 封面.ppt
- Linux操作系统项目化教程 教学课件 作者 978 7 302 30884 3 任务1 选择网络操作系统.ppt
- Linux操作系统项目化教程 教学课件 作者 978 7 302 30884 3 任务2 安装Debian Linux系统.ppt
文档评论(0)