ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:23.23KB ,
资源ID:8176552      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8176552.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Linux vi 命令大全.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Linux vi 命令大全.docx

1、Linux vi 命令大全Linux vi 命令大全Vim (vi) 是Linux中功能强大的编辑工具。VI 是visual edit 的缩写 文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex, sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,以下稍做总结, 1 vi有3中主要的模式:1.1 Normalmode:当进入vi时,默认的模式就是normalmode。在此模式下,无法输入任何文字,不过可以利用按键命令(并不是输入“:”再输入命令的方式)来执行许多操作命令,例如移动光标位置、复制、删除。1.2 Insertmode:进入vi输入a、i、或o键。即可进

2、入insertmode,此模式下可以输入文字内容。1.3 Command-linemode:normal mode中输入“:”即会进入command-linemode,在此模式下,可以做一些与输入文字无关的事,例如通过输入命令如:“:set number”,“:s/p1/p2/g”,“:wq”搜索字符串、保存文件或结束编辑等。2 进入vi的命令 (Shell提示符下输入)e.g. $ vi +/while exercise1 解释:打开文件exercise1,并将光标置于第一个与“while”匹配的串处,注意其中的“+”是必须的。vi filename :打开或新建文件,并将光标置于第一行首

3、vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename.filename :打开多个文件,依次进行编辑 3 Normal mode3.1 移动光标类命令 Number+“”:光标右移number个字符Number+“”:光标左移number个字符Number+“”:光标上移number行Number+“”:光标下移

4、number行h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 Enter :光标下移一行 w或W :光标右移一个字至字首 b或B :光标左移一个字至字首 e或E :光标右移一个字至字尾 ) :光标移至句尾 ( :光标移至句首 :光标移至段落开头 :光标移至段落结尾 nG:光标移至第n行首 ,必须是大写的Gn+:光标下移n行 n-:光标上移n行 n$:光标移至第n行尾 H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0:(注意是数字零)

5、光标移至当前行首 $:光标移至当前行尾 3.2 屏幕翻滚类命令 Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏 Ctrlb;向文件首翻一屏 nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 3.3 删除、复制及修改指令介绍d(delete)、c(change)和y(yank)这一类的指令在vi 中的指令格式为: number+operation+scope=command (运算子)(范围)比如:yw表示复制当前word 4yw复制当前以及后面个字,总工个字,4+yank+w(word)3.4 复制命令yy命令复制当前整行的内容到vi缓冲区

6、yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词y$复制光标所在位置到行尾内容到缓存区y复制光标所在位置到行首内容到缓存区#yy例如:5yy就是复制5行#yw例如:2yw就是复制两个单词,本身及后面一个单词如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。3.5 删除命令 d:先按d键,放开后按键,可将光标位置前一个字符删除;按键,则会将光标位置的字符删除;按键,可将当前光标所在的行与前一行一并删除。按键,可将当前的光标所在的行与下一行删除。D:可删除一行中光标所在位置之后的所有字符。dd:连续按2次d键可删

7、除光标所在的那一行。dw:将光标停在某个字的第一个字符,按dw键时,会将此字整个删除。如将光标置在某个字中间的字符上,则会将此字中光标后面的字符删除。nd:n为数字,如按3d,再按下键,则删除光标上方的3行,再包括本身1行,共删除4行。若按下键,则删除光标下方3行再包括本身1行,共4行。ndd:若按3dd键,表示删除当前光标位置的1行和下面的2行。x:删除光标所在位置的字符X:删除光标所在位置的前一个字符,与d+键一样nx:按4x键,表示删除光标位置后的3个字符和光标本身所在的字符nX:按4X键,表示删除光标位置之前的4个字符(不包括光标的字符)ndw或ndW:删除光标处开始及其后的n-1个字

8、 d0:删至行首,数字d$:删至行尾 ndd:删除当前行及其后n-1行 x或X:删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u:删除输入方式下所输入的文本 文本删除在编辑文本时,经常需要删除一些不需要的文本,我们可以用键将输错或不需要的文本删除,但此时有一个限制就是当删到行头之后,再想删上面那行的内容是不可能的。在命令模式下,Vi提供了许多删除命令。这些命令大多是以d开头的。常用的有:1. 删除单个字符x: 删除光标处的字符。若在x之前加上一个数字n,则删除从光标所在位置开始向右的n个字符。X:删除光标前面的那个字符。若在X之前加上一个数字n,则删除从光标前面那个字符开始向左的n

9、个字符。显然这两个命令是删除少量字符的快捷方法。2. 删除多个字符dd:删除光标所在的整行。在dd前可加上一个数字n,表示删除当前行及其后n-1行的内容。D或d$:两命令功能一样,都是删除从光标所在处开始到行尾的内容。d0:删除从光标前一个字符开始到行首的内容。dw:删除一个单词。若光标处在某个词的中间,则从光标所在位置开始删至词尾。同dd命令一样,可在dw之前加一个数字n,表示删除n个指定的单词。 如果用户不小心进行了误删除操作,也不要紧,Vi提供了恢复误操作的命令,并且可以将恢复的内容移动,放在文本的任何地方。恢复命令用2 np,其中n为寄存器号。这是因为Vi内部有9个用于维护删除操作的寄

10、存器,分别用数字1,2,? ,9表示,它们分别保存以往用dd命令删除的内容。这些寄存器组成一个队列,例如最近一次使用dd命令删除的内容被放到寄存器1中;当下次再使用dd命令删除文本内容时,Vi将把寄存器1的内容转存到寄存器2中,而寄存器1中又将是最近一次dd命令删除的内容。以此类推,Vi可以保存有最近九次用dd命令删除的内容,而前面的用dd命令删除的内容则被抛弃。例18 假设当前编辑文件为xu.c/* this is a example */#include void main( )int i , j ;printf( “ please input a number : / n ” );sca

11、nf ( “ % d ” , &i ) ;j = i + 100 ;printf ( “ /n j = % d /n ” , j ) ;return ;我们对其进行如下操作:将光标移至文件第一行,按dd命令,此时文件第一行的内容被删除,且被删除的内容保存在寄存器1中; 按5j使光标下移至第一个printf语句行; 按dd命令将该行删除,此时寄存器1中将保存刚刚被删除的内容: printf (“ please input a number : n ” );而寄存器1原有的内容:/* this is a example */则被保存到寄存器2中;在最末行模式下,也可以对文件内容进行删除,但它只能删

12、除整行,一次可将某个指定范围内(起始行号,终止行号)的所有行全部删除。需要注意的是,用此种方法进行删除时,Vi并不把所删内容放入寄存器中,因而当发生误删除操作时,不能用2 np命令恢复,只能用u命令进行有限的恢复。3.6 重复操作与撤消 命令 . (点号) 、 u 、U . 重复上一次的操作,当并不是那种重作,他只是重复你上次输入的命令。 Ctrl+R 重做 ,注意大写的Ru 撤消上次操作 U 撤消当前行进行的任意修改。R:(意为Ctrl键)按此键就是执行redo命令,可以恢复刚才undo的操作取消上一命令(Undo)取消上一命令(Undo),也称复原命令,是非常有用的命令,它可以取消前一次的

13、误操作或不合适的操作对文件造成的影响,使之回复到这种误操作或不合适操作被执行之前的状态。取消上一命令有两种形式,在命令模式下键入字符u和U。它们的功能都是取消刚才输入的命令,恢复到原来的情况。小写u和大写U在具体细节上有所不同,二者的区别在于,大写U命令的功能是恢复到误操作命令前的情况,即如果插入命令后使用U命令,就删除刚刚插入的内容;如果删除命令后使用U命令,就相当于在光标处又插入刚刚删除的内容。这里把所有修改文本的命令都视为插入命令。也就是说,U命令只能取消前一步操作,如果用U命令撤消了前一步操作,当再按U键时,并不是撤消再前一步的操作,而是撤消了刚才U命令执行的操作,也就是又恢复到第一次

14、使用U命令之前的状态,结果是什么都没做。而小写u命令的功能是把当前行恢复成被编辑前的状态,而不管此行被编辑了多少次。例19 原来屏幕显示内容为:#include main ( )在命令模式下输入命令o,插入一新行,输入需要插入的内容后再按回到命令模式,屏幕显示内容为:#include main ( )printf ( “ How do you do ! ” ) ;若想取消这一插入操作,请按命令U后,屏幕恢复到原来显示的情况。注意:对于取消命令仍可以再使用取消命令。这时会产生一种“负负得正”的效果,文件状态将恢复到第一次执行取消命令之前的状态,如同没做任何操作一般。例如在上例中,再使用一次命令U

15、,屏幕将显示的内容仍为插入后的内容。重复命令(Redo)重复命令也是一个非常常用的命令。在文本编辑中经常会碰到需要机械地重复一些操作,这时就需要用到重复命令。它可以让用户方便地再执行一次前面刚完成的某个复杂的命令。重复命令只能在命令模式下工作,在该模式下按“.”键既可。执行一个重复命令时,其结果是依赖于光标当前位置的。例20 屏幕显示内容为:#include main ( )输入命令o,并输入一行内容后,再返回到命令模式下,屏幕显示内容为:#include main ( )printf ( “ How do you do ! ” ) ;此时输入命令“.”,屏幕显示内容为:#include ma

16、in ( )printf ( “ How do you do ! ” ) ;printf ( “ How do you do ! ” ) ;3.7 状态命令命令显示在vi状态行上的vi状态信息,包括正在编辑的文件名、是否修改过、当前行号、文件的行数以及光标之前的行占整个文件的百分比。4 Command-line mode4.1 搜索及替换命令 /pattern:从光标开始处向文件尾搜索pattern (按ESC,再按“/”)?pattern:从光标开始处向文件首搜索pattern (按ESC,再按“?”)n:在同一方向重复上一次搜索命令 N:在反方向上重复上一次搜索命令 :s/p1/p2/g:

17、将当前行中所有p1均用p2替代 (按ESC,再按“:”,接着输入“s/p1/p2/g”):n1, n2s/p1/p2/g :将第n1至n2行中所有p1均用p2替代 :g/p1/s/p2/g :将文件中所有p1均用p2替换 ,注意s后面是“/”example:当要将文章中的某一个字符串全部替换时(例如将所有的temp替换成tmp),使用“:g/temp/s/tmp/g”或“:1,s/temp/tmp/g”命令,可立刻将所有的“temp”替换成“tmp”字符串。如果不是所有的“temp”字符串都要替换时,可用“:g/temp/s/tmp/gc”或“:1,/s/temp/tmp/gc”命令。则找到每

18、一个“temp”字符串时,都会将整行显示在屏幕的下方,可输入“y”或“n”决定是否要替换。4.1.1 搜索文本/ 向后查找文本进入命令模式输入 /你要查找的文本; 例如找edit 输入 /edit ; ? 而向前查找文本就是输入 ?你要查找的文本 ; n 当有许多搜索结果时,命令模式下输入 n 就可以找下一个搜索结果N 则是反向下一个搜索结果。关于n和N的使用方法,当输入/hello,后vi 会标记并跳到第一个hello处,此时直接按键n或N即是查找后一个或前一个匹配的hello,并不需要输入:n或:N这样反而是错误的。r:替换光标所在的位置的字符。修改内容不一定要进入insertmode,在

19、normalmode中,只要将光标移到要更改的字符上,然后按R键,就可以输入要查找的字符了。R:连续替换光标所在的位置的字符,按Esc键停止替换cc:按cc键可以替换光标所在的那一行4.2 选项设置 (: set option)e.g. :set numberset nu 显示行号 set nonu 不显示行号 set ic 查找时不考虑大小写 set noic 查找时考虑大小写set all:列出所有选项设置情况 set term:设置终端类型 set ignorance:在搜索中忽略大小写 set list:显示制表位(Ctrl+I)和行尾标志($) set number:显示行号 set

20、 report:显示由面向行的命令修改过的数目 set terse:显示简短的警告信息 set warn:在转到别的文件时若没保存当前文件则显示NO write信息 set nomagic:允许在搜索模式中,使用前面不带的特殊字符 set nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始 set mesg:允许vi显示其他用户用write写到自己终端上的信息 4.3 最后行方式命令 4.3.1 Copy, move, delete:n1, n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下 :n1, n2 m n3:将n1行到n2行之间的内容移至到第n3行下 :n1

21、, n2 d :将n1行到n2行之间的内容删除 :w :保存当前文件 :e filename:打开文件filename进行编辑 :x:保存当前文件并退出 :q:退出vi :q!:不保存文件并退出vi :!command:执行shell命令command :n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入 :r!command:将命令command的输出结果放到当前行 4.4 寄存器操作 ?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字 ?nyw:将当前

22、行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字 ?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字 ?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字 ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。5 insert mode5.1 插入文本类命令 (从normal mode 转入insert mode)i :在光标前 I :在当前行首 a:光标后 A:在当前行尾 o:在当前行之下新开一行 O:在当前行之上新开一行 r:替换当前字符 R:替换当前字符及其后的字符,直至按ESC键 s:从当前

23、光标位置处开始,以输入的文本替代指定数目的字符 S:删除指定数目的行,并以所输入文本代替之 ncw或nCW:修改指定数目的字 nCC:修改指定数目的行 6 命令详解 6.1 进入vi vi test 6.2 离开vi :q! 离开vi,并放弃刚在缓冲区内编辑的内容。 :wq 将缓冲区内的资料写入磁盘中,并离开vi。 :ZZ 同wq 同wq :w 将缓冲区内的资料写入磁盘中,但并不离开vi。 :q 离开vi,若文件被修改过,则会被要求确认是否放弃修改的内容,此指令可与: w 配合使用。 6.3 输入模式:a(append) 游标之后加入资料。 A 该行之末加入资料 i (insert) 游标之前

24、加入资料 I 该行之首加入资料 o (open) 新增一行与该行之下供输入资料 O 新增一行与该行之上供输入资料 6.4 指令模式:B 移至该行第一个字符,若光标在该行第一字符则光标移至上一行第一字符。 b 由游标所在位置之前一个字串的第一个字元 cc 删除整行,修改整行的内容。 D 以行为单位,删除游标在内后面的所有字符。 db 删除该行光标前字符 dd 删除该行 de 删除自光标开始后面的字符 d加字符删除光标所在位置至字符之间的单 E移至该行最后字符,若光标在该行最后字符则光标移至下一行最后字符 e由游标所在位置至该字串的最后一个字元 G 移至该档案的最后一行 h 向前移一个字元 j 向

25、下移一个字元 k 向上移一个字元 0 移至该行之首 M 移至视窗的中间那行 L 移至视窗的最后一行 l 向后移一个字符 0 由游标所在位置该行的第一个字元 nG 移至该档案的第n行 n+ 自游标所在位置向后移n行至该行的第一字符 n- 自游标所在位置向前移n行至该行的第一字符 R 进入取代状态,直到ESC为止 s 删除游标所在字元,并进入取代模式直到ESC S 删除游标所在之该行资料,并进入输入模式直到ESC w 由游标所在位置之下一个字串的第一个字元 x 删除游标所在该字元。 X 删除游标所在之前一字元。 r 用接于此指令之后的字元取代(replace)游标所在字元 yy yank整行,使游

26、标所在该行复制到记忆体缓冲区 显示该行之行号、档案名称、档案中最末之行号、游标所在行号占 总行号之百分比 $ 由游标所在位置至该行的最后一个字元。 ) 由游标所在位置至下一个句子的第一个字元。 ( 由游标所在位置至该句子的第一个字元。 由游标所在位置至该段落的最后一个字元。 由游标所在位置至该段落的第一个字元 yank和delete可将指定的资料复制到记忆体缓冲区,而藉有put指令可将缓冲区内的资料复制到荧幕上 例如:搬移一行 :在该行执行dd 游标移至目的地 执行p 复制一行 :在该行执行yy 游标移至目的地 执行p 视窗移动: 视窗往下卷一页 视窗往上卷一页 视窗往下卷半页 视窗往上卷半页 视窗往下卷一行 视窗往上卷一行

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1