unix脚本总结与应用实例.docx

上传人:b****4 文档编号:5519166 上传时间:2023-05-08 格式:DOCX 页数:122 大小:149.86KB
下载 相关 举报
unix脚本总结与应用实例.docx_第1页
第1页 / 共122页
unix脚本总结与应用实例.docx_第2页
第2页 / 共122页
unix脚本总结与应用实例.docx_第3页
第3页 / 共122页
unix脚本总结与应用实例.docx_第4页
第4页 / 共122页
unix脚本总结与应用实例.docx_第5页
第5页 / 共122页
unix脚本总结与应用实例.docx_第6页
第6页 / 共122页
unix脚本总结与应用实例.docx_第7页
第7页 / 共122页
unix脚本总结与应用实例.docx_第8页
第8页 / 共122页
unix脚本总结与应用实例.docx_第9页
第9页 / 共122页
unix脚本总结与应用实例.docx_第10页
第10页 / 共122页
unix脚本总结与应用实例.docx_第11页
第11页 / 共122页
unix脚本总结与应用实例.docx_第12页
第12页 / 共122页
unix脚本总结与应用实例.docx_第13页
第13页 / 共122页
unix脚本总结与应用实例.docx_第14页
第14页 / 共122页
unix脚本总结与应用实例.docx_第15页
第15页 / 共122页
unix脚本总结与应用实例.docx_第16页
第16页 / 共122页
unix脚本总结与应用实例.docx_第17页
第17页 / 共122页
unix脚本总结与应用实例.docx_第18页
第18页 / 共122页
unix脚本总结与应用实例.docx_第19页
第19页 / 共122页
unix脚本总结与应用实例.docx_第20页
第20页 / 共122页
亲,该文档总共122页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

unix脚本总结与应用实例.docx

《unix脚本总结与应用实例.docx》由会员分享,可在线阅读,更多相关《unix脚本总结与应用实例.docx(122页珍藏版)》请在冰点文库上搜索。

unix脚本总结与应用实例.docx

unix脚本总结与应用实例

HuaweiTechnologiesCo.Ltd.

华为技术有限公司

Confidentialitylevel

密级

Total83pages共83页

Unix脚本编程总结与应用实例

Preparedby

拟制

陈刚

Date

日期

2003-09-23

Reviewedby

评审人

Date

日期

yyyy-mm-dd

Approvedby

批准

Date

日期

yyyy-mm-dd

Authorizedby

签发

Date

日期

yyyy-mm-dd

HuaweiTechnologiesCo.,Ltd.

华为技术有限公司

Allrightsreserved

版权所有XX

RevisionRecord修订记录

Date

日期

RevisionVersion

修订

版本

CRID/DefectID

CR号

SecNo.

修改

章节

ChangeDescription

修改描述

Author

作者

2003-09-23

1.00

initial初稿完成

陈刚35626

2003-10-25

1.01

1.修正有关IP地址等一些错误,调整了章节顺序,扩充了内容。

2.增添了iTELLIN自动安装脚本的一些实例

3.加入大纲层次和页眉页脚

陈刚35626

2004-5-24

1.03

1.在六.杂项中添加了一些例子.

陈刚

……

……

……

……

yyyy-mm-dd

2.00

xxx

x.x.x;y.y.y

revisedxxx修改XXX

1.Xxx

2.Xxx

3....

Name

作者名

DistributionList分发记录

CopyNo.

Holder'sName&Role

持有者和角色

IssueDate

分发日期

1

yyyy-mm-dd

2

yyyy-mm-dd

3

yyyy-mm-dd

4

yyyy-mm-dd

5

yyyy-mm-dd

Catalog目录

RevisionRecord修订记录2

Catalog目录3

Title标题:

Unix脚本编程总结与应用实例8

Keywords关键词:

8

Abstract摘要:

8

Listofabbreviations缩略语清单:

8

命令格式9

一.shell与Unix平台9

二.shell基本知识9

三.grep命令11

四.sed11

五.awk命令11

六.find命令12

七.test命令12

八.expr命令13

九.流程控制语法13

1.if-then-elif-else-fi语句13

4.for语句15

6.while语句16

7.until语句17

8.break及continue18

9.case语句18

十.shell脚本调试19

实例讲解21

一.模式匹配21

1.ls显示所有以hosts.开头的文件21

2.ls显示包含x,y,z字符的所有文件21

二.正则表达式21

1.grep匹配/etc/services文件中以ftp字符串开头的哪些文本行21

2.grep匹配以system文本结尾的行。

21

3.grep匹配仅包含一个#字符的行。

21

4.grep匹配以或者[abc]开头的行21

5.grep匹配以Ftp或者ftp开头的行21

6.grep匹配F或者f以外的字符21

7.grep匹配除大写字符以外的字符21

8.grep匹配以ftp或telnet开头的文本行21

9.grep匹配以ftp开头,后跟0个或多个-agent的文本行21

10.grep匹配以ftp开头,后跟1个或多个-agent的文本行21

11.grep匹配带有数字6,后跟至少3个0的文本行(使用-E启用边界特性)22

12.grep匹配含有(abc)的文本22

13.常用正则表达式举例22

14.grep精确匹配:

在抽取字符串后加\>。

23

15.grep消除大小写:

加入-i选项23

16.特殊字符:

$.‘“*[]^|\+?

23

17.grep判断变量含有[HOST]字符串23

18.grep判断变量含有[xxx]字符串23

19.grep匹配后缀为c,h,j,s,cpp,hpp的文件23

20.使用grep在文件中查找变量23

21.正则表达式语法23

三.sed命令27

1.sed文本的定位方法:

27

2.sed编辑命令27

3.sed打印文件的第二行27

4.sed打印文件的第一到三行27

5.sed打印匹配test的行28

6.sed打印匹配$的行28

7.sed打印最后一行:

$是代表最后一行的特殊字符28

8.sed脚本文件28

9.sed上例中如果将a\改为i:

28\

10.sed上例中如果将a\改为c:

28\

11.sed删除第一行28

12.sed删除第一到第三行28

13.sed删除最后一行28

14.sed替换文本28

15.sed输出到文件,w选项:

28

16.sed从文件读取,r选项:

28

17.sed优势:

28

18.sed常见的一行命令集29

19.sed去掉字串变量前后的空格29

20.sed去除文件count中的前后的空格29

21.sed提取最后一个目录名和程序名30

22.dirname或参数扩展提取目录名30

23.grep,sed获取文件的扩展名31

24.sed获取第n个匹配的行的行号31

四.awk命令31

1.awk字段分隔符:

31

2.awk匹配模式32

3.awk“模式匹配-动作”32

4.awk内部变量32

5.awk用户定义变量32

6.awk算术运算33

7.awk高级算符33

8.awk内部算术函数33

9.awk内置函数33

10.awk的自定义函数34

11.awk的“下一”语句:

35

12.awk中的字符串相加:

35

13.awk的逻辑运算符35

14.awk的逻辑与||、逻辑或&&35

15.awk的FS、OFS和ORS使用:

35

16.awk的sprintf函数的使用36

17.awk的重定向,输出到文件:

36

18.awk删除文件的第一行36

19.awk删除输入行中特定行的换行字符36

20.awk获取输入行中,域的最大个数36

21.awk输出一行超过80个字符的每一行36

22.awk输出至少一个域的所有行。

可用来将一个文档里的所有空白行删除36

23.awk输出范围在0到100之间的7个随机数36

24.awk将所有用户的login名称依照字母的顺序输出36

25.awk将一个文档的总行数输出36

26.awk输出文档的内容时会在每行的最前面输出行号它的功能与'cat-n'类似36

27.awk自定义函数的例子一:

第一个域与第二个域的平方和37

28.awk的split、数组、注释37

29.awk打印传入字符串的第n个分隔域。

37

30.在awk中使用shell中的变量37

31.在某个目录下查找包含特定字符串的文件。

返回文件名称39

五.其它命令39

1.eval命令:

可用于动态生成和执行代码39

2.exitn:

退出40

3.export导出环境变量:

41

4.shift命令:

41

5.shell的参数扩展:

41

6.<<即时文档42

7.sh调试选项42

8.time命令测试一个程序执行时间42

9.expr命令42

10.if语句判断变量是否为某个值(防止空串)43

11.nm命令察看一下xxx.o文件中是否有多个相同名字的函数43

12.ps、grep和awk显示属于某个用户的所有进程(并杀死)43

13.touch命令43

14.touch与make联合使用强制编译44

15.dd命令传送文件44

16.talk命令44

17.ps命令44

18.rm指令44

19.find命令44

21.rusers命令45

22.cal命令45

23.tty命令45

24.banner命令45

25.find命令45

26.cut命令45

27.paste命令46

28.rm命令47

29.mkdir命令47

30.cat命令48

32.groupadd和mkgroup命令48

33.ln命令48

34.su命令49

35.setenv命令49

36.repeat命令49

37.getopts命令49

38.sort命令50

38.kill命令和trap命令50

39.操作系统和数据库检查(IBM)

(一):

检查核心参数的配置51

40.操作系统和数据库检查(IBM)

(二):

检查时区的配置52

41.操作系统和数据库检查(IBM)(三):

检查硬件错误52

42.操作系统和数据库检查(IBM)(四):

检查硬盘错误52

43.操作系统和数据库检查(IBM)(五):

检查交换区的使用情况52

44.操作系统和数据库检查(IBM)(六):

检查内存的使用情况52

45.操作系统和数据库检查(IBM)(七):

检查系统的运行情况52

46.操作系统和数据库检查(IBM)(八):

检查文件系统的使用情况52

47.操作系统和数据库检查(IBM)(九):

检查文件系统的属性53

48.操作系统和数据库检查(IBM)(十):

HACMP检查53

49.操作系统和数据库检查(IBM)(十一):

检查数据库的DR状态53

50.操作系统和数据库检查(IBM)(十二):

检查数据库的运行状态54

51.操作系统和数据库检查(IBM)(十三):

数据库检查55

52.操作系统和数据库检查(IBM)(十四):

检查数据库的运行日志55

53.fsck命令55

54.useradd和mkuser命令56

54.exec命令56

54.tr命令56

六.杂项57

1.setenvPATH和setpath=(....)57

2.awk中输出单引号57

3.awk或read找出文件行字符数大于80的行57

4.shell脚本程序中的用户切换:

57

5.shell中删除文件且不显示输出信息和出错信息58

6.shell变量赋初值时存在特殊字符58

7.sed的参数串中存在/特殊字符58

8.find在一个目录下找包含一个字符串的所有文件58

9.shell中确定一个文件的存在,文件ins_billdb58

10.read的参数与实际域的个数不同58

11.grep获取主机名和IP地址59

12.grep确定变量不是数字60

13.确定字符串是否是ip地址60

15.grep和awk列出某个目录下的一级子目录61

16.用printf将一个数打印成逗号分隔的形式61

17.iTELLIN示例一:

在ksh中使用数组62

18.iTELLIN示例二:

从文件中读取参数:

63

19.iTELLIN示例三:

包含其它脚本文件64

20.iTELLIN示例四:

初始化一个临时文件供使用65

21.iTELLIN示例五:

分解字符串65

22.iTELLIN示例六:

替换配置文件中的值66

24.iTELLIN示例八:

用另外的文件作为函数库67

25.iTELLIN示例九:

解压缩文件到一个目录68

26.iTELLIN示例十:

判断操作是否成功70

27.iTELLIN示例十一:

封装创建一个组的函数71

28.iTELLIN示例十二:

封装创建一个用户的函数72

29.iTELLIN示例十三:

判断一个字符串是否是正整数74

30.iTELLIN示例十四:

判断当前用户是否有root权限75

31.iTELLIN示例十五:

判断一个字符串是否是整数75

32.iTELLIN示例十六:

删除某个文件夹下若干天以来未改动的文件76

33.各种Unix环境对ksh的影响:

76

34.set使用注意点:

77

35.判断对端节点的文件是否存在:

77

36.awk的split函数的使用:

77

37.统计字符串在文件中出现的次数:

77

38.如何进行精确匹配:

81

Title标题:

Unix脚本编程总结与应用实例

Keywords关键词:

unix,shell,正则表达式,匹配

Abstract摘要:

本文描述unixshell的各种应用实例。

本文搜集整理常用的shell应用实例,以例子详述unixshell部分命令的使用,着重于正则表达式以及grep、sed、awk等命令,涵盖业务开发中需要使用到的unixshell编程命令,供查阅或者自测使用,面向对象为已经具备脚本编程基础的开发人员。

注:

文中大部分表达式在sco-unixunixware7下使用sh测试通过,有些规则或表达式不能通过测试或结果不正确,在本文档中使用红色波浪下划线将其标出,使用时应注意验证其在不同shell下的表现。

本文不是命令手册,所以除部分命令如grep、sed、awk外,本文不详述讲述命令的各个参数,查看命令参数请使用man命令,本文着重于以实际例子讲述命令特征。

Listofabbreviations缩略语清单:

abbreviations缩略语

Description描述

命令格式

一.shell与Unix平台

Unix平台

shell

FreeBSD3.4

/bin/sh

SGIIPIX6.5

/sbin/sh

HUPX-11

usr/bin/sh

UnixWare7

$SHELL或/bin/sh

Solaris8(固有的)

/usr/bin/sh

Solaris8(标准的)

/usr/bin/ksh

IBMAIX4.3

/usr/bin/sh

IBMAIX4.3(可信的)

/usr/bin/tsh

Linux

/bin/sh

二.shell基本知识

脚本参数:

shell脚本参数可以任意多,但只有前9各可以被访问,使用shift命令可以改变这个限制。

参数从第一个开始,在第九个结束。

$0程序名字

$n第n个参数值,n=1..9

$*所有命令行参数

$@所有命令行参数,如果它被包含在引号里,形如”$@”,则每个参数也各自被引号包括

$#命令行参数个数

$$当前进程的进程ID(PID)

$!

最近后台进程的进程ID

$?

最近使用命令的退出状态

其他参数:

$CDPATH包含一系列目录名,cd命令对他们诸葛进行搜索来查找作为参数传递给它的目录;如果该变量未设置,cd命令搜索当前目录

$EDITOR程序(如e-mail程序)里使用的默认编辑器

$ENVUNIX查找配置文件的路径

$HOME用户初次登录时的起始目录名

$MAIL用户的系统邮箱文件的名称

$MAILCHECKshell检查用户邮箱是否有新邮件并将结果通知用户的间隔时间(以秒为单位)

$PATH包含用户的搜索路径的变量—shell用来搜索外部命令或程序的目录

$PPID父进程的进程ID

$PS1系统第一个提示符,一般为$

$PS2系统第二个提示符,一般为>

$PWD当前工作目录的名称

$TERM用户的控制终端的类型.

$LINENO所在的代码行,一般用来输出错误行号

shift[n]将命令行参数往左移n位,但$0不变

export变量名表将变量名表所列变量传递给子进程

read变量名表从标准输入读字符串,传给指定变量

echo变量名表将变量名表指定的变量显示到标准输出

set显示设置变量

env显示目前所有变量

set命令可以重新设定参数表.如sethellowold命令会设定$*为字符串helloworld,$n和$#也同时受影响。

shift命令可以将所有参数左移一个单位,$*、$n、$#均受影响。

数组(在sh中不支持,可以在ksh中使用):

${#varlist[@]}数组元素个数

${datalist[index]}数组元素

${#datalist[index]}数组元素长度

执行命令:

1)command:

直接执行命令command

2)shcommand:

启动一个shellprocess执行命令command

3).command:

在本process中执行命令command

4)execcommand:

本Script将会被所执行的命令所取代,当这个命令执行完毕之後,本Script也会随之结束。

echo命令使用的特殊字符

\b退格

\c显示新行,但是不把光标移到下一行

\f换页

\n换行(光标移到下一行)

\r回车

\t水平制表符

\v垂直制表符

\\反斜杠

\ONASCII码为八进制数N的字符

set命令:

把各位置参数的值依次设为”argument-list”里指定的参数,即重新设置$*,$@,$1-$9

如:

set“hello”“world”

则$*和$@都变成helloworld

$1为hello

$2为world

三.grep命令

搜索文本的匹配内容。

格式:

grep[-option]pattern[filename]

选项:

-c只输出匹配行的计数

-i不区分大小写(只适用于单字符)

-h查询多文件时不显示文件名

-l查询多文件时只输出包含匹配字符的文件名

-n显示匹配行及行号

-s不显示不存在或无匹配文本的错误信息

-v显示不包括匹配文本的所有行

四.sed

查找和编辑文本。

格式:

(1)直接键入命令

sed[-option]command_linefilename

(2)将sed命令插入脚本文件,然后调用sed

sed[-option]-fprogram_filefilename

(3)将sed命令插入脚本文件,并使脚本可执行

sedprogram_file[-option]filename

选项:

n不打印;sed不把编辑行写到标准输出,默认为打印所有行(编辑的和未编辑的)。

p命令可以用来打印编辑行。

c下一个命令是编辑命令。

在使用多项编辑时要加入该选项。

f如果正在调用sed脚本,要使用此选项。

此选项sed脚本支持所有的sed命令。

 

五.awk命令

awk是一种程序语言,对于资料的处理具有很强的功能,对于文档里的资料做修改、比较、抽取等处理,awk能够以很短的程序轻易地完成。

如果使用C语言写程序完成上述的操作不方便且很花费时间,所写的程序也会很大。

awk能够依照用户定义的格式来分解输入的资料也可以依照用户定义的格式来打印资料。

awk可用于在对象文件中逐行读取记录,按照命令中定义的匹配模式寻找相关记录,然后对该记录进行操作动作。

格式:

(1)直接键入命令:

awk[-Fchar]‘command_line’filename

(2)将awk命令插入脚本文件,然后调用awk:

awk-fprogram_filefilename

前一种形式的-Fchar确定间隔符,command_line为操作动作,filename为对象文件。

后一种形式的program_file是指用户按一定格式编制好的对对象文件的匹配与操作。

六.find命令

通过文件名或其它特征查找文件。

格式:

find[path-list][predicate-list]

选项:

-typetp文件类型为tp:

b块特别文件

c字符设备特别文件

d目录文件

f普通文件

p管道文件(FIFO)

ssocket

I符号链接文件

-useruname文件属于用户uname。

-groupgname文件属于组gname。

-sizen文件是n块大小(每块512字节),若n后跟一个c,单位为字节。

-atimen在n天内已访问过此文件。

-mtimen在n天内已修改过此文件

-ctimen在n天内文件被修改、属性(拥有者、组、链接数等)被修改。

-execcommand{}\;执行命令

-print打印当前路径名

-newerfile修改时间比file文件晚

七.test命令

命令格式

testexpression

expression中包含一个以上的判断准则以作为test评诂的标准。

两准则间用"-a"代表逻辑AND运算,"-o"代表逻辑OR运算,而在准则前放置一"!

"代表NOT运算。

如果没有括号,则优先权则为"!

">"-a">"-o"。

和expr命令相同,相使用左右括号时,必须在其前面加上"\"。

以下是有关准则的叙述(符合叙述时传回真,否则传回伪):

stringstring不为空白字串

-nstringstring的长度大於0

-zstringstring的长度等於0

string1=string2string1等於string2

string1!

=string2string1不等於string2

int1-gtint2int1大於int2

int1-geint2int1大於等於int2

int1-eqint2int1等於int2

int1-neint2int1不等於int2

int1-leint2int1小於等於int2

int1-ltint2int1小於int2

-rfilename档案可读取

-wfilename档案可写入

-xfilename档案可执行

-ffilename档案为一般档

-dfilename档案为目录

-sfilename档案为非空的一般档

test-r"$filename"-a-s"$filename"

八.expr命令

命令格式

exprexpression

expression是由字串以及运算子所组成,每个字串或是运算子之间必须用空白隔开。

下表是运算子的种类及功能,而优先顺序则以先後次序排列,可以利用小括号来改变运算的优先次序。

其运算结果则输出至标准输出上。

:

字串比较。

比较的方式是以两字串的第一个字母

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2