19027008.doc Confidentiality level 密级
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.setenv PATH和set path = (....) ......................................................................................... 57 2.awk中输出单引号 ........................................................................................................... 57 3.awk或read找出文件行字符数大于80的行 ..................................................................... 57 4.shell脚本程序中的用户切换: ....................................................................................... 57 5.shell中删除文件且不显示输出信息和出错信息 ........................................................... 58 6.shell变量赋初值时存在特殊字符 ................................................................................... 58 7.sed的参数串中存在/特殊字符 ........................................................................................ 58
All rights reserved 版权所有,侵权必究
Page 6 , Total 83 第6页,共83页
19027008.doc Confidentiality level 密级
8.find在一个目录下找包含一个字符串的所有文件 ........................................................ 58 9.shell中确定一个文件的存在,文件ins_billdb ............................................................... 58 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
All rights reserved 版权所有,侵权必究
Page 7 , Total 83 第7页,共83页
19027008.doc Confidentiality level 密级
Title 标 题:Unix 脚本编程总结与应用实例
Keywords 关键词:
unix,shell,正则表达式,匹配
Abstract 摘 要:
本文描述unix shell的各种应用实例。本文搜集整理常用的shell应用实例,以例子详述unix shell部分命令的使用,着重于正则表达式以及grep、sed、awk等命令,涵盖业务开发中需要使用到的unix shell编程命令,供查阅或者自测使用,面向对象为已经具备脚本编程基础的开发人员。 注:
文中大部分表达式在sco-unix unixware 7下使用sh测试通过,有些规则或表达式不能通过测试或结果不正确,在本文档中使用红色波浪下划线将其标出,使用时应注意验证其在不同shell下的表现。
本文不是命令手册,所以除部分命令如grep、sed、awk外,本文不详述讲述命令的各个参数,查看命令参数请使用man命令,本文着重于以实际例子讲述命令特征。
List of abbreviations 缩略语清单:
abbreviations缩略语 Description 描述 All rights reserved 版权所有,侵权必究
Page 8 , Total 83 第8页,共83页
19027008.doc Confidentiality level 密级
命令格式
一.shell与Unix平台
Unix平台 FreeBSD3.4 SGI IPIX6.5 HUPX-11 UnixWare 7 Solaris 8 (固有的) Solaris 8 (标准的) IBM AIX 4.3 IBM AIX 4.3 (可信的) Linux
二.shell基本知识
脚本参数:
shell脚本参数可以任意多,但只有前9各可以被访问,使用shift命令可以改变这个限制。参数从第一个开始,在第九个结束。
$0 程序名字
$n 第n个参数值,n=1..9 $* 所有命令行参数
$@ 所有命令行参数,如果它被包含在引号里,形如”$@”,则每个参数也各自被引号包括
$# 命令行参数个数 $$ 当前进程的进程ID(PID) $! 最近后台进程的进程ID $? 最近使用命令的退出状态
其他参数:
$CDPATH 包含一系列目录名,cd命令对他们诸葛进行搜索来查找作为参数传递给$EDITOR 程序(如e-mail程序)里使用的默认编辑器 $ENV
UNIX查找配置文件的路径
$HOME 用户初次登录时的起始目录名 $MAIL 用户的系统邮箱文件的名称
$MAILCHECK shell检查用户邮箱是否有新邮件并将结果通知用户的间隔时间(以秒为单位)
$PATH 包含用户的搜索路径的变量—shell用来搜索外部命令或程序的目录
$PPID 父进程的进程ID $PS1
系统第一个提示符,一般为$
Page 9 , Total 83 第9页,共83页
shell /bin/sh /sbin/sh usr/bin/sh $SHELL或/bin/sh /usr/bin/sh /usr/bin/ksh /usr/bin/sh /usr/bin/tsh /bin/sh 它的目录;如果该变量未设置,cd命令搜索当前目录
All rights reserved 版权所有,侵权必究
19027008.doc Confidentiality level 密级
$PS2 系统第二个提示符,一般为> $PWD
当前工作目录的名称
所在的代码行,一般用来输出错误行号
将命令行参数往左移n位,但$0不变
$TERM 用户的控制终端的类型. $LINENO shift [n]
export 变量名表 将变量名表所列变量传递给子进程 read 变量名表 从标准输入读字符串,传给指定变量 echo set env
变量名表 将变量名表指定的变量显示到标准输出 显示设置变量 显示目前所有变量
set命令可以重新设定参数表.如set hello wold命令会设定$*为字符串hello world,$n和$#也同时受影响。
shift命令可以将所有参数左移一个单位,$*、$n、$#均受影响。
数组(在sh中不支持,可以在ksh中使用):
${#varlist[@]}
数组元素个数 数组元素
${datalist[index]}
执行命令:
1) command :直接执行命令command
2) sh command:启动一个shell process执行命令command 3) . command:在本process中执行命令command
4) exec command:本Script将会被所执行的命令所取代,当这个命令执行完毕之後,
本Script也会随之结束。
echo 命令使用的特殊字符
\\b \\c \\f \\n \\r \\t \\v \\\\ \\ON
退格
显示新行,但是不把光标移到下一行 换页
换行(光标移到下一行) 回车 水平制表符 垂直制表符 反斜杠
ASCII码为八进制数N的字符
${#datalist[index]} 数组元素长度
set命令:
把各位置参数的值依次设为‖argument-list‖里指定的参数,即重新设置$*,$@,$1-$9
如: set ―hello‖ ―world‖ 则 $*和$@都变成 hello world $1为hello
Page 10 , Total 83 第10页,共83页
All rights reserved 版权所有,侵权必究
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库unix脚本总结与应用实例 - 图文(2)在线全文阅读。
相关推荐: