《Linux操作系统案例教程电子教案 第4章 文本编辑器.ppt》由会员分享,可在线阅读,更多相关《Linux操作系统案例教程电子教案 第4章 文本编辑器.ppt(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第四章第四章 文本编辑器文本编辑器第四章 文本编辑器 第四章第四章 文本编辑器文本编辑器案例一:1.把/etc/inittab文件复制到/test目录并改名为tab;2.查看tab文件共有多少行,第18行为什么,并记录;3.在第25行后添加上自己的名字的英文缩写;4.把第26行分别复制到第34行下面与内容最后;5.查找单词now在多少行有;6.命令行模式下,在第10行前后分别添加一空行;7.再删除该修改后内容的第25行、30行;8.保存并退出;9.在末行模式下命令q与q!分别在什么情况下使用;第四章第四章 文本编辑器文本编辑器4-1 vi编辑器的使用编辑器的使用1vi定义Vi是Linux系统
2、自带的一种文本编辑软件 第四章第四章 文本编辑器文本编辑器2vi三种模式命令模式:commandmode输入执行特定vi功能的命令输入模式:insertmode输入、编辑、修改文本内容末行模式:lastlinemode执行对文件的保存,退出,内容搜索等操作 第四章第四章 文本编辑器文本编辑器VI的模式三种模式命令模式输入模式末行模式Linux退出退出vivi file末行模式末行模式输入模式输入模式转转义义命命令令按按Esc键键文文本本输输入入命命令令执执行行完完毕毕或或按按Esc键键命令模式命令模式 第四章第四章 文本编辑器文本编辑器vi文本编辑器的操作模式 第四章第四章 文本编辑器文本编辑
3、器命令模式状状态栏态栏编辑编辑区区图4-2命令模式下文本编辑器状态 第四章第四章 文本编辑器文本编辑器输入模式插入模式插入模式标标志志 图4-4插入模式下文本编辑器状态 第四章第四章 文本编辑器文本编辑器末行模式末行模式末行模式标标志志图4-5末行模式下文本编辑器状态 第四章第四章 文本编辑器文本编辑器1.启动vi命令 第四章第四章 文本编辑器文本编辑器例子#vitest.c#include#include int main()printf(“this is a testn”);return 0;#vi+5test.c#vi+/inttest.c#vitest.cjob.i 第四章第四章 文本
4、编辑器文本编辑器 第四章第四章 文本编辑器文本编辑器 第四章第四章 文本编辑器文本编辑器 第四章第四章 文本编辑器文本编辑器 第四章第四章 文本编辑器文本编辑器在末行模式下输入:n编辑下一个文件,用ctrl+实现两文件之间的切换。第四章第四章 文本编辑器文本编辑器viabc:n跳至下一个文件,:e#回到刚才编辑的文件。比如当前编辑文件为a,:n跳至b,再:n跳至c,:e#回到b,想回到a的话用:ea 第四章第四章 文本编辑器文本编辑器2.显示vi的行号在末行模式下输入命令:setnu(即number)行号不是文件内容的一部分。指示编辑器关掉行号:setnonumber 第四章第四章 文本编辑器
5、文本编辑器 第四章第四章 文本编辑器文本编辑器命令模式的特点打开vi就进入命令模式无论当前为何种模式,按ESC键就可回到命令模式命令模式下,任何键盘操作都被认为是vi命令,自动执行,且不会显示在屏幕上,更不会写入文件 第四章第四章 文本编辑器文本编辑器首 第四章第四章 文本编辑器文本编辑器输入模式的特点在命令模式下敲击相应字母键进入输入模式:如:插入:I添加:a此模式下,输入任何字符都可作为文件内容加以保存 第四章第四章 文本编辑器文本编辑器末行模式的特点在命令模式下输入“:”方可切换到末行模式在“:”后面输入相应的操作命令,按回车键执行 第四章第四章 文本编辑器文本编辑器3vi的使用#vi文
6、件名/进入vi编辑器 第四章第四章 文本编辑器文本编辑器(1)命令模式下的操作排版命令有:移动光标左移一个字符:按h右移一个字符:按l上移一行:按k下移一行:按j移至行首:按(shift+6)移至行尾:按$(shift+4)第四章第四章 文本编辑器文本编辑器移至文件顶部:按H移至文件尾部:按L移至文件中部:按M前翻一屏(下翻):按ctrl+f后翻一屏(上翻):按ctrl+b前翻半屏:按ctrl+d后翻半屏:按ctrl+u 第四章第四章 文本编辑器文本编辑器插入文本(进入输入模式)在光标右边插入文本:按a在一行的结尾处添加文本:按A光标左边插入文本:按i在行首插入文本:按I在光标所在行的下一行插
7、入新行:按o在光标所在行的上一行插入新行:按O 第四章第四章 文本编辑器文本编辑器 第四章第四章 文本编辑器文本编辑器撤消操作撤消前一个命令:按u撤销最后一次修改,不论光标是否在修改行撤消对一行的更改:按U撤销对当前行所做的修改,前提是光标在当前行 第四章第四章 文本编辑器文本编辑器删除文本删除一个字符:按xx删除光标处字符,nx 删除从光标所在位置开始的n个字符 X删除光标前面的那个字符,nX从光标前面那个字符开始向左的n个字符删除一词:按dw删除一行:按dd 第四章第四章 文本编辑器文本编辑器删除文本删除行的部分内容:按D(删除光标右的内容)按d0(删除光标左的内容)删除到文件的结尾:按d
8、G 第四章第四章 文本编辑器文本编辑器复制和粘贴复制一行内容:按yy粘贴:按p剪切:按dd查找字符串按:/查找的内容按:n/跳到下一个出现处N/跳到上一个出现处 第四章第四章 文本编辑器文本编辑器复制文本块用行号标识的文本块可以作为一个单位移动1.若屏幕上没有显示行号,则输入 :setnumber输入下列命令按回车键:2copy4文件第二行被复制到第四行的后面。:1,4copy7第一至四行之间的文本复制到第七行之后。第四章第四章 文本编辑器文本编辑器以冒号开头的编辑命令(:1,4copy9)对用户开始行号和结束行号标识的文本块进行操作,文本块的开始行号和结束行号用逗号隔开。注意要确保先输入小行
9、号,再输入大行号,编辑器不能解释诸如62,57或9,2之类的行号。copy命令可以缩写为co:10,14co0:10,14co$(此处$表示最后一行):.,65co80(此处.表示当前行)第四章第四章 文本编辑器文本编辑器文本块的其他操作移动文本块移动文本块:1,8 move 17向文件中追加文本向文件中追加文本:5,8wmyfile2覆盖文本块覆盖文本块:1,6wmyfile2另存文本块另存文本块(假设在假设在myfile1中执行如下命令中执行如下命令):1,8writemyfile2 第四章第四章 文本编辑器文本编辑器注意:某些特殊的字符(/&!.*$?)对查找过程有特殊意义,并且要查找中
10、被使用时必须“转意”在转意一个特殊字符,需在其前面加一个反斜杠()如:要查找串“anything?”则输入:“/anything?”第四章第四章 文本编辑器文本编辑器录入,排版,修改,删除等操作输入模式下的操作 第四章第四章 文本编辑器文本编辑器:w文件名/保存文件:q/退出VI:q!/退出不保存:wq/保存退出(或输入盘ZZ;注:命令ZZ既不以冒号开头,也不后接回车键)末行方式下的操作 第四章第四章 文本编辑器文本编辑器4.5 sed、awk等工具的应用等工具的应用用可视化编辑器开始编辑文件时,文件被读入用于编辑或者缓冲的内存空间:整个文件被读入内存,可以对文件做任意的修改。如果vi编辑器来
11、编辑文件,需要的内存大小取决于文件大小。第四章第四章 文本编辑器文本编辑器sed流编辑器介绍另一种编辑文件的方法是每次只读入一行,修改和保存后再读入另一行。用这种方法可以编辑较大的文件,因为在工作内存中一次只有一行。流编辑器以单行方式读入编辑器处理的数据流,也称为sed(streameditor)。实用程序sed对输入行进行必要的修改,然后输出此行。第四章第四章 文本编辑器文本编辑器4.5.1sed实用程序4.5.1.1创建示例文件coffee coffee coffeecoffee2003 coffee coffee2003 decaf coffee2000 coffee coffeedef
12、 2003 coffee2003 decaf文件 caffeine 第四章第四章 文本编辑器文本编辑器4.5.1.2修改目标单词希望用chocolate替换caffeine副本中出现的单词coffee。不用vi编辑器,也可创建这样的替换版本输入命令:输入命令:sed s/coffee/chocolate/caffeine sed s /coffee /chocolate/caffeine指示shell做替换操作替换的目标字符串 替换字符串指示shell不要解释单引号内的任何字符读取的文件 第四章第四章 文本编辑器文本编辑器 第四章第四章 文本编辑器文本编辑器4.5.1.3修改所有目标行(1)输
13、入下面要求做全局修改的sed命令:sed s/coffee/chocolate/g caffeine 第四章第四章 文本编辑器文本编辑器4.5.1.4选中行然后进行修改sed命令可以用于只作用于满足要求的行。sed /2003/s/coffee/chocolate/g caffeine 第四章第四章 文本编辑器文本编辑器4.3.1.5查找行并进行替换sed/2003/s/2010/gcaffeine选中包含行目标字符串2003的行,将2003替换为2010。该命令中没有指定替换的目标字符串,则替换用于选择行的行目标字符串。第四章第四章 文本编辑器文本编辑器4.5.1.6删除行sed/def/d
14、caffeine文件中所有含有字符串def的行都会被删除。第四章第四章 文本编辑器文本编辑器4.5.1.7在sed中使用正则表达式(1)输入:sed/2/s/coffee/chocolate/gcaffeine(2)输入:sed/c/dcaffeine(3)输入:sed/$/dcaffeine选中所有以2开头的行,如果该行包含字符串coffee,则将其替换为chocolate。选中所有以字符c开头的行,然后删除这些行选中所有空行,然后删除这些行 第四章第四章 文本编辑器文本编辑器4.5.2数据操作工具awk实用程序awk用来定位数据库中特定的记录和字段,进行修改和计算,然后输出选中的部分数据主
15、要用于信息检索、数据操作和报表生成。其命名来自UNIX实用程序的程序员Aho、Weinberger和Kernighan。第四章第四章 文本编辑器文本编辑器创建文件food文件food包含三条记录,每条记录由三个字段组成:食品名称、种类和价格。字段以空格分隔。空格分隔符是空格分隔符是awk的默认分隔符。的默认分隔符。milk dairy 2.00hamburger meat 2.75cheese dairy 1.50food文件 第四章第四章 文本编辑器文本编辑器4.5.2.1选择行然后输出字段实用程序awk选择包含给定样本的记录,然后对该记录完成给定的操作。输入命令:输入命令:awk /dai
16、ry/print$3 food 第四章第四章 文本编辑器文本编辑器4.5.2.1选择行然后输出字段命 令说 明awk运行实用程序awk 单引号内指定字符串不进行解释,而是作为参数传递给awk/dairy/选择所有含有字符串dairy的行,无论里指定了什么操作print$3对选中的行进行的操作,即输出或者打印第三字段($3)。大括号用来标识对所选中的行的操作。print是实用程序awk可进行的操作之一。food读取的输入文件 第四章第四章 文本编辑器文本编辑器 第四章第四章 文本编辑器文本编辑器选择行然后输出字段awk命令也可以输出多个字段。例如,输入:awk/dairy/print$3,$1f
17、ood输出含有字符串dairy记录的第三字段,空格,然后再输出第一字段。第四章第四章 文本编辑器文本编辑器4.5.2.2修改字段定界符awk默认的字段定界符是空格,也可以使用其它字符作为定界符。指示awk用冒号作为分隔符。输入awkF:print$1,$3,$4/etc/passwd|more 第四章第四章 文本编辑器文本编辑器 第四章第四章 文本编辑器文本编辑器归纳与总结归纳与总结:通过本节课的学习我们要掌握以下内容通过本节课的学习我们要掌握以下内容文件、目录的操作命令及VI的使用 第四章第四章 文本编辑器文本编辑器补充:通配符:模式串意义*当前目录下所有文件的名称*Text*当前目录下所有
18、文件名中包含Text的文件的名称ab-dm*当前目录下所有以a、b、c、d、m开头的文件的名称ab-dm?当前目录下所有以a、b、c、d、m开头且后面只跟一个字符的文件的名称/usr/bin/?目录/usr/bin/下所有名称为两个字符的文件的名称 第四章第四章 文本编辑器文本编辑器注释:1、*代表任何字符串(长度可以不等),例如:f*匹配以f打头的任意字符串;但要注意,文件名前的圆点(.)和路径名中的斜线(/)必须显示匹配,例如“*”不能匹配.file,而“.*”才可以匹配.file;第四章第四章 文本编辑器文本编辑器2、连字符“-”仅在方括号内有效,表示字符范围,如在方括号外面就成为普通字
19、符了,而*和?只在方括号外面是能配符,若出现在方括号之内,它们也失去了通配符的能力,成为普通的字符。例如“-a*?abc”只有一对方括号是通配符,*和?均为普通字符,因此,它匹配的字符串只能是-a*abc和-a?abc。第四章第四章 文本编辑器文本编辑器引号引号1、单引号由单引号括起来的字符都作为普通的字符出现,特殊的字符用单引号括起来以后,也会失去原有的意义,而只作为普通字符解释;#string=$path#echo$string$path#可见$保持了其本身的含义,作为普通字符出现 第四章第四章 文本编辑器文本编辑器2、双引号“由双引号括起来的字符,除$、和“这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍用为普通字符对待。对于$来说,就是用其后指定的变量的值来代替这个变量和$;#a=love#echo“I$ayou”Iloveyou#第四章第四章 文本编辑器文本编辑器3、反引号反引号()这个字符对应的键一般位于键盘的左上角,不要将其同单引号()混淆,反引号括起来的字符串被SHELL解释为命令行,在执行时,SHELL首先执行该命令行,并以它的标准输出结果取代整个反引号(包括反引号)部分;例如#pwd/home/xyz#string=“currentdirectoryispwd”#echo$stringcurrentdirectoryis/home/xyz#
限制150内