shell脚本学习指南笔记

shell脚本学习指南笔记

ID:962667

大小:606.00 KB

页数:8页

时间:2017-10-22

shell脚本学习指南笔记_第1页
shell脚本学习指南笔记_第2页
shell脚本学习指南笔记_第3页
shell脚本学习指南笔记_第4页
shell脚本学习指南笔记_第5页
资源描述:

《shell脚本学习指南笔记》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、入门Shell脚本最常用于系统管理工作,或者用于结合现有的程序以完成小型、特定的工作。脚本编程语言与编译型语言的差异许多中、大型程序都是编译型语言,如Fortran、Ada、C、C++或者Java(有些特殊)。这类程序只要从源代码(SourceCode)转换成目标代码(ObjectCode)便能直接通过计算机执行。这样的好处是高效,缺点是它们多半运行于底层,处理的是字节、数字或是机器层级的对象,很难进行“将一个目录里所有文件复制到另一个目录中”这类对文件的简单操作。脚本语言通常是解释型(interpreted)的,由解释器(interpreter)读入程

2、序代码,将其转换成内部形式。好处是它们多半运行在比编译型语言高的层次,能够轻易处理文件与目录之类的对象,缺点是效率不如编译型。但是编写更快,而且目前的速度也已经足够快,常用脚本语言有:awk、Perl、Python、Ruby与Shell。Shell的特点有:1.简单性2.可移植性3.开发容易一个简单的脚本who命令可以知道系统有谁登陆,如果有很多用户在登陆,结果会很长,可以使用wc(字数统计)命令,算出行数(line)、字数(word)和字符数(character)。可以使用wc–l,只计算出行数$who

3、wc–l

4、管道符号可以在两个命令之间建立管道(p

5、ipeline):who的输出成为了wc的输入。下面就写一个shell脚本将管道转变成一个独立的命令。其实在Shell中开发周期很类似,先直接在命令行上测试,之后写入到独立的脚本中。第一行的#!当Shell执行一个程序时,要求Unix内核启动一个新的进程(process),在该进程里执行指定的程序。内核知道怎样为编译型程序执行,但Shell是解释型程序,当Shell要求内核执行时,内核无法执行,会回应”notexecutableformatfile”不是可执行的格式文件的错误信息。Shell收到此错误信息时,就会确定不是编译型程序,是Shell脚本,接着

6、会启动一个新的/bin/sh副本来执行该程序。在当前有很多种Shell,需要通过第一行#!来指定用哪个Shell来执行。一般如下:#!解释器地址选项比如标准的Shell脚本:#!/bin/sh8或者独立的awk程序:#!/bin/awk–f这样就表示为是一个awk程序。下面有些陷阱(gotchas)需要注意:1.系统对第一行#!长度是有限制的,从63到1024个字符不等,因此尽量不要超过64个字符2.别在选项之后放置任何空白,因为空白也会跟着选项一起传递给被引用程序3.知道解释器的完整路径,可以用来规避可一直行问题。下面的写法可以避免某种程度的欺骗式攻击

7、(SpoofingAttack)。即添加选项符-,但不添加选项内容#!/bin/sh-Shell元素命令与参数Shell最基本工作就是执行命令。以空白隔开命令行的各个部分。命令行可以有选项option,分号;可用来分割同一行里的多条命令。如果使用的是&符号而不是分号,则Shell将在后台执行其前面的命令,即Shell不用等到该命令完成,就可以继续执行下一个命令。变量Shell里变量值可以是(而且通常是)空值null,即不包含任何字符。变量名以字母或者下划线开头,后面接任意长度的字母、数字或下划线。定义如下:first=hello引用该变量值,前面加上$,

8、如echo$first如果值中含有空格时,需要加上引号。second=Helloworldone当将几个变量连接起来时,需要使用引号:fullname=“$first$second”printf输出echo输出在不同Unix版本之间选项有很大不同。有了printf命令,它模仿C程序库的printf()。语法格式如下:printfstringarguments例子:printf“Thefirstprogramalwaysprints‘%s,%s!’”HelloWorldI/O重定向标准输入(standardinput)、标准输出(standardout

9、put)和标准错误输出(standarderror)。默认情况下,许多Unix程序会读取标准输入、写入标准输出,并将错误信息传递给标准错误输出。这类程序叫做过滤器(filter)。默认的这三类都是终端,通过cat命令可知:8输入cat后,没有指定任何参数,读取标准输入,写入标准输出,当输入hello后,cat返回。a)以<改变标准输入:program

10、使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。