Linux操作系统实用教程教学课件作者赵清晨李同芳第8章节课件

上传人:E**** 文档编号:91288292 上传时间:2019-06-27 格式:PPT 页数:43 大小:81.50KB
返回 下载 相关 举报
Linux操作系统实用教程教学课件作者赵清晨李同芳第8章节课件_第1页
第1页 / 共43页
Linux操作系统实用教程教学课件作者赵清晨李同芳第8章节课件_第2页
第2页 / 共43页
Linux操作系统实用教程教学课件作者赵清晨李同芳第8章节课件_第3页
第3页 / 共43页
Linux操作系统实用教程教学课件作者赵清晨李同芳第8章节课件_第4页
第4页 / 共43页
Linux操作系统实用教程教学课件作者赵清晨李同芳第8章节课件_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《Linux操作系统实用教程教学课件作者赵清晨李同芳第8章节课件》由会员分享,可在线阅读,更多相关《Linux操作系统实用教程教学课件作者赵清晨李同芳第8章节课件(43页珍藏版)》请在金锄头文库上搜索。

1、第8章 vi工具与Shell编程,无论是在linux上进行开发,还是基本操作,几乎都离不开文本,所以文本编辑工具就显得非常重要。linux系统本身提供了很多文本编辑器,其中vi文本编辑工具就是其中之一。,文本文件编辑工具vi,进入vi的命令: vi vi 文件名 vi +n 文件名 vi +/pattern 文件名 vi 文件名1 文件名2 文件名n :标识空行,退出vi命令: 编辑模式: 两个大写的字母Z,即ZZ; 功能:存盘并退出; 命令模式: q :不存盘退出; w :存盘不退出; w 文件名 :存在指定文件中,退出; wq! :强制保存并退出; r 文件名 :读取制定文件内容插入当前文

2、件; n,m w 文件名 :将指定区间保存到文件。,vi命令模式关系图,进入插入模式的命令: i :在光标所在位置的前面插入; I :在光标所在行的开头插入; a :在光标所在位置的后面插入; A:在光标所在行的结尾插入; o :在光标所在行的下面新建一行插入; O :在光标所在行的上面新建一行插入;,删除文本 x:删除当前光标处字符; d命令 dh :删除前一个字符 dw :删除一个单词 dd :删除当前行 dG :删除文件结尾前所有行,移动光标 插入/编辑模式下: 利用键盘上的方向键; 命令模式下: l :向右移动 h :向左移动 k :向上移动 j :向下移动,模糊查找 ?:向文件头方向

3、查找合适的文本; N 或n :重复前一个查找命令; / :向文件尾方向查找合适的文本;,精确查找 /字符序列 :精确查找指定字符序列完全相同的词; /字符序列 :查找指定字符序列仅出现在行首的词; /字符序列$ :查找指定字符序列仅出现在行尾的词; 特殊字符 :搜索的字符序列中本身就含有特殊字符,加反斜线屏蔽,取消特殊含义。 $特殊功能字符 :$ 通常表示行尾。,替换指定字符 r+字符 :仅允许替换一个字符,并且操作完成后返回命令模式; R :用输入的字符逐个替换光标处的字符; cw :替换指定字符; C(大写) :修改整行之间的文本; :s/oldword/replacement/ 查找当前

4、行上符合oldword模式的第1个实例并用字符串 replacement替换。 :n,m s/oldword/replacement/g 在指定的行上进行全局替换。,复制与粘贴 yw :拷贝光标所在处到字尾的字符; yy:拷贝光标所在行; p:将缓冲区内的字符粘贴到光标所在行下面; P(大写) 将文本行粘贴到文件中光标所在行的上面;,vi环境设置 查看所有缺省选项:set all 更改选项的值 :set 选项,SHELL脚本,shell的基本知识,shell是一个用户接口,它提供用户要求的服务,用户通过shell与计算机交互,用户不必了解硬件的内部细节。当通过用户名和密码登陆到linux系统后

5、,由shell负责解译及执行用户输入到计算机中的所有命令,直到运行EXIT指令退出系统。 shell是一个命令语言解释器,拥有自己一系列的shell指令集,同时shell还能被系统中其他进程所调用。用户使用linux操作系统过程中,在提示符下输入的命令都由shell先解释然后传给linux核心。,shell的种类,Bourne shell(sh) C shell(csh) Korn shell BourneAgainShell(bash) Tcsh Shell(tcsh) Restricted Shell;A Shell; Z Shell等等 可以采用显示“SHEll”环境变量,来确定当前用户

6、使用的SHELL,shell脚本文件,shell脚本就是把一系列linux命令,按照一定的组织格式存储在一个文件中,shell可以读取这个文件并按照规则执行其中的命令,这样的文件就被称为 shell脚本文件。shell脚本可以象简单的程序设计一样允许输入/输出、操纵变量(虽然很简单)、控制流程等等。 用户宿主目录下的.bash_logout文件就是一个shell脚本文件,看看它的内容,创建shell脚本和创建普通的源程序代码是一样的,可以选择一个方便的文本编辑工具如前面章节的vi命令,然后把设计好的命令序列输入并且保存到一个指定的名字的文件中 你可以创建内容只有echo “Hello!”一行的

7、文件,这就是一个简单的shell脚本文件,执行shell脚本文件的方法,1、在命令提示符后键入 bash 脚本文件名 2、先改变脚本文件的权限,增加用户的可执行权限,然后直接键入它的名字来执行,shell脚本文件的内容,注释: 和通常的源代码一样,shell脚本也提供注释行的功能,以便用户编写出可读性好的脚本代码。在shell脚本中,通过使用#符号作为注释行的前缀符号,当shell对脚本代码进行解释执行的时候,遇见#符号时,忽略该行的所有内容。,shell脚本文件的内容,变量: 在shell脚本中,支持通过变量保存中间值并参与运算和输入输出。但是,在bash shell下,变量不比象一些高级语

8、言(如 C)一样显式地被声明(C 语言的变量需要显式地先声明才能使用)。shell脚本中的变量,可以在任何时间通过赋值来创建。甚至赋值操作符(=)右边为空也可以。 语法: 变量名= 注意:赋值操作符“=”两边必须不能有空格。,shell脚本文件的内容,变量的引用: 在shell脚本的任何位置都可以引用变量。变量的引用符号为$符号,相关的还有定界符号. 语法: $variable $variable 定界符号是为了区分变量的名字和其他和变量名字结合在一起的字符串来使用的,目的是使得shell解释程序能够准确地识别用户使用的变量。,shell脚本文件的内容,输入变量的值: 在编写一些特殊的shel

9、l脚本时,有时需要从键盘输入值给脚本干预脚本的运行,这可以使用read命令来实现. 语法: $read 变量名 当脚本执行到read语句时,将等待用户输入一个值给变量。让用户输入一个值并回车后,这个值就被保存在变量中 。,shell脚本文件的内容,变量的作用域: 变量根据它的可访问范围分为局部变量和全局变量。 局部变量:只能在创建这个变量的shell中有效的变量。 全局变量:可以由父shell传递值到子shell的变量。,shell脚本文件的内容,数值运算 shell不支持数字变量,变量都被作为字符串来处理。但是有时侯是需要使用变量参与数学运算的。shell允许保存数字形式字符串的变量参与模拟

10、数字运算。 使用expr命令求值算术表达式。 算术展开表达式 格式为 $(算术表达式),shell脚本文件的内容,命令替换 在一个命令中使用多个命令的方法-命令替换。 命令替换首先执行被替换的命令,然后执行整个命令。 命令替换的方法有两种, 1、使用重音符“”的形式 ; 2、使用$()的形式。,shell脚本文件的内容,shell流程控制 test和测试命令 测试命令对表达式进行测试,求出真(true)或者假(false)的逻辑值。shell脚本可以根据这些测试的结果逻辑值来处理不同的流程 测试命令分以下几类 测试算术表达式 测试字符串表达式 测试文件,shell脚本文件的内容,算术测试表达式

11、选项 选项 含义 -eq 等于 -ne 不等于 -gt 大于 -ge 大于等于 -lt 小于 -le 小于等于,shell脚本文件的内容,字符串测试表达式选项 选项 含义 string 如果string的长度不为零则值为true,否则为false -z string 如果string的长度为零,则值为true,否则为false string1 = string2 如果string1与string2相等,则值为true,否则为false string1 != string2 如果string1与string2不相等,则值为true,否则为false,shell脚本文件的内容,文件测试表达式选项

12、选项 含义 -e File 如果文件File存在则值为true -s File 如果文件File存在且文件大小大于零,则值为true -f File 如果文件File存在且为普通文件,则值为true -d File 如果文件File存在且为目录文件,则值为true -b File 如果文件File存在且为块文件,则值为true -c File 如果文件File存在且为字符文件,则值为true -L File 如果文件File存在且为符号链接文件,则值为true -r File 如果文件File存在且是可读文件,则值为true -w File 如果文件File存在且是可写文件,则值为true -

13、x File 如果文件File存在且是可执行文件,则值为true -O File 如果文件File存在且属于当前用户,则值为true -G File 如果文件File存在且属于当前用户组,则值为true File1 nt File2 如果文件File1新于文件File2,则值为true File1 ot File2 如果文件File旧于文件File2,则值为true,shell脚本文件的内容,脚本流程分支结构 1、if语句 if语句和它的英文含义一样,如果条件成立就执行规定的语句或者语句序列。 if的基本使用格式为: if语句的另外一种格式为: if if then then fi else

14、fi 复杂的if语句,shell脚本文件的内容,case.esac语句 当if语句出现的分支比较多的时候,使用if语句使得脚本代码过于冗长而且可读性变差,这时可以使用case.esac语句来实现同样的功能。 case语句的使用格式是: case in value1) ; value2) ; . valueN) ; *) ; esac,shell脚本文件的内容,循环结构可以提供给脚本编写者重复执行某一动作的能力,linux的shell脚本支持循环是通过下面三种构造来实现的。 while构造 until构造 for构造,shell脚本文件的内容,while构造: while循环结构的特点是:先测试

15、条件再执行循环体,只要条件为真时,就执行循环体中的命令序列。当第一次测试条件的时候如果为假,则循环体就被执行了零次。 while构造的格式是: while do done,shell脚本文件的内容,until构造: until循环构造为循环执行语句序列直到某个条件为真。它的求值模式和while循环相反。 until循环构造格式: until do done,shell脚本文件的内容,shell脚本文件的内容,1. for构造: for构造循环有两种形式。 第一种形式的格式为: for(expression1; expression2; expression3) do done 第二种形式的格式

16、为: for VARIABLE_NAME in do done,shell脚本文件的内容,break和continue命令 break命令用语循环体中,它能导致立即结束循环。 continue命令用于循环体中,它能导致立即开始新的循环。位于continue命令后的循环体其它语句序列将不被执行。,shell脚本文件的内容,shell脚本的参数和shift命令 shell脚本是需要传递参数给它内部进行处理的。如下 ./test 20 30 在shell脚本中$n可以用于传递这些参数,其中$0表示命令本身的字符串,$1、$2、$3.$9表示第一、第二个参数.第9个参数。特殊的$#表示参数的合计数目。 shift命令可以形象地理解为在shell脚本内部把参数的次序依次向前提一个。这样 shift执行前的$1就不再起作用,shift命令执行前的$2变成了执行后的$1 , $3变成了

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号