您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Linux操作系统03
第3章文本编辑本章提要:本章主要介绍了文本编辑,主要包括ed和vi等文本编辑器的使用以及一些文本操作命令等。学好这章,有利于更进一步地学习Linux,其中最为重要的是熟练掌握vi编辑器的基本使用技巧。3.1行编辑器ed3.1.1启动eded编辑器的命令结构并不复杂,初学者一旦入门,不会有太多的问题。初学者使用ed编辑某个现有文件之前,最好将文件复制一个副本,以防止错误操作造成原始文件的丢失或损坏。启动ed只需执行ed命令就能打开ed编辑器,即可以编辑新文件。当然也可以编辑旧文件。编辑旧文件由下面语法完成。语法:ed[filename]旧文件的名称由filename参数指定。3.1.2输入和修改打开ed编辑器之后,首先进入命令方式,此时,由于屏幕会显示被编辑文件的总的字符数。为了证实自己已经进入了ed的命令,初学者可以按一下回车键,马上会出现一个问号,如图3-1所示。图3-1进入ed之后,即可执行各种操作。下面是ed的五种常用操作:(1)移动光标。第3章文本编辑57在ed编辑器中,光标只能向上或向下移动。输入一个数字,光标即可移动到指定数字行。同时会显示所在行的内容,如图3-2所示。下面是移动光标有关的常用命令。1——将光标移动到第一行,如图3-3所示。图3-2图3-3$——将光标移动到最后一行,如图3-3所示。x——将光标移动到第x行。x的范围是1到$最后一行的具体数值,如图3-3所示。+/-——分别是跳到下一行/跳到上一行,如图3-3所示。.——显示光标当前所在行(英文句号),如图3-3所示。1,xl和1,xn——显示文件中指定数量的行(请注意1,xl逗号之前是数字1,最后是小写字母L),如图3-4所示。细心的读者就会发现小写L和n的区别。小写L是在每一行的最后加上“$”符号,而n则在每一行的最开始加入行号。当然如果要显示当前文本有多少行,可以使用下面命令。$n运行如图3-5所示。特殊的例子是当数字1被换成“.”,则表示从当前行开始;x被换成“$”,则表示到最后一行,1,xl和1,xn都适用。显示全部内容可以使用1,$n,如图3-6所示,当文件内容为空时,此命令为出错。58Linux操作系统图3-4图3-5图3-6(2)插入方式。在ed编辑器中,有两种方法可以插入文本,一是插入命令i,二是追加命令a。两者的区别是:i命令是在某一行的前面插入文本,而a命令是在某一行的后面插入文本。下面是四个具体的例子:5a——在第5行的后面插入文本。2i——在第2行的前面插入文本。.a——在当前行后一行插入文本。.i——在光标当前行的上一行插入文本。特殊命令。在最后一行的插入是$a。以上面的例子。插入的内容会在第8行。而$i插入的内容会在第7行。原来第7行的内容会在第8行。就并不是最后一行,就非我们原来的本意。当然也可以理解为在倒数第二行插入内容。7a也可以。但8i和8a都是不正确的。在首行插入是1i。为什么不是0i呢。因为没有第0行。但是0a却又可以。插入完后按Enter,再按一个句点“.”就可以退出插入方式,进入命令方式。这是初学者需要确切注意的一个问题,如图3-7、图3-8所示。第3章文本编辑59图3-7图3-8(3)删除行。在ed编辑器中,d命令可以删除文件中的一行或多行。下面是三个基本的用法:xd——删除第x行。m,nd——删除从第m行到第n行。x,$d——从第x行开始删去所有行。例如:删去上面例子的第1行:1d,最后一行:$d,如图3-9所示。图3-9把第2行到第6行删了,再把剩下的全部删了,如图3-10所示。图3-10(4)查找与替换。在ed编辑器中,不能修改某一行中的错误内容,惟一的办法是用正确的行代替错误的旧内容。,s/pattern1/pattern2/——在每一行中查找第一个pattern1,找到后用pattern2替换它。,s/pattern1/pattern2/g——在文件中查找的所有的pattern1,找到后用pattern2替换它们,如图3-11所示。60Linux操作系统图3-11上面两条命令,如果没有在最前面加入“,”(逗号)且表示在当前行。(5)进入指定的行。3.1.3撤消、保存与退出ed编辑器中,撤消可以使用“u”命令,但只能撤消一步。保存文件的命令是:w[filename]——将文件指定的名称保存到磁盘上。如果在打开ed的时候,有使用edfilename,那么保存的时候,只需输入命令“w”。如果输入wfilename那么将是另存为。如果是打开的时候只是使用“ed”,直接新建一个文件,保存时,就必须要用wfilename,只使用“w”就会出错。退出ed编辑器可以使用命令“q”。3.2全屏幕编辑器vi3.2.1进入vivi是Unix系统中使用得最普遍的全屏幕文本编辑器。在不同的系统中可能通过不同的程序来实现vi的功能,这主要涉及到版权的问题,例如在redhat中,经常使用elvis和vim,并在/bin目录下设置名为vi的符号链接指向相应程序。因此,用户如果想使用vi进行文本编辑,可以在系统提示符下输入:vi[文本文件名称]↙如果没有指定要编辑的文件或指定的文件并不存在,则建立一个新的文本。要编辑的文本被显示在屏幕上,行首处有“~”符号的表示该行是一个空行。vi有两种工作状态:命第3章文本编辑61令状态和修改状态(插入或者修改统称修改状态)。刚进入vi界面时,用户一般处于命令状态,此时用户还不能像DOS下的编辑器那样可直接对文件进行信息输入,而只能输入一些命令对文件进行某些编辑操作。3.2.2光标移动基本的命令包括(注意要区分大小写):←↑→↓:左、上、右、下移动光标。h、k、l、j:左、上、右、下移动光标。0(零):将光标移动到行的起始处。$:将光标移动到行的末尾处。H:将光标移到当前窗口(而非全文)的第一行起始处。M:将光标移到当前窗口的居中一行起始处。L:将光标移到当前窗口的最后一行起始处。W:将光标移到下一个单词(word)的第一个字符处。B:将光标移到上一个单词的第一个字符处。E:将光标移到当前单词的最后一个字符处。数目G:将光标移动到第数目行行首。-:将光标移动到上一行的第一个非空字符处。+:将光标移动到下一行的第一个非空字符处。数目-:将光标移动到上数目行的第一个非空字符处。数目+:将光标移动到下数目行的第一个非空字符处。(:将光标移动到光标当前所在句子的最前面,这里句子是用!.?三种符号界定。62Linux操作系统):将光标移动到下一个句子的最前面。数目(:将光标移动到前数目个句子的最前面。数目):将光标移动到后数目个句子的最前面。{:将光标移动到光标当前所在段落的最前面,这里段落是用段落之间的空行界定。}:将光标移动到下一个段落的最前面。数目{:将光标移动到前数目个段落的最前面。数目}:将光标移动到后数目个段落的最前面。3.2.3删除与恢复删除命令:X:删除光标所在处字符。dd:删除光标所在的行。D:删除从光标所在之处开始直到该行末尾的全部字符。恢复(Undo)命令:u:恢复刚被删除的文本。U:恢复光标所在行在此次编辑中的全部改变。3.2.4替换除上述vi命令外,还有替代命令:r:替代光标所在处的字符,用户在按r后紧接着按要修正的字符。R:进入替代状态,用户可以连续替换多个字符,直至按Esc键退出替换状态为止。如果没有指定要编辑的文件或指定的文件并不存在,则建立一个新的文本。进入vi后,以图3-12作为范例。第3章文本编辑63图3-12在键盘上输入“r”,然后再按“t”,如图3-13所示。图3-13按“R”,然后连续输入“this”,再按Esc,如图3-14所示。图3-14请注意最下面一行,此行是vi的状态行。该行会提示当前是处于何种状态。左下角的—REPLACE--表示处于替换状态。在没有按Esc之前是一直处于替换状态。3.2.5保存与退出:q:退出vi。:q!:舍弃当前对编辑内容所作的修改,强行退出vi。:w[文件名称]:将正在编辑的内容以文件名称为名存盘(相当于Saveas...),如果没有指定文件名称,则使用原有的文件名称(相当于Save...)。:wq:存盘退出。64Linux操作系统3.2.6进入插入状态在编辑状态下,用户可以进行更灵活的编辑处理,从命令状态转入插入状态可以使用以下几条命令:a:从光标所在之处的后面插入新的字符,插入时,插入处后面的字符会随着新增字符往后移动。A:从光标所在行的最后处开始加入新的字符。i:从光标所在之处的前面插入新的字符,插入时,插入处后面的字符会随着新增字符往后移动。I:从光标所在行的第一个非空字符前面开始加入新的字符。o:在光标所在行的下面新增一个空行,并进入插入状态。O:在光标所在行的上面新增一个空行,并进入插入状态。s:删除光标所在之处的字符,并进入插入状态。S:删除光标所在的行,并进入插入状态。按下以上命令之一,屏幕底部将出现“--INSERT--”的字样,表示已经处于插入状态,我们先用“U”命令恢复最开始的状态,然后在Tis的T后面插入h,如图3-15所示。在插入状态下,用户可以如DOS下的编辑器一般用光标键移动光标,在适当的地方插入所需的文本内容,或删除字符等操作。在插入状态下按Esc键可以重返命令状态。用光标键将光标移到各行尾部。第2行最后加入“!”。其他行插入“.”,结果文本被改为如图3-16所示。图3-15图3-163.2.7寻找指定字符或字符串还有一些更为高超的使用技巧。如在命令状态下,可进行字符和字符串检索。方法是:第3章文本编辑65f字符:从光标所在处开始,将光标向右移动到第一个出现字符的地方。F字符:从光标所在处开始,将光标向左移动到第一个出现字符的地方。;:配合f与F命令使用,表示继续往同方向检索一次。,:配合f与F命令使用,表示继续往反方向检索一次。/字符串:从光标所在处开始,往后搜索第一个有字符串的地方,然后把光标放到该处。?字符串:从光标所在处开始,往前搜索第一个有字符串的地方,然后把光标放到该处。n:配合/与?命令使用,表示继续往同方向检索一次。N:配合/与?命令使用,表示继续往反方向检索一次。例如:将光标移动到文章的首选第一个字符后,按“fi”,结果光标定位到右边第一个出现字符“i”的地方,显示为如图3-17所示。按“FT”,界面显示如图3-18所示。图3-17图3-18我们再用Fi,然后按“;”,显示为如图3-19所示。图3-19按“,”,显示为如图3-20所示。按“/ed”,显示为如图3-21所示。66Linux操作系统图3-20图3-21按回车之后,全文的ed都会被显示出来光标停留在第一处找到的字符串处,如图3-22所示。按“?is”,显示为如图3-23所示。图3-22图3-23和/类似的is都会被显示出来,光标停留在第一处找到的字符串处。按“n”,显示为如图3-24所示。按“N”,显示为如图3-25所示。图3-24图3-253.2.8块操作在vi下也可以方便地实现整块文本的复制和转移。用:d范围来删除一个由范围所指定的文本块(d表示delete),并将其放入缓冲区(Buffer,内存中开辟的一个临时存放区域,其在vi中的作用类似于DOS/Windows下的Clipboard)。此处,范围往往是一个光标移动命令,表示“从光标当前位置到光标的目标位置之间的文本块”,常用的范围例如:E:从光标当前位置到当前所在单词的最后一个字符。第3章文本编辑67B:从光标当前位置到上一个单词的第一个字符。$:从光标当前位置到该行的最后一个字符。):从光标当前位置到下一句的第一个字符。3):从光标当前位置到后面第三句的第一个字符。{:从光标当前位置到当前段落的第一个字符。}:从光标当前位置到下一段落的第一个字符。命令:y范围则可把范围指定的文本块复制到缓冲区(y表示yank)。而缓冲区中的内容可以用命令:p放置(p表示put)到光标当前所在处。以上的d、y、p命令结
本文标题:Linux操作系统03
链接地址:https://www.777doc.com/doc-5098958 .html