第8章linux操作系统_第1页
第8章linux操作系统_第2页
第8章linux操作系统_第3页
第8章linux操作系统_第4页
第8章linux操作系统_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

第8章vi工具与Shell编程,无论是在linux上进行开发,还是基本操作,几乎都离不开文本,所以文本编辑工具就显得非常重要。linux系统本身提供了很多文本编辑器,其中vi文本编辑工具就是其中之一。,文本文件编辑工具vi,进入vi的命令:vivi文件名vi+n文件名vi+/pattern文件名vi文件名1文件名2文件名n:标识空行,退出vi命令:编辑模式:两个大写的字母Z,即ZZ;功能:存盘并退出;命令模式:q:不存盘退出;w:存盘不退出;w文件名:存在指定文件中,退出;wq!:强制保存并退出;r文件名:读取制定文件内容插入当前文件;n,mw文件名:将指定区间保存到文件。,vi命令模式关系图,进入插入模式的命令:i:在光标所在位置的前面插入;I:在光标所在行的开头插入;a:在光标所在位置的后面插入;A:在光标所在行的结尾插入;o:在光标所在行的下面新建一行插入;O:在光标所在行的上面新建一行插入;,删除文本x:删除当前光标处字符;d命令dh:删除前一个字符dw:删除一个单词dd:删除当前行dG:删除文件结尾前所有行,移动光标插入/编辑模式下:利用键盘上的方向键;命令模式下:l:向右移动h:向左移动k:向上移动j:向下移动,模糊查找?:向文件头方向查找合适的文本;N或n:重复前一个查找命令;/:向文件尾方向查找合适的文本;,精确查找/字符序列:精确查找指定字符序列完全相同的词;/字符序列:查找指定字符序列仅出现在行首的词;/字符序列$:查找指定字符序列仅出现在行尾的词;特殊字符:搜索的字符序列中本身就含有特殊字符,加反斜线屏蔽,取消特殊含义。$特殊功能字符:$通常表示行尾。,替换指定字符r+字符:仅允许替换一个字符,并且操作完成后返回命令模式;R:用输入的字符逐个替换光标处的字符;cw:替换指定字符;C(大写):修改整行之间的文本;:s/oldword/replacement/查找当前行上符合oldword模式的第1个实例并用字符串replacement替换。:n,ms/oldword/replacement/g在指定的行上进行全局替换。,复制与粘贴yw:拷贝光标所在处到字尾的字符;yy:拷贝光标所在行;p:将缓冲区内的字符粘贴到光标所在行下面;P(大写)将文本行粘贴到文件中光标所在行的上面;,vi环境设置查看所有缺省选项:setall更改选项的值:set选项,SHELL脚本,shell的基本知识,shell是一个用户接口,它提供用户要求的服务,用户通过shell与计算机交互,用户不必了解硬件的内部细节。当通过用户名和密码登陆到linux系统后,由shell负责解译及执行用户输入到计算机中的所有命令,直到运行EXIT指令退出系统。shell是一个命令语言解释器,拥有自己一系列的shell指令集,同时shell还能被系统中其他进程所调用。用户使用linux操作系统过程中,在提示符下输入的命令都由shell先解释然后传给linux核心。,shell的种类,Bourneshell(sh)Cshell(csh)KornshellBourneAgainShell(bash)TcshShell(tcsh)RestrictedShell;AShell;ZShell等等可以采用显示“SHEll”环境变量,来确定当前用户使用的SHELL,shell脚本文件,shell脚本就是把一系列linux命令,按照一定的组织格式存储在一个文件中,shell可以读取这个文件并按照规则执行其中的命令,这样的文件就被称为shell脚本文件。shell脚本可以象简单的程序设计一样允许输入/输出、操纵变量(虽然很简单)、控制流程等等。用户宿主目录下的.bash_logout文件就是一个shell脚本文件,看看它的内容,创建shell脚本和创建普通的源程序代码是一样的,可以选择一个方便的文本编辑工具如前面章节的vi命令,然后把设计好的命令序列输入并且保存到一个指定的名字的文件中你可以创建内容只有echo“Hello!”一行的文件,这就是一个简单的shell脚本文件,执行shell脚本文件的方法,1、在命令提示符后键入bash脚本文件名2、先改变脚本文件的权限,增加用户的可执行权限,然后直接键入它的名字来执行,shell脚本文件的内容,注释:和通常的源代码一样,shell脚本也提供注释行的功能,以便用户编写出可读性好的脚本代码。在shell脚本中,通过使用#符号作为注释行的前缀符号,当shell对脚本代码进行解释执行的时候,遇见#符号时,忽略该行的所有内容。,shell脚本文件的内容,变量:在shell脚本中,支持通过变量保存中间值并参与运算和输入输出。但是,在bashshell下,变量不比象一些高级语言(如C)一样显式地被声明(C语言的变量需要显式地先声明才能使用)。shell脚本中的变量,可以在任何时间通过赋值来创建。甚至赋值操作符(=)右边为空也可以。语法:变量名=注意:赋值操作符“=”两边必须不能有空格。,shell脚本文件的内容,变量的引用:在shell脚本的任何位置都可以引用变量。变量的引用符号为$符号,相关的还有定界符号.语法:$variable$variable定界符号是为了区分变量的名字和其他和变量名字结合在一起的字符串来使用的,目的是使得shell解释程序能够准确地识别用户使用的变量。,shell脚本文件的内容,输入变量的值:在编写一些特殊的shell脚本时,有时需要从键盘输入值给脚本干预脚本的运行,这可以使用read命令来实现.语法:$read变量名当脚本执行到read语句时,将等待用户输入一个值给变量。让用户输入一个值并回车后,这个值就被保存在变量中。,shell脚本文件的内容,变量的作用域:变量根据它的可访问范围分为局部变量和全局变量。局部变量:只能在创建这个变量的shell中有效的变量。全局变量:可以由父shell传递值到子shell的变量。,shell脚本文件的内容,数值运算shell不支持数字变量,变量都被作为字符串来处理。但是有时侯是需要使用变量参与数学运算的。shell允许保存数字形式字符串的变量参与模拟数字运算。使用expr命令求值算术表达式。算术展开表达式格式为$(算术表达式),shell脚本文件的内容,命令替换在一个命令中使用多个命令的方法-命令替换。命令替换首先执行被替换的命令,然后执行整个命令。命令替换的方法有两种,1、使用重音符“”的形式;2、使用$()的形式。,shell脚本文件的内容,shell流程控制test和测试命令测试命令对表达式进行测试,求出真(true)或者假(false)的逻辑值。shell脚本可以根据这些测试的结果逻辑值来处理不同的流程测试命令分以下几类测试算术表达式测试字符串表达式测试文件,shell脚本文件的内容,算术测试表达式选项选项含义-eq等于-ne不等于-gt大于-ge大于等于-lt小于-le小于等于,shell脚本文件的内容,字符串测试表达式选项选项含义string如果string的长度不为零则值为true,否则为false-zstring如果string的长度为零,则值为true,否则为falsestring1=string2如果string1与string2相等,则值为true,否则为falsestring1!=string2如果string1与string2不相等,则值为true,否则为false,shell脚本文件的内容,文件测试表达式选项选项含义-eFile如果文件File存在则值为true-sFile如果文件File存在且文件大小大于零,则值为true-fFile如果文件File存在且为普通文件,则值为true-dFile如果文件File存在且为目录文件,则值为true-bFile如果文件File存在且为块文件,则值为true-cFile如果文件File存在且为字符文件,则值为true-LFile如果文件File存在且为符号链接文件,则值为true-rFile如果文件File存在且是可读文件,则值为true-wFile如果文件File存在且是可写文件,则值为true-xFile如果文件File存在且是可执行文件,则值为true-OFile如果文件File存在且属于当前用户,则值为true-GFile如果文件File存在且属于当前用户组,则值为trueFile1ntFile2如果文件File1新于文件File2,则值为trueFile1otFile2如果文件File旧于文件File2,则值为true,shell脚本文件的内容,脚本流程分支结构1、if语句if语句和它的英文含义一样,如果条件成立就执行规定的语句或者语句序列。if的基本使用格式为:if语句的另外一种格式为:ififthenthenfielsefi复杂的if语句,shell脚本文件的内容,case.esac语句当if语句出现的分支比较多的时候,使用if语句使得脚本代码过于冗长而且可读性变差,这时可以使用case.esac语句来实现同样的功能。case语句的使用格式是:caseinvalue1);value2);.valueN);*);esac,shell脚本文件的内容,循环结构可以提供给脚本编写者重复执行某一动作的能力,linux的shell脚本支持循环是通过下面三种构造来实现的。while构造until构造for构造,shell脚本文件的内容,while构造:while循环结构的特点是:先测试条件再执行循环体,只要条件为真时,就执行循环体中的命令序列。当第一次测试条件的时候如果为假,则循环体就被执行了零次。while构造的格式是:whiledodone,shell脚本文件的内容,until构造:until循环构造为循环执行语句序列直到某个条件为真。它的求值模式和while循环相反。until循环构造格式:untildodone,shell脚本文件的内容,shell脚本文件的内容,1.for构造:for构造循环有两种形式。第一种形式的格式为:for(expression1;expression2;expression3)dodone第二种形式的格式为:forVARIABLE_NAMEindodone,shell脚本文件的内容,break和continue命令break命令用语循环体中,它能导致立即结束循环。continue命令用于循环体中,它能导致立即开始新的循环。位于continue命令后的循环体其它语句序列将不被执行。,shell脚本文件的内容,shell脚本的参数和shift命令shell脚本是需要传递参数给它内部进行处理的。如下./test

温馨提示

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

评论

0/150

提交评论