Linux之文本处理
一、文本编辑器
在Linux系统中,即使在控制台命令行状态下,也需要进行大量的文本处理工作。Linux系统中几乎所有的配置文件都是以纯文本形式存在的,我们也要对这些文件进行编辑工作。Linux上常见的文本编辑器有vi、vim、ed、gedit、emacs等。本章介绍的文本编辑器就是平常使用最多的vim文本处理器。
vim简介
在命令行输入vim
[root@bogon Desktop]# vim
出现以下界面就是vim编辑器的界面
vim有三种工作模式
1.命令模式
使用vim打开任何一个文件,如
[root@localhost tmp]# vim sdn蜀道难
进入vi编辑器时,首先进入命令模式(command mode)。在命令模式下,从键盘输入任何字符都被当作命令来解释。在命令模式下,可以完成复制、粘贴、选择、删除、撤销等命令。输入命令后vim会立即执行,不需要回车,而且输入的字符不会在屏幕上显示出来。
2.插入模式
主要用于文本的编辑。该模式下用户输入的任何字符都被作为文件的内容保存起来,并在屏幕上显示出来。进去命令模式后,按字母i键或a键,进入插入模式。
插入模式有一个–insert–标识
在插入模式下,输入Esc键会返回到命令模式。
3.末行模式
命令模式下的命令可以完成很多功能,但要执行一些如保存当前修改并继续编辑、保存并退出vim环境、不保存修改退出vim环境、显示行号等操作还是必须要进入末行模式。在命令模式下用户可以按键盘的shift加:进入末行模式,在末行模式下我们可以进行保存修改或退出vim,也可以环境设置、列出行号、寻找字符串等对文件进行一些高级处理。
底行模式在打开vi编辑器后,文件的下面,有一个标识
在末行模式下按Esc键会退回命令模式
vim编辑器使用
命令模式下
命令
操作
yy
复制当前行
y0
复制当前字符到当前行的起始
y$
复制当前字符到当前行的末尾
yG
复制当前行到文件末尾的内容
n+yy
复制n行
p
粘贴
x
删除当前字符
X
删除前一个字符
dd
删除当前行
d$
删除当前字符到当前行的末尾
d0
删除当前字符到当前行的开始
dG
删除当前行到文件末尾
u
撤销上一个操作
r
替换当前字符
h或左方向键
左移一位
l(小写L)或右方向键
右移一位
j或下方向键
下移一位
K或上方向键
上移一位
^
移动到光标所在行的“行首”
$
移动到光标所在行的“行尾”
gg
移动到文件开头
G
移动到文件最后
w
移动到下个单词的开头
b
移动到上个单词的开头
e
移动到当前单词的字尾
H
移动到屏幕最上面一行
M
移动到屏幕中间一行
L
移动到屏幕最下面一行
插入模式
在命令行模式下按一下字母i或a就可以进入插入模式,这时候你就可以开始输入文字了。
末行模式
在命令模式下按”:”键进入末行模式
末行模式的常用命令操作
命令
退出方式
:w 文件名
以指定的文件名保存,并退出,类似于另存为。
:w
保存当前修改,还可以继续编辑
:wq
保存当前修改,并退出vim环境
:q
退出vim环境(如果当前文件发生修改,将无法保存)
:q!
不保存当前修改,并退出vim环境
😡
保存当前修改,并退出vim环境。相当于:wq的意思
ZZ
保存当前修改,并退出vim环境。相当于:wq的意思
:set number
显示行号,简写为:set nu。注意,vi关闭后行号将不再显示
:!
系统命令执行一个系统命令并显示结果,如在vim下需要执行ls时,可以使用:! ls
:sh
切换到命令行
查找和替换
命令组成
含义
%s
确定操作范围,%代表从文本的第一行到最后一行
s
执行替换操作
/+/-
搜索和替换的文本(搜索字母+,替换字母-)
g
对搜索到每一行的每一个实例进行替换;如果g缺失,则只替换每一行第一个符合条件的实例。
则在每次替换前都会请求用户确认,在屏幕最下方会出现如下内容。
replace with r (y/n/a/q/l/^E/^Y)?
字符
含义
y
执行替换
n
跳过此次替换
a
执行此次替换以及之后的所有替换
q
停止替换
l(小写L)
执行此次替换以及之后的所有替换
^E(Ctrl+E)
^E表示向下滚动
^Y(Ctrl+Y)
^Y表示向上滚动
常用的替换命令:
命令
说明
:s/vivian/sky/
替换当前行第一个 vivian 为 sky
:s/vivian/sky/g
替换当前行所有 vivian 为 sky
:%s/vivian/sky/
替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g
替换每一行中所有 vivian 为 sky