Linux 之 vi 常用命令大全
引言
Linux 命令是日常后端开发必不可少的一项基本技能,而所有Linux发行版都包含
vi
文本编辑工具。
vi
命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim
,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。
vi两种模式
vi编辑器支持 编辑模式
和 命令模式
(包含转义命令),要正确使用vi编辑器就必须熟练掌握着两种模式的切换。
编辑模式下可以完成文本的编辑功能;
命令模式下可以完成对文件的操作命令;
默认情况下,打开vi编辑器后自动进入命令模式。
使用
A
、a
、O
、o
、I
、i
键切换到编辑模式
使用Esc
键切换到命令模式
命令模式
在Shell提示符后输入命令vi,进入vi编辑器,并处于vi的命令模式。此时,从键盘上输入的任何字符都被作为编辑命令来解释。例如:
插入命令( i )
附加命令( a )
打开命令( o )
替换命令( s )
修改命令( c )
取代命令( r )
如果输入的字符不是vi的合法命令,则机器发出“报警声”,光标不移动。
另外,在命令模式下输入的字符(即vi命令)并不在屏幕上显示出来,例如,输入 i
,屏幕上并无变化,但通过执行 i
命令,编辑器的工作方式却发生变化:由命令模式变为编辑模式。
ex转义命令
vi和ex编辑器的功能是相同的,二者的主要 区别
是 用户界面
。
在vi中,命令通常是 单个字母
,而在ex中,命令是以 Enter
键结束的命令行。
vi有一个专门的 "转义"
命令,可访问很多面向ex命令。为使用ex转义方式,可输入一个 冒号( : )
作为ex命令提示符,冒号出现在命令行(通常在屏幕最下一行)。
编辑模式
通过输入vi的 编辑命令
可以从 命令模式
进入 编辑模式
。
在编辑模式下,从键盘上输入的所有字符都被插入到正在编辑的缓冲区中,被当作该文件的正文。进入编辑模式后,输入的可见字符都在屏幕上显示出来,而编辑命令不再起作用,仅作为 普通字母
出现。例如:
在
命令模式
下输入字母i
,进到编辑模式,然后再输入i,就在屏幕上相应光标处添加一个字母i。
由编辑模式回到命令模式的办法是按下 Esc
键。如果已在命令模式下,那么按下Esc键就会发出“嘟嘟”声。为了确保用户想执行的vi命令是在命令模式下输入的,不妨多按几下 Esc
键,听到嘟声后再输入命令。
内置命令
翻页命令
Ctrl+u
向前
翻半屏Ctrl+b
向前
翻一屏Ctrl+d
向后
翻半屏Ctrl+f
向后
翻一屏
插入命令
a
在当前字符后添加文本A
在当前行末尾添加文本i
在当前字符前插入文本I
在当前行首插入文本o
在当前行后面插入一空行O
在当前行前面插入一空行
删除命令
x
删除光标后字符X
删除光标前字符D
删除当前行光标后所有内容dd
删除光标行整行内容ndd
删除当前行及其后n-1行
查找命令
/字符串
文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示,按n
查找下一个?字符串
文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示,按n
查找下一个
复制命令
yy
复制当前行内容保存到缓存区nyy
自当前行开始复制n行的内容保存到缓存区
粘贴命令
p
粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方P
粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方
退出命令
:q
在命令模式下,退出vi:q!
在命令模式下,忽略更改强制退出vi
保存命令
:w
在命令模式下,保存文件更改:w!
在命令模式下,强制保存文件更改
保存并退出命令
:wq
在命令模式下,保存文件并退出viZZ
命令模式下保存当前文件所做的修改后退出vi
跳转命令
:行号
光标跳转到指定行的行首:$
光标跳转到最后一行的行首
替换命令 s/
:s/old/new
将当前行第一个匹配的字符替换为指定字符:s/old/new/g
将当前行所有匹配的字符替换为指定字符:%s/old/new
将整个文件中每行第一个匹配的字符替换为指定字符:%s/old/new/g
将整个文件中所有匹配的字符替换为指定字符:m,ns/old/new
将第m到n行中匹配到的第一个字符替换为指定字符:m,ns/old/new/g
将第m到n行中所有匹配到的字符替换为指定字符
打开文件命令
:e
文件名:在命令模式下,打开并编辑指定名称的文件:n
在命令模式下,如果同时打开多个文件,则继续编辑下一个文件
查询/显示行号命令
:f
在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例:set number
在命令模式下,用于在最左端显示行号:set nonumber
在命令模式下,用于在最左端不显示行号
语法
vi(选项)(参数)
选项
+<行号>
窗口中间位置从指定行号的行在开始显示文本内容-b
以二进制模式打开文件,用于编辑二进制文件和可执行文件-c<指令>
在完成对第一个文件编辑任务后,执行给出的指令;-d
以diff模式打开文件,当多个文件编辑时,显示文件差异部分;-l
使用lisp模式,打开“lisp”和“showmatch”;-m
取消写文件功能,重设“write”选项;-M
关闭修改功能;-n
不使用缓存功能;-o<文件数目>
指定同时打开指定数目的文件;-R
以只读方式打开文件;-s
安静模式,不显示指令的任何错误信息。
参数
文件列表:指定要编辑的文件列表。多个文件之间使用空格分隔开。
- 本文标签: linux 运维
- 本文链接: https://www.58cto.cn/article/31
- 版权声明: 本文由程序言原创发布, 非商业性可自由转载、引用,但需署名作者且注明文章出处:程序言 》 Linux 之 vi 常用命令大全 - https://www.58cto.cn/article/31