由于目前的应用服务器大多基于Linux进行搭建,当我们进行部署或维护的时候就会用到文本编辑的功能。

下面来简单介绍一下在Linux中如何进行文本编辑。-

模式介绍

vi编辑器的模式共有三种,分别是一般模式、编辑模式、尾行指令模式。

当使用vi命令打开一个文件时(也就是vi命令后面紧跟指定文件并按回车键时所处的状态),就会进入一般模式。在一般模式下可以与编辑模式、末行指令模式相互转换,但是编辑模式和末行指令模式之间不能无法直接切换,必须先切换为一般模式后方可。

下面给出三种模式之间转换的示意图:

Linux中如何进行文本编辑插图

  • 一般模式

当使用vi打开某个文件时,默认会进入到一般模式。在该模式中最基础的功能是使用上下左右键来移动光标。当然,也可使用组合键来执行复制、粘贴、删除等功能。

  • 编辑模式

在一般模式中,按i键可以进入编辑模式(这是最简单的进入方式,底部会出现–INSERT–字样,还有其他的进入方式后面介绍)。在编辑模式中,依然可以使用上下左右键来移动光标,同时还可以输入文字到文件中。从编辑模式回到一般模式需要按Esc键。

  • 末行指令模式

在一般模式中,按冒号键 :或斜杠键 / 或问号键 ? 就会在当前视图的最后一行出现相应的符号,这就代表进入了相应的末行指令模式。

操作

下面通过几个案例来演示vi常见的操作。

  • 案例一:使用vi创建和编辑一个文件

(1)使用vi创建一个文件vi_file,进入一般模式

使用到的命令如下所示:

vi vi_file

执行后如下图所示:

Linux中如何进行文本编辑插图1

(2)按i键从一般模式进入编辑模式

按”i”键之后,下面会出现Insert的字样,表明已经成功进入编辑模式,如下图所示:

Linux中如何进行文本编辑插图2

(3)在编辑模式中写一段话后退出编辑模式,进入一般模式

在编辑模式下输入下面的内容:

ip=192.168.10.30

接着按ESC(退出键)进入一般模式,如下图所示:

Linux中如何进行文本编辑插图3

(4)在一般模式中复制并粘贴第一行的文字

将光标移动到某一行后,按两次y键,即可复制该行的内容,按p键可粘贴到光标所在行的下一行。操作后如下图所示:

Linux中如何进行文本编辑插图4

(5)在一般模式中将刚刚复制的文字删掉

将光标定位到要删除的行,按d键两次,即可删除该行。操作后如下图所示:

Linux中如何进行文本编辑插图5

(6)在一般模式中将IP删除

将光标定位到要删除的单词处(单词首个字符),依次按d和w键,即可删除该词。执行后如下图所示:

Linux中如何进行文本编辑插图6

(7)恢复刚刚删除的词IP

如果想撤销操作,则可以按u键。操作结果如下所示:

Linux中如何进行文本编辑插图7

(8)切换至末行指令模式并保存退出

输入:后,再输入x,即可保存退出(x的功能和wq相同)。执行之后使用cat命令查看结果如下所示:

Linux中如何进行文本编辑插图8

  • 案例二:搜索关键字

(1)使用vi打开/etc/ssh/sshd_config文件。

使用到的命令如下所示:

vi /etc/ssh/sshd_config

执行结果如下所示:

Linux中如何进行文本编辑插图9

(2)使用/符号查找关键字HostKey

接着按/键,并输入待查找内容如:HostKey后如下所示:

Linux中如何进行文本编辑插图10

如果需要继续往下查找对应的关键字,则按n键;如果需要向上查找对应的关键字,则按大N(也就是Shift+n)。

  • 案例三:替换关键字

有时候需要将整篇文档中的某个词换成另外一个词,如果靠手工寻找替换是不现实的。利用末行指令模式则可以轻易实现这个功能。

首先利用cp指令拷贝一份sshd_config,使用到的指令如下所示:

cp /etc/ssh/sshd_config ./vi_file2

执行结果如下所示:

Linux中如何进行文本编辑插图11

接着使用vi命令来打开vi_file2文件进行编辑,并使用如下命令将文件中的HostKey全部替换成NewKey。

:1,$s/HostKey/newKey/g

执行之后结果如下所示:

Linux中如何进行文本编辑插图12