linux操作系统与shell编程2012实验_第1页
linux操作系统与shell编程2012实验_第2页
linux操作系统与shell编程2012实验_第3页
linux操作系统与shell编程2012实验_第4页
linux操作系统与shell编程2012实验_第5页
已阅读5页,还剩11页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、OS 实验目的:熟悉 vim 文本编辑工具。vim 可用于编辑文本,开发应用程序。启动 vim 编辑器创建文件$ vim myfile如果 myfile 文件存在,上述命令将会打开指定的文件,同时在编辑窗口中显示文件第一页的数据内容。如果文件不存在,vim 将会打开一个新文件。1.2 状态行编辑窗口的最下面一行是vim 的状态行,用于显示编辑器的状态、编辑过程中出现的出错信息、光标所在的行列位置、删除或的行数等。初始启动时,状态行将会显示文件的名字、文件的行数,以及文件的字节计数。2vim 编辑器的工作模式vim 分为命令和输入两种工作模式。2.1 命令模式当启动vim 编辑器,打开或创建一个

2、文件时,vim 即处于命令模式。在命令模式下,可以m 命令,执行特定的 vim 编辑功能。无论何时,只要按下Esc 键,不管vim 当前处于何种工作模式,总会进入命令模式。大多数vim 命令不需要按Enter 键即可立即执行。但是,以冒号“:”开始的命令需要在输入命令之后再按Enter 键。在命令模式下输入冒号“:”时,冒号“:”将会出现在编辑窗口底部最后一行的左下角,然后即可接着输入编辑命令。2.2 输入模式通过执行 vim 命令,可使 vim 进入输入模式。比如,在第一次使用 vim 打开文件时,vim 处于命令模式,首先必须m 的数据输入命令“i”(字母 i代表字符命令)或“a”(附加字

3、符命令)等,使 vim 进入输入模式。在输入模式下,可以输入数据,编写自己的应用程序。输入结束后,按下 Esc 键,即可返回命令模式。3保存文件与退出 vim在使用vim 编辑文件期间,用户所做的任何编辑处理并未直接反映到实际的文件中。实际上,整个编辑过程被保存到 vim 于内存中临时创建的一个文件副本中。仅当执行“w”(“写”)等命令时,内存缓冲区中的内容才能到磁盘上的文件中。性地保存命令简单说明:w保存编辑后的文件内容,但不退出vim。把内存缓冲区中的数据写到启动vim 时指定的文件中:w!强制写文件,即强制覆盖原有的文件。如果原有文件的权限不允许写入文件,也可强制写入。但是,仅当用户是文

4、件的属主时才适用,而超级用户不受限制。保存文件内容后推出vim。强制保存文件后退出vim。同:wq退出vim,若文件已被修改则vim 不允许用户使用:q 命令退出,同时会输出警告信息。强制退出vim,放弃对文件已做的编辑处理。把编辑处理后的结果写到指定的文件filename 中保存把编辑处理后的结果强制写到指定的文件filename 中保存,若文件已存在,则覆盖现有的文件。把编辑处理后的结果强制写到指定的文件filename 中保存,若文件已存在,则覆盖现有的文件,并退出vim。:wq:wq! ZZ(shift+zz):q:q!:w filename:w! filename:wq! filen

5、ame4 vim 编辑器的基本命令Vim 提供各种编辑命令:移动光标位置输入文本数据修改和替换文本撤销先前执行的文本编辑命令删除文本重复执行先前令注:vim 命令时严格区分大小写字母的。4.1 移动光标位置在命令模式下,可以使用下表所示的字符命令移动鼠标的位置。命令简单说明方向箭头键。其功能与箭头键完全相同,分别代表相应的箭头键。把光标移至上一行的第一个起始字符位置。把光标移至下一行的第一个起始字符位置。h k j l-Enter 键退格键空格键 Ctrl-F Ctrl-B Ctrl-U Ctrl-D Ctrl-E Ctrl-Y HM Lw光标一个字符位置。光标右移一个字符位置。往下滚动一屏,

6、即显示文件下一页内容。往上滚动一屏,即显示文件前一页内容。往下滚动半屏。往上滚动半屏。编辑窗口中的文件内容整体上移一行。编辑窗口中的文件内容整体下移一行。把光标移至编辑窗口顶部第一行的起始字符位置。把光标移至编辑窗口中间一行的起始字符位置。把光标移至编辑窗口底部最后一行的起始字符位置。光标右移一个字。如果相邻的两个字之间有标点符号,光标将移至标点符号位置。光标右移一个字。即使相邻的两个字之间有标点符号,也忽略之。Wb光标一个字。如果相邻的两个字之间有标点符号,光标将移至标点符号位置。Be E 0(零)$ nG光标一个字。即使相邻的两个字之间有标点符号,也忽略之。把光标移至当前字的最后一个字符位

7、置。同上,只是以空格字符作为字的分割符。把光标移至当前行的起始位置。同上把光标移至当前行的行尾。将光标移至指定行的行首位置。其中 n 表示行号,若只输入 G命令,则转到文件的最后一行;输入 1G 命令,则转入第一行;输入 60G 命令,则转入第 60 行的行首位置。把光标移至一个完整句子的句首位置。把光标移至一个完整句子的句尾位置。把光标移至一个完整段落的段首位置。把光标移至一个完整段落的段尾位置。()4.2 输入文本Vim 提供许多命令,使用户能够输入文本数据。下表列出了最常用的几种数据输入命令。使用这些命令进入数据输入模式后,在编辑窗口的状态行左边会显示“-INSERT-”状态信息,表示

8、vim 当前正处于输入模式。命令简单说明a在光标当前所在字符位置之后输入数据,输入的数据数量不限,直到按下Esc 键结束。在光标当前所在行的行尾位置之后输入数据,输入的数据数量不限,直到按下Esc 键结束。在光标当前所在字符位置之前输入数据,输入的数据数量不限,直到按下Esc 键结束。在光标当前所在行的行首位置之前输入数据,输入的数据数量不限,直到按下Esc 键结束。AiIo数据,行数不限,直到按下 Esc 键结在光标当前所在行之后束。在光标当前所在行之前束。O数据,行数不限,直到按下 Esc 键结4.3修改与替换文本Vim 提供许多命令,用于校正文本数据。在下表所列的编辑命令中,除了“r”和

9、“ ” 命令不显示任何信息,“ R” 命令将会在编辑窗口的状态行显示“-REPLACE-”状态信息。其当前正处于输入模式。令均显示“-INSERT-”状态信息,表示 vim命令简单说明C替换部分文本行,从光标位置开始直至行尾,替换其间的所有数据,直到按下Esc 键结束。替换单个字。为了替换一个整字,可将光标移至单字的字首位置,然后输入“cw”命令,接着输入新的文字。输入的字符数量不限,直到按下 Esc 键结束。为了修改单字(后面部分)的一部分,可将光标移至该字预保留部分右边的字符位置,输入“cw”命令后即可校正该字,按下Esc 键返回命令模式。替换整个文本行。为了替换一个整行文本,可将光标移至

10、目标行的任何字符位置,然后输入“cc”命令,此时,当前文本行将会,留下一个空行位置,等待用户输入新的数据,输入的数据数量不限,直到按下 Esc 键结束。为了替换多行文本,可将光标移至目标行的第一行,输入“ncc”命令,其中 n 表示需要替换cwncc的行的数量。ns替换单个字符,为了替换光标位置的单个字符,可输入“s”命令,之后可以输入任何数量的数据。为了替换从光标位置开始的多个字符,可输入“ns”命令,n 表示需要替换的字符数量。S替换文本行 ,为了替换光标当前所在的文本行,可输入“S”命令 ,之后输入 任何行数的数据,直到按下Esc 键结束。替换单个字符。用随后输入的字符替换光标所在位置的

11、单个字符,不需要按下Esc 键自动返回命令模式。替换多个字符。可以从光标所在位置开始替换多个字符,数量不限,直到按下Esc 键返回命令模式。转换光标位置字母的大小写,如果在输入“”之前输入一个数字,可以一次转换多个字母的大小写。此外,如果一直按住波浪号“”键,能够连续转换多个字母的大小写。rRn4.4 撤销先前的修改在编辑文本期间,有时需要放弃某些编辑处理的结果。Vim 提供了“u”和 “U”命令能够撤销先前执行的编辑命令的处理结果,使vim 回退到先前的处理状态。命令简单说明u用于撤销先前执行的编辑命令。输入 u 命令后不需按Esc 键,连续输入u 命令能够依次撤销先前执行的所有编辑命令。恢

12、复或撤销对当前文本行所做的所有编辑处理,仅适用于最近一次修改的文本行。输入U 命令后不需按Esc 键。U4.5删除文本Vim 提供一些命令可以删除指定的字符、字或文本行数据。命令简单说明nx删除字符。为了删除单个字符,可将光标移至准备删除的字符位置,然后输入“x”命令即可。为了删除多个字符,可将光标移至准备删除的字符串起始位置,然后输入“nx”命令,n 表示字符的数量,如 2x,60 x 等。删除字符。为了删除光标当前所在位置的前一个字符,可输入 “X”命令。为了删除多个字符,可将光标移至准备删除的字符串的右边,然后输入“nX”命令,n 表示字符的数量,如 2x, 60 x 等。删除单个字或部

13、分字。为了删除一个整字,可以把光标移至该字的起始字符位置,然后输入“dw”命令。为了删除单字的右边部分,可将光标移至该字预保留部分的后面,输入“dw”命令,即可删除单字的右边部分。删除文本行。为了删除整个文本行,可以将光标移至文本行的任何位置,然后输入“dd”命令。为了同时删除多个文本行,可将光标移至准备删除的第一个文本行,然后输入“ndd”命令,其中n 表示要删除的行数。删除文本行的行尾部分。为了删除文本行右边的部分文字,可将光标移至文本行预保留部分的后面,输入“D”命令,即可删除文本行的行尾部分。nXdwnddD4.6、删除与粘贴文本许多字处理都提供“-粘贴”与“剪切-粘贴”的文本行处理方

14、式。在 vim 编辑器中,与“-粘贴”等价的处理过程是先用“yy”命令文本行,接着再用“p(或 P)”命令实现文本行的实际;与“剪切-粘贴”等价的处理过程是先用“dd”命令删除文本行,接着再用“p(或P)”命令实现文本行的移动。命令简单说明nyy文本行。实际上,“yy”命令只是把文本行的数据内容保存到粘贴板中。为了一个文本行,可按下列步骤执行:把光标移至准备的文本行的任何位置;输入“yy”命令;再把光标移至目标文本行的任何位置;输入“p”命令,将粘贴板中的数据内容到光标所在行的下面;(5)或输入“P”命令,将粘贴板中的数据内容行的上面。到光标所在如果输入“nyy”命令,则可同时n 个文本行。例

15、如,输入10yy 命令,将把从光标当前所在行开始的 10 行数据到粘贴板中。此时,状态行将显示信息:10 lines y执行。其功能同上。ed. 表示命令成功nYdw删除单个字或部分字。为了删除一个整字,可以把光标移至该字的起始字符位置,然后输入“dw”命令。为了删除单字的右边部分,可将光标移至该字预保留部分的后面,输入“dw”命令,即可删除单字的右边部分。删除文本行。为了把一个活若干文本行移至某个位置,需要先删除文本行,然后再粘贴到适当的位置。例如,为了移动 5 行数据,可以把光标移至预删除文本行的任何位置,输入“5dd”命令,ndd然后把光标移至预位置,输入“p 或(P)”命令,即可把文本

16、行移至当前文本行的下方(或上方)。p P把粘贴板中的文本数据把粘贴板中的文本数据到光标所在文本行的下面。到光标所在文本行的上面。4.7重复执行命令许多vim 命令前面都可以加一个计数值,表明相应令需要重复执行的次数。例如,“3dd”命令意味着删除文本行的动作需要执行三次,最终删除三行数据;“2dw”命令删除两个字,“4x”命令删除 4 个字符(包括空格);“3w”命令使光标右移三个字;“2Ctrl-F”意味着往前滚动两屏。使用句点“.”命令也可以重复执行先前的文本编辑命令。例如,如果用户刚刚使用“dd”命令删除了一个或多个文本行,此时可以把光标移至准备删除的文本行中,仅仅输入一个句点“.”命令

17、即可重复执行删除文本行的处理动作。5 使用 ex 命令利用 ex 命令可以实现更精确、更方便的编辑处理。在输入 ex 命令时,首先需要输入一个前置的冒号“:”。5.1 显示行号:set nu按下Enter 键后,新加的行号将会出现在编辑窗口的左边。注意,这些行号实际上并不存在于文件中,只是为方便用户的编辑处理而出现在编辑窗口中,以增加文本数据的可读性。若想关闭行号显示,可输入命令::set nonu另外为了随时了解当前文本行的行号位置,可以在命令模式中按下 Ctrl-G组合键。Vim 将会在编辑窗口的底部显示当前行的行号位置,以及当前文件的名字等信息。5.2 多行ex命令的基本语法格式如下::

18、line#1,line#2 co line#3其中前两个数字(即line#1 和line#2,中间以逗号分开)用于指定需要的文本行的范围,第三个数字(line#3)表示点的行号。例如,为了把 myfile文件的第 1 行至第 5 行:1,5 co 12到当前文件的第 12 行之后,可以使用下列命令:在指定文本行的范围时,可以使用下列缩写形式:(1) 句点“.” :表示当前行,意味着从当前 行开始。符号“$” :表示文件的结尾,即文件的最后一行。(2)因此,为了把当前行至后续第 5 行到第 12 行之后,命令为:: .,5 co 12为了把第 6 行直至文件最后一行: 6,$ co 2到到第 2

19、 行之后,命令为:5.3 移动文本行ex 移动命令的基本语法格式如下::line#1,line#2 m line#3在移动文本行时,可以采用与文本相同的方式指定文本行的范围和点,包括使用句点“.”和符号“$”。两者的差别仅在于“移动”命令将会把指定范围的文本行从一个位置整块地照搬到另一个指定的位置。例如,为了把第 1 行至第 5 行移至第 12 行之后,命令为:: 1,5 m 125.4 删除文本行在删除文本行时,可以采用相同的方式指定文本行的范围,包括使用句点“.”和符号“$”。为了删除多个连续的文本行,命令形式为::line#1,line#2 d例如,为了删除文件中第 1 行至第 5 行,

20、命令为:: 1,5 d6 检索与替换Vim 提供若干命令,能够以检索指定字符串的方式,直接跳转至期望的文件位置。另外vim 还提供强有力的全局检索与替换功能。6.1 字符串检索字符串是由一个或多个连续的字符组成的。字符串可以包含字母、数字、标点符号、特殊字符、空格、制表符或回车字符。字符串即可以是一个语法意义上的单词,也可以是单词的一部分。为了检索字符串,可使用下表所示令。Vim 的字符串检索是严格区分大小写字母的。若想在检索期间忽略大小写的差异,可输入“:set ic”命令。返回默认的匹配方式(区分字母大小写),可输入 “:set noic”命令。若发现检索的字符串,vim 将会将光标移至目

21、标字符穿的第一个字符位置。若未发现检索的字符串,vim 会在编辑窗口底部的状态行中输出“Pattern not found”信息,说明检索失败。在检索过程中,某些特殊字符(“/” 、“&” 、“!” 、“.” 、“” 、“*” 、 “$” 、“” 、“?” )具有特定的意义,如果检索字符串中本身也包含这样的字符,必须在其前面增加转义符号“” ,使vim 能够按普通字符处理。例如,为了检索字符串“anything?” ,可输入“:/anything?”命令。命令简单说明:/str检索给定的字符串。Vim 将从当前光标位置开始检索,当找到指定的字符串时,光标将移至第一个出现的字符串位置。例如,为了

22、检索meta,可以输入“:/meta”命令,然后按Enter 键。从当前光标位置开始,反向检索给定的字符串。从当前光标位置开始,继续检索下一个匹配的字符串。 从当前光标位置开始,反向检索下一个匹配的字符串。 同“n”命令。但在输入“/”字符之后还需要按Enter 键。同“N”命令。但在输入“?”字符之后还需要按Enter 键。将光标移至匹配的字符串“pat”所在文本行之后的第n 行将光标移至匹配的字符串“pat”所在文本行之前的第n 行:?str nN/?:/pat/+n:?pat?-n6.2 模式检索利用vim 提供的模式检索命令,可以使字符串的检索更精确、更有效。(1)(2)(3)(4)仅

23、检索出现在行首位置的字符串;仅检索出现在行尾位置的字符串;仅检索出现在字首位置的字符串;仅检索出现在字尾位置的字符串;此外,也可以在检索模式中使用“.” 、“*” 和“”等通配符。命令简单说明:/str检索仅仅出现在行首位置的字符串 str。例如,检索以“From”为起始字符串的文本行,可以输入“:/From”命令,然后按 Enter键。检索仅仅出现在行尾位置的字符串str。例如,检索以“end”字符串结尾的文本行,可以输入“:/end$”命令,然后按Enter 键。为了匹配莫个单词起始部分的字符串,可在检索字符串的前面冠以“”。因此为了准确地匹配一个完整的字,可在检索字符串前后加入“” 。例

24、如,若想在整个文件中检索 “search” 这一英文单词,可以输入“:/”命令。:/str$:/6.3 字符串替换字符串替换是述字符串检索的基础上实现的。因此,在字符串检索与替换的过程中可使用任何通配符。字符串替换命令的基本语法格式::g /search-string/ s/ /replatring/ gc其中,第一个字符命令“g”表示全文检索,“s”表示替换,第二个字符命令“g”表示替换匹配的所有字符串,“c”表示在替换之前需经用户确认。例如,把文件中的所有字符串“BA”替换为“BB”,命令为::g /BA/ s/ /BB/ gc排序排序是一种经常需要用到的工具。使用 sort 命令可对输入

25、数据或文件内容进行排序,使其按照一定的顺序逐行显示。Sort 命令的语法格式简写如下:sort -bdfimnru k start,stop t char o outfile filefile 表示准备排序的文件常用令选项及其功能如下表所示1.1 用 vim 编辑一个文本文件 namelist 内容如下:选项简单说明-b表示忽略文本行前置的空白字符-d表示仅考虑字母数字和空格字符,忽略标点符号等字符,按字典顺序排序-f表示排序时忽略字母的大小写,所有的小写字母均作大写字母处理,进行排序-k start,stop表示排序字段的字段位置,或者排序字段的起止字符位置及范围。如果没有明确指定排序字段,

26、默认的排序字段为整个文本行-n表示按照字符串的数值而不是文本进行排序-o outfile用于指定排序结果的输出文件(默认值为标准输出)-r表示按照从大到小或反向字符的顺序排序-t char用于指定除空白字符之外的其他字段分隔符1.2 以第 2 个自然字段作为排序字段,对指定文件的数据进行排序$sort k 2 namelist1.3 从第 4 个自然字段的第 2 个字符开始,对指定文件的数据进行排序$sort k 4.2 namelist1.4 以第 1 个和第 2 个自然字段作为排序字段,对指定文件的数据进行排序$sort k 1 -k 2 namelist1.5 sort 命令经常用于排序

27、其令的输出结果。例如,”ls -l”命令的输出通常是按文件名的字符顺序打印文件列表的,为了按照文件的大小,从大到小排序,可以观察“ls -l”命令的输出,确定文件大小字段的位置(第五列),然后利用”-k”、 “-r”(从大到小排序)和“-n”(按数值的大小排序)选项进行排序。$ls -l /bin | sort k 5 -rn1.5 默认情况下,是以空白字符为分隔符来确定字段的,若要更改分隔符用 sort 的命令选项-t首先把文件 namelist 中的”t”替换为”,”vim namelist进入 vim 编辑器在命令模式下,输入命令:g/t/s/,/gc:wq$sort k 2 t, namelistvim 下的字符串替换命令的基本语法格式如下::g/search-string/s/replatring/gc其中,第一个字符命令“g”表示全文检索,“s”表示替换,第二个字符命令“g”表示替换匹配的所有字符串,“c”表示替换之前需经用户确认。因此,为了把文件中的所有字符串“BA”替换为“BB”,可输入下列命令::g/BA/s/BB/gc2less 命令less 是一个分页工具,可以一屏一屏地查看信息使用空格向前移动一屏;b 键向后移动一屏;q 键退出;使用箭头键前后移动一行;搜索文件内容,按/,然后输入预搜索的内容例:使用 ls 和more 命令来列举/etc 目录中的内容

温馨提示

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

评论

0/150

提交评论