《AIX脚本简介》PPT课件.ppt_第1页
《AIX脚本简介》PPT课件.ppt_第2页
《AIX脚本简介》PPT课件.ppt_第3页
《AIX脚本简介》PPT课件.ppt_第4页
《AIX脚本简介》PPT课件.ppt_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AIXShell脚本简介,主要内容,Shell基础知识环境和变量神奇的$条件与分支循环控制计算,不可显示字符管道与重定向命令和进程常用Shell命令应用实例作业与答案,Shell基础知识,Shell基础知识,一、什么是ShellShell是操作系统与外部最主要的接口Shell是操作系统最外面的一层Shell管理你与操作系统之间的交互Shell基本上是一个命令解释器,Shell基础知识,二、Shell的运行模式交互式Shell如:登录,退出,ftp非交互式Shell如:从文件中获取输入的脚本,Shell基础知识,三、什么是脚本(scripts)ShellScript是放在文件中的一串Shell和操作系统命令,它们可以被重复使用。本质上,ShellScript是命令行命令简单的组合到一个文件里面。例如:.profile文件就是一个脚本在脚本文件中以#开始的行为注释行,Shell基础知识,四、Shell的种类BourneShell包括sh(Bourneshell、POSIXshell)、ksh(Kornshell)和bash(BourneAgainshell)CShell包括csh(Cshell)和tcsh(TENEX/TOPSshell),Shell基础知识,四、Shell的种类BourneShell是最初的UNIXshell由StephenR.Bourne编写创立于20世纪70年代中期ATexportmyvar或exportmyvar=test,一行输入多个命令时需要以;分隔,环境和变量,三、环境变量设置还可以使用seta来指定所有的变量将被输出到环境中,一般只在$HOME/.profile中使用例:setaPATH=/usr/bin;$HOME/binEDITOR=vi,环境和变量,三、环境变量显示与清除显示:echo$VARIABLE-NAMEenv显示所有环境变量清除:unsetVARIABLE-NAME,环境和变量,三、环境变量常用环境变量PATH查询程序的路径变量PS1Shell的主提示符PS2Shell的第二提示符PS3root用户的提示符HOME用户的主目录EDITOR缺省的编辑器PWD当前路径,环境和变量,三、环境变量常用环境变量TERM终端类型LOGNAME登录名IFSshell的缺省域分隔符上次切换路径时的当前路径HOSTNAME主机名称,环境和变量,四、本地变量设置VARIABLE-NAMEVARIABLE-VALUE或$VARIABLE-NAMEVARIABLE-VALUE两边可以有空格如果变量值包含空格则需要用引号括起来”和的意义不同例:var=abc,则”$var”和$var的值应分别为何?,环境和变量,四、本地变量设置var=val设置变量的值var+val如果设置了变量则重新设置其值var:?val如果未设置,则显示未定义错误var?val如果未设置,则显示系统错误var:=val如果未设置变量则设置其值var:-val如果设置了则取其值,否则取指定值,环境和变量,四、本地变量显示与清除显示:echo$VARIABLE-NAMEecho“mynameis:$name”echo$name$ageecho“welcome$name:-Tom”清除:unsetVARIABLE-NAME,环境和变量,四、本地变量只读变量声明一个变量只读readonlyVARIABLE-NAME或readonlyVARIABLE-NAME=VALUE显示所有只读变量直接在命令行执行readonly命令如果试图修改一个只读变量则系统会报错,环境和变量,五、思考题1.如何将变量传递到子shell?2.子shell中修改了父shell导出的变量是否会影响该变量在父shell中的值?3.试图使用一个未声明的变量时是否会出错?4.如何得知一个变量是否被声明了?5.自行了解getopts的用法。,神奇的$,神奇的$,一、变量重分类变量可以分为四类:环境变量本地变量位置变量一般为命令行参数等特定变量如$、$等,神奇的$,二、位置变量可以是命令行参数可以是子shell的参数可以是shell函数的参数位置变量可以有任意多个位置变量用$+数字来引用位置变量只能用09来引用,?,神奇的$,二、位置变量示例执行:args.shonetwothreefour则$0$9如下图所示:,神奇的$,二、位置变量如何使用第10个参数shift可以将所有参数向左移一位刚才的例子在shift一次后,参数如下所示:,神奇的$,三、特定变量$#参数的个数$*所有的参数$同$*,使用时加”可以将每个参数以”括起$脚本运行的当前PID$!后台运行的最后一个进程PID$-显示shell的当前使用选项,同set$?脚本的返回码,一般0表示正常,神奇的$,三、特定变量示例执行:args.shonetwothreefour则:$#为4$*为onetwothreefour$为onetwothreefour”$”为”one”two”three”four”,条件与分支,条件与分支,一、问题的起因判断文件的状态判断变量间或变量与常量是否相等判断数字的大小关系根据不同的条件进行不同的处理增加程序强壮性的方法,条件与分支,二、测试文件状态test测试项文件路径测试项文件路径,注意需要在此处各添加一个空格,-d目录-f文件-L符号连接-r可读权限,-s非空文件-w可写权限-u文件有suid位设置-x可执行权限,条件与分支,二、测试文件状态示例test-rmyfiletest-serr.log-d$mydir-f$mydir/srs.log,条件与分支,三、字符串测试test字符串test测试运算符字符串test字符串测试运算符字符串测试运算符为:=两个字符串是否相等!=两个字符串是否不等-z是否为空串-n是否为非空串,条件与分支,三、字符串测试示例test”abc”=”ABC”-z$EDITOR$PWD!=$HOME”$var1$var2”=”/chenw/lex.sh”,条件与分支,四、数值测试”数值”测试运算符”数值”-eq数值相等-ne数值不相等-gt大于-lt小于-ge大于或等于-le小于或等于如果测试结果满足则返回0,否则返回1($?),条件与分支,四、数值测试示例”$num”-eq”100”101”-ge”100”$num1”ne”$num2”,逻辑分支,五、逻辑操作符号-a逻辑与-o逻辑或;的作用是什么?,case值in模式1)命令1;模式2)命令2;esac,条件与分支,六、逻辑分支case的单值匹配case$choiceinecho”one”;echo”two”;esac,case$choiceinstart)start.sh;stop)stop.sh;esac,case$choiceinA)echo”Alpha”;*)echo”error”;esac,条件与分支,六、逻辑分支case的模式匹配*任意字符?任意单个字符范围内的任意字符|逻辑或操作,条件与分支,case$inputina-zA-Z)echo”小写字母”;0-9)echo”数字”;*)echo“其它字符”;esac,case$inputiny|Y)echo”Yes”;n|N)echo”No”;*)echo“输入错误”;esac,循环控制,循环控制,一、循环的种类shell中循环的控制有三种:for循环until循环while循环shell中的循环均可以嵌套,循环控制,二、for循环for循环使用一个变量名遍历一个列表中的所有值,并对每一个值执行相应的操作,语法如下:for变量in列表do处理过程done,循环控制,二、for循环示例fornumin12345doecho”No.$num”done,numlist=”12345”fornumin$numlistdoecho”No.$num”done,循环控制,二、for循环思考1下面循环的输出结果是什么?fornumin”12345”doecho”No.$num”done,循环控制,二、for循环思考2下面循环执行了什么操作?forargdoecho$argdone,循环控制,三、until循环until执行一系列命令,指导条件为真时停止,测试发生在循环末尾,语法如下:until条件do执行命令doneuntil循环至少会执行一次!,循环控制,三、until循环示例until-f/tmp/err.logdosleep5doneecho”出现错误!”|mailadmin,循环控制,四、while循环while循环用于在满足条件时不断执行指定的命令,条件测试在循环前,语法如下:while条件do执行命令done,循环控制,四、while循环示例whilereadLINEdoecho$LINEdones.txtdone$ABC”abc”思考1:evalecho$A的结果是什么?思考2:三次甚至多次替换是否可行?,ABCabc,计算,四、另一种计算eval示例假设变量ABC=”ls-l”OUT=”/tmp/out.log”则eval$ABCeval$ABC$OUT,相当于执行了ls-l相当于执行了ls-l并将结果输出到了/tmp/out.log,不可显示字符,不可显示字符,一、什么是不可显示字符一般为控制字符一般显示为A-Z,如:A最常见的不可显示字符为:M最容易产生不可显示字符的行为是ftp,不可显示字符,二、如何标识或输入不可显示字符可以用八进制标识不可显示字符:A-001B-002依次类推Z-032可以用手工方法输入:Ctrl+V+字母键,不可显示字符,三、如何替换掉讨厌的不可显示字符结合键盘输入不可显示字符的方法在vi中使用全局替换命令进行替换:1,$s/M/g利用tr命令进行文本替换:catbadfile”015”?”goodfiletr-d”015”goodfile,管道与重定向,管道与重定向,一、输入和输出系统定义的输出和输出共有三个:标准输入(0)键盘标准正常输出(1)屏幕标准错误输出(2)屏幕,管道与重定向,二、读取数据read用于从输入设备读取数据例如:readone输入:areadonetwo输入:abreadonetwothree输入:abcde,管道与重定向,三、显示数据一般有三类方法显示数据echo一般用于直接显示数据或变量值cat一般用于显示文件内容more一般用于分页显示文件内容head显示文件开始的指定行数tail显示文件结尾的指定行数tee可在显示的同时将其输出到一个文件中,管道与重定向,四、什么是管道管道可以将一个命令的输出作为其它的输入管道用|来表示用命令1|命令2的方式来使用管道示例:ls|sortls|tee-a/tmp/filelist.txt,管道与重定向,五、重定向重定向即改变命令的缺省输入或输出方式,改由文件或其它方式来实现。在对标准输入(0)和标准输出(1)进行重定向时可不用指定文件描述符,但对标准错误输出(2)进行重定向时必须指定文件描述符。,管道与重定向,五、重定向文件描述符文件描述符就是用来代表一个文件的数字文件描述符只能使用数字09可以通过exec命令来打开或关闭文件描述符打开:execnumberfilenamecommand1filenamecommand1filename意义:将标准输出重定向到一个文件示例:ls/usr/vacfilelist.txtls/etcfilelist.txt,管道与重定向,五、重定向示例语法:command2filenamecommand2filename意义:将标准错误输出重定向到一个文件示例:ls/usr/vac2filelist.txtls/etc2filelist.txtls-2/dev/null,管道与重定向,五、重定向示例语法:commandfilenamecommandexitendl,管道与重定向,五、重定向思考下面的代码意义是什么?exec3doreadlineecho$linedoneexec0tmpfile实现了什么作用?,常用Shell命令,三、tar用于对指定的文件或目录进行打包或解包最常用的选项:-c创建一个归档-x解开一个归档-v列出每一个处理的文件-f指定归档文件路径-t按照文件在归档中的顺序列出文件示例:tar-cvfmytar.tar/mydir/*tar-xvfmytar.tartar-tvfmytar.tar,思考1:tarcvfmytar.tar./*始终正确么?思考2:当前目录为/tmp/mydir,目录下面有一个tar文件mytar.tar,执行tarxvfmytar.tar后,tar包中的文件被解开并放到了何处?,常用Shell命令,三、head和tail用于显示文本文件的前或后指定行或字节用法:head|tail-c|-nnumberfilename示例:head-10scores.txthead-n10scores.txttail-c100scores.txt特殊用法:tail-fscores.txt,常用Shell命令,四、wc计算文本文件的字节数、字符数、单词数和行数用法:wc-c|-m-l-wfilenamewc-k-c-l-wfilenamec字节数,当于k一起用示标识字符数l行数,w单词数m字符数,不能和k一起用示例:wcscores.txt,常用Shell命令,五、太简单的不用说了cd切换目录compress压缩文件mkdir创建目录uncompress解压缩文件rm删除文件或目录cp拷贝文件ls显示目录内容mv移动文件ln创建连接du显示目录大小cat显示文件内容df显示文件系统大小who显示在线用户pwd显示当前目录kill终止进程logname显示登录用户名,常用Shell命令,六、常用、强大但是比较复杂说不完sed行编辑软件,支持脚本awk在文件中查找与模式匹配的行并执行相应的操作,有丰富的脚本函数grep家族搜索文件中的模式返回匹配行find递归搜索指定目录树,返回满足条件的文件,并可进一步执行相应的操作xargs构造参数列表并执行命令,常用Shell命令,七、简单的几个例子sed”s/中国/中华人民共和国/g”文件.txtawk”/start/,/stop/”controlfile.cfggrep”0-9”r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论