- 1、本文档共180页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章节 Shell编程
第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-c】发出中断信号来中断它(在正常结束之前,中止它的执行)。 当用户准备结束登录对话进程时,可键入logout命令、exit命令或文件结束符(EOF)(按【Ctrl-d】键实现),结束登录。 另外,用户键入有关命令后,如果Shell找不到以其中的命令名为名字的程序,就会给出错误信息。例如,如果用户键入: [root@redhat ~]# 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包括命令行编辑、可编程单词补全、拼写矫正、历史命令替换、作业控制和类似C语言的语法,它提供比Bourne Shell更多的提示符参数。 Korn Shell集合了C Shell和Bourne Shell的优点并且和Bourne Shell完全兼容。Linux系统提供了pdksh(ksh的扩展),它支持任务控制,可以在命令行上挂起、后台执行、唤醒或终止程序。 Bash是大多数Linux系统(包括Red hat linux)的默认Shell。Bash有以下的优点: (1) 补全命令。当你在B
您可能关注的文档
- 第2章节管理学的产生与发展.ppt
- 第2章节:水电厂计算机监控系统的结构与功能.ppt
- 第3章节 图形桌面系统管理.ppt
- 第2章节第二节连续信号的频域分析r1.ppt
- 第3章节 嵌入式Linux C高级用法.ppt
- 第3章节 局域网基础.ppt
- 第3章节 文件系统简介.ppt
- 第3章节 计算机病毒及防治.ppt
- 第3章节 电子商务安全.ppt
- 第3章节 组织20110301.ppt
- 2024年山东旅游职业学院招聘真题.docx
- 《绿色交通政策实施对城市空气质量改善的时空效应分析》教学研究课题报告.docx
- 智慧校园智能学习环境下小学数学深度学习策略与数学思维发展研究教学研究课题报告.docx
- 融合生成式AI的初中数学课堂创新教学模式探究与实践教学研究课题报告.docx
- 高中地理野外实践活动中的地理教学资源整合与创新效果评价实践研究教学研究课题报告.docx
- 基于ARAI技术的初中数学个性化学习资源开发与教学实践教学研究课题报告.docx
- 小暑盛夏营销.pptx
- 2024年山东青岛大学招聘辅导员真题.docx
- 《高中传统文化课程中的创新实践活动设计与实施研究》教学研究课题报告.docx
- 《超声引导下甲状腺结节穿刺活检术在甲状腺结节微创治疗中的并发症监测与干预研究》教学研究课题报告.docx
文档评论(0)