linux---vim和grep
vim编辑器
在Linux系统中,推荐使用vim编辑器工具编辑文本和配置文件。
安装:yum install vim-enhanced
示例:

注:如果文件不存在的话,可以直接使用vim创建,如 vim 1.txt
三种模式:
命令模式(Command mode)
使用命令 vim 文件名 后,便进入了命令模式。
在此模式下敲击键盘的动作会被Vim识别为命令。
常用命令:i 切换到输入模式。x 删除当前光标后面的一个字符。:切换到底线命令模式。
输入模式(Insert mode)
此模式下进行文本编辑。
底线命令模式(Last Line mode)
此模式下可以输入单个或多个字符的命令。
常用命令:q 退出vim。 w 保存文件。 wq 保存并退出。set nu 显示行号。
注:按ESC键,可从输入模式(1下ESC)或底线命令模式(2下ESC)退出到命令模式。

常用命令:
跳至行首和行末
- 行首:在交互模式下,为了将光标定位到一行的开始位置,只需要按下数字键
0即可,键盘上的Home键也有相同效果。 - 行末:在交互模式下,为了将光标定位到一行的末尾,只需要按下美元符号键
$即可,键盘上的End键也有相同效果。
按单词移动
在交互模式下,按字母键 w 可以一个单词一个单词的移动。
退出文件
在交互模式下,按下冒号键 : 进入命令模式,再按下 q 键,就可以退出了。
如果在退出之前又修改了文件,就直接想用 :q 退出 Vim ,那么 Vim 会显示一个红字标明错误信息。此时我们有两个选择:
- 保存并退出
:wq或:x; - 不保存且退出
:q!。
标准操作
删除字符
在交互模式下,将光标定位到一个你想要删除的字符上,按下字母键 x 你会发现这个字符被删除了。
也可以一次性删除多个字符,只需要在按 x 键之前输入数字即可。
删除(剪切)单词,行
- 删除一行:连按两次
d来删除光标所在的那一行。 - 删除多行:例如先输入数字
2,再按下dd,就会删除从光标所在行开始的两行。 - 删除一个单词:将光标置于一个单词的首字母处,然后按下
dw。 - 删除多个单词:例如先按数字键
2再按dw就可以删除两个单词了。 - 从光标所在位置删除至行首:
d0。 - 从光标所在位置删除至行末:
d$。
复制单词,行
- 复制行:按两次
y会把光标所在行复制到内存中,和dd类似,dd用于“剪切”光标所在行。 - 复制单词:
yw会复制一个单词。 - 复制到行末:
y$是复制从光标所在处到行末的所有字符。 - 复制到行首:
y0是复制光标所在处到行首的所有字符。
粘贴
如果之前用 dd 或者 yy 剪切复制过来的,可以使用 p 来粘贴。同样也可以使用 数字+p来表示复制多次。
替换一个字符
在交互模式下,将光标置于想要替换的字符上。按下 r 键,接着输入你要替换的字符即可。
撤销操作
如果要撤销最近的修改,只需要按下 u 键,如果想要撤销最近四次修改,可以按下4,再按下 u 。
重做
取消撤销,也就是重做之前的修改使用 ctrl + r 。
跳转到指定行
Vim 编辑的文件中,每一行都有一个行号,行号从1开始,逐一递增。
行号默认是不显示,如果需要它显示的话,可以进入命令模式,然后输入 set nu ,如果要隐藏行号的话,使用 set nonu 。
- 跳转到指定行:
数字+gg,例如7gg,表示跳转到第7行。 - 要跳转到最后一行,按下
G。 - 要跳转到第一行,按下
gg。
高级操作
查找
处于交互模式下,按下 / 键,那么就进入查找模式,输入你要查找的字符串,然后按下回车。光标就会跳转到文件中下一个查找到的匹配处。如果字符串不存在,那么会显示 "pattern not found" 。
n跳转到下一个匹配项;N跳转到上一个匹配项。
[注意] 用斜杠来进行的查找是从当前光标处开始向文件尾搜索,如果你要从当前光标处开始,向文件头搜索则使用 ? ,当然也可以先按下 gg 跳转到第一行在进行全文搜索。
查找并替换
替换光标所在行第一个匹配的字符串:
:s/old str/new str
替换光标所在行所有旧字符串为新字符串:
:s/old str/new str/g
替换第n行到第m行中所有字符串:
:n,m s/old str/new str/g
全文替换:
:%s/old str/new str/g
cat 查看文件内容
cat -n 1.txt 显示行号
grep 文本过滤工具(很重要)
print lines match a pattern(格式)
参数:-i 不区分大小写(ignore) -v 取反(invert) -n 显示行号(line-number) -w 按单词过滤(word-regexp)
-o 只匹配过滤的内容(only-matching,结合正则表达式使用) -E 同时匹配多个过滤(等同于egrep命令)
-c 只输出匹配行的计数


浙公网安备 33010602011771号