由于目前的应用服务器大多基于Linux进行搭建,当我们进行部署或维护的时候就会用到文本编辑的功能。
下面来简单介绍一下在Linux中如何进行文本编辑。-
模式介绍
vi编辑器的模式共有三种,分别是一般模式、编辑模式、尾行指令模式。
当使用vi命令打开一个文件时(也就是vi命令后面紧跟指定文件并按回车键时所处的状态),就会进入一般模式。在一般模式下可以与编辑模式、末行指令模式相互转换,但是编辑模式和末行指令模式之间不能无法直接切换,必须先切换为一般模式后方可。
下面给出三种模式之间转换的示意图:
- 一般模式
当使用vi打开某个文件时,默认会进入到一般模式。在该模式中最基础的功能是使用上下左右键来移动光标。当然,也可使用组合键来执行复制、粘贴、删除等功能。
- 编辑模式
在一般模式中,按i键可以进入编辑模式(这是最简单的进入方式,底部会出现–INSERT–字样,还有其他的进入方式后面介绍)。在编辑模式中,依然可以使用上下左右键来移动光标,同时还可以输入文字到文件中。从编辑模式回到一般模式需要按Esc键。
- 末行指令模式
在一般模式中,按冒号键 :或斜杠键 / 或问号键 ? 就会在当前视图的最后一行出现相应的符号,这就代表进入了相应的末行指令模式。
操作
下面通过几个案例来演示vi常见的操作。
- 案例一:使用vi创建和编辑一个文件
(1)使用vi创建一个文件vi_file,进入一般模式
使用到的命令如下所示:
vi vi_file
执行后如下图所示:
(2)按i键从一般模式进入编辑模式
按”i”键之后,下面会出现Insert的字样,表明已经成功进入编辑模式,如下图所示:
(3)在编辑模式中写一段话后退出编辑模式,进入一般模式
在编辑模式下输入下面的内容:
ip=192.168.10.30
接着按ESC(退出键)进入一般模式,如下图所示:
(4)在一般模式中复制并粘贴第一行的文字
将光标移动到某一行后,按两次y键,即可复制该行的内容,按p键可粘贴到光标所在行的下一行。操作后如下图所示:
(5)在一般模式中将刚刚复制的文字删掉
将光标定位到要删除的行,按d键两次,即可删除该行。操作后如下图所示:
(6)在一般模式中将IP删除
将光标定位到要删除的单词处(单词首个字符),依次按d和w键,即可删除该词。执行后如下图所示:
(7)恢复刚刚删除的词IP
如果想撤销操作,则可以按u键。操作结果如下所示:
(8)切换至末行指令模式并保存退出
输入:后,再输入x,即可保存退出(x的功能和wq相同)。执行之后使用cat命令查看结果如下所示:
- 案例二:搜索关键字
(1)使用vi打开/etc/ssh/sshd_config文件。
使用到的命令如下所示:
vi /etc/ssh/sshd_config
执行结果如下所示:
(2)使用/符号查找关键字HostKey
接着按/键,并输入待查找内容如:HostKey后如下所示:
如果需要继续往下查找对应的关键字,则按n键;如果需要向上查找对应的关键字,则按大N(也就是Shift+n)。
- 案例三:替换关键字
有时候需要将整篇文档中的某个词换成另外一个词,如果靠手工寻找替换是不现实的。利用末行指令模式则可以轻易实现这个功能。
首先利用cp指令拷贝一份sshd_config,使用到的指令如下所示:
cp /etc/ssh/sshd_config ./vi_file2
执行结果如下所示:
接着使用vi命令来打开vi_file2文件进行编辑,并使用如下命令将文件中的HostKey全部替换成NewKey。
:1,$s/HostKey/newKey/g
执行之后结果如下所示: