shell高编程.doc

  1. 1、本文档共583页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
shell高编程

shell是一个命令解释器.是介于操作系统kernel与用户之间的一个绝缘层.准确地说,它也是一 一种强力的计算机语言.一个shell程序,被称为一个脚本,是一种很容易使用的工具,它可以通过将系统调用,公共程序,工具,和编译过的二进制程序粘合在一起来建立应用.事实上,所有的UNIX命令和工具再加上公共程序,对于shell脚本来说,都是可调用的.如果这些你还觉得不够,那么shell内建命令,比如test与循环结构,也会给脚本添加强力的支持和增加灵活性.Shell脚本对于管理系统任务和其它的重复工作的例程来说,表现的非常好,根本不需要那些华而不实的成熟紧凑的程序语言. 对于任何想适当精通一些系统管理知识的人来说,掌握shell脚本知识都是最基本的,即使这些人可能并不打算真正的编写一些脚本.想一下Linux机器的启动过程,在这个过程中,必将运行/etc/rc.d目录下的脚本来存储系统配置和建立服务.详细的理解这些启动脚本对于分析系统的行为是非常重要的,并且有时候可能必须修改它. 学习如何编写shell脚本并不是一件很困难的事,因为脚本可以分为很小的块,并且相对于shell 特性的操作和选项[1]部分,只需要学习很小的一部分就可以了.语法是简单并且直观的,编写脚 本很像是在命令行上把一些相关命令和工具连接起来,并且只有很少的一部分规则需要学习. 绝大部分脚本第一次就可以正常的工作,而且即使调试一个长一些的脚本也是很直观的. 一个shell脚本是一个类似于小吃店的(quick and dirty)方法,在你使用原型设计一个复杂的 应用的时候.在工程开发的第一阶段,即使从功能中取得很有限的一个子集放到shell脚本中来 完成往往都是非常有用的.使用这种方法,程序的结果可以被测试和尝试运行,并且在处理使用 诸如C/C++,Java或者Perl语言编写的最终代码前,主要的缺陷和陷阱往往就被发现了. Shell脚本遵循典型的UNIX哲学,就是把大的复杂的工程分成小规模的子任务,并且把这些部件和工具组合起来.许多人认为这种办法更好一些,至少这种办法比使用那种高\大\全的语言更美,更愉悦,更适合解决问题.比如Perl就是这种能干任何事能适合任何人的语言,但是代价就是你需要强迫自己使用这种语言来思考解决问题的办法. 什么时候不使用Shell脚本 资源密集型的任务,尤其在需要考虑效率时(比如,排序,hash等等) 需要处理大任务的数学操作,尤其是浮点运算,精确运算,或者复杂的算术运算 (这种情况一般使用C++或FORTRAN来处理) 有跨平台移植需求(一般使用C或Java) 复杂的应用,在必须使用结构化编程的时候(需要变量的类型检查,函数原型,等等) 对于影响系统全局性的关键任务应用。 对于安全有很高要求的任务,比如你需要一个健壮的系统来防止入侵,破解,恶意破坏等等. 项目由连串的依赖的各个部分组成。 需要大规模的文件操作 需要多维数组的支持 需要数据结构的支持,比如链表或数等数据结构 需要产生或操作图形化界面GUI 需要直接操作系统硬件 需要I/O或socket接口 需要使用库或者遗留下来的老代码的接口 私人的,闭源的应用(shell脚本把代码就放在文本文件中,全世界都能看到) 如果你的应用符合上边的任意一条,那么就考虑一下更强大的语言吧--或许是Perl,Tcl,Python, Ruby -- 或者是更高层次的编译语言比如C/C++,或者是Java.即使如此,你会发现,使用shell 来原型开发你的应用,在开发步骤中也是非常有用的. 第2章 带着一个Sha-Bang出发(Sha-Bang指的是#!) ============================================== 在一个最简单的例子中,一个shell脚本其实就是将一堆系统命令列在一个文件中.它的最基本的用处就是,在你每次输入这些特定顺序的命令时可以少敲一些字. Example 2-1 清除:清除/var/log下的log文件 1 # Cleanup 2 # 当然要使用root身份来运行这个脚本 3 4 cd /var/log 5 cat /dev/null messages 6 cat /dev/null wtmp 7 echo Logs cleaned up. 这根本就没什么稀奇的, 只不过是命令的堆积, 来让从console或者xterm中一个一个的输入命令更方便一些.好处就是把所有命令都放在一个脚本中,不用每次都敲它们.这样的话,对于特定的应用来说,这个脚本就很容易被修改或定制. Example 2-2 清除:一个改良的清除脚本 1 #!/bin/bash 2 # 一个Bash脚本的正确的开头部分. 4 # Cleanup

您可能关注的文档

文档评论(0)

woaitiantian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档