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 会显示一个红字标明错误信息。此时我们有两个选择:

  1. 保存并退出 :wq 或 :x ;
  2. 不保存且退出 :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 只输出匹配行的计数

 

posted @ 2020-05-08 02:17  盗哥泡茶去了  阅读(1491)  评论(0)    收藏  举报