Shell脚本学习指南笔记参照.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
入门 Shell 脚本最常用于系统管理工作,或者用于结合现有的程序以完成小型、特定的工作。 脚本编程语言与编译型语言的差异 许多中、大型程序都是编译型语言,如 Fortran 、Ada 、C、 C++ 或者 Java (有些特殊)。这类程序只 要从源代码( Source Code)转换成目标代码( Object Code )便能直接通过计算机执行。这样的好处是 高效,缺点是它们多半运行于底层,处理的是字节、数字或是机器层级的对象,很难进行“将一个目录 里所有文件复制到另一个目录中”这类对文件的简单操作。 脚本语言通常是解释型( interpreted )的,由解释器( interpreter )读入程序代码,将其转换成内部 形式。 好处是它们多半运行在比编译型语言高的层次, 能够轻易处理文件与目录之类的对象, 缺点是效 率不如编译型。但是编写更快,而且目前的速度也已经足够快,常用脚本语言有: awk 、Perl、Python 、 Ruby 与 Shell。Shell 的特点有: 1. 简单性 2. 可移植性 3. 开发容易 一个简单的脚本 who 命令可以知道系统有谁登陆,如果有很多用户在登陆,结果会很长,可以使用 wc( 字数统计 ) 命令,算出行数 (line) 、字数 (word) 和字符数 (character) 。可以使用 wc –l ,只计算出行数 $ who | wc –l | 管道符号可以在两个命令之间建立管道( pipeline ):who 的输出成为了 wc 的输入。下面就写一 个 shell 脚本将管道转变成一个独立的命令。 其实在 Shell 中开发周期很类似,先直接在命令行上测试,之后写入到独立的脚本中。 第一行的 #! 当 Shell 执行一个程序时,要求 Unix 内核启动一个新的进程( process),在该进程里执行指定的程 序。内核知道怎样为编译型程序执行,但 Shell 是解释型程序,当 Shell 要求内核执行时,内核无法执 行,会回应 ”not executable format file ”不是可执行的格式文件的错误信息。 Shell 收到此错误信息时,就 会确定不是编译型程序,是 Shell 脚本,接着会启动一个新的 /bin/sh 副本来执行该程序。 在当前有很多种 Shell,需要通过第一行 #! 来指定用哪个 Shell 来执行。一般如下: #! 解释器地址 选项 比如标准的 Shell 脚本: #! /bin/sh 1 或者独立的 awk 程序: # ! /bin/awk –f 这样就表示为是一个 awk 程序。 下面有些陷阱( gotchas )需要注意: 1. 系统对第一行 # !长度是有限制的,从 63 到 1024 个字符不等,因此尽量不要超过 64 个字符 2. 别在选项之后放置任何空白,因为空白也会跟着选项一起传递给被引用程序 3. 知道解释器的完整路径,可以用来规避可一直行问题。 下面的写法可以避免某种程度的欺骗式攻击( Spoofing Attack )。即添加选项符 -,但不添加选项内 容 #! /bin/sh - Shell 元素 命令与参数 Shell 最基本工作就是执行命令。以空白隔开命令行的各个部分。命令行可以有选项 option ,分号 ; 可用来分割同一行里的多条命令。如果使用的是 符号而不是分号,则 Shell 将在后台执行其前面的命 令,即 Shell 不用等到该命令完成,就可以继续执行下一个命令。 变量 Shell 里变量值可以

您可能关注的文档

文档评论(0)

ll17770603473 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档