Grep
grep是linux中的文本过滤工具,以行为单位输出
同时还有一个工具叫做egrep,和grep本质上没啥区别
grep -E = egrep
常用的正则表达式:
- . : 一个任意字符,一定要有一个
- * : 0个或者一个,匹配多个在它之前的字符
- [] : []中的任意一个字符,[]内为一个范围 例如 [0-9]
- ? : 0个或者1个它前面的字符
- : 匹配至少1次在它前面的字符
- {m} : m表示次数,m次出现在它前面的字符 例如 {2}
- $ : 结尾
- ^ : 开头
用法:
代码语言:javascript复制grep -i : 忽略大小写
代码语言:javascript复制grep -v : 取反
代码语言:javascript复制grep -v ^$ : 去掉空行
代码语言:javascript复制grep -A <num> : 只显示匹配内容和后面指定行数的内容(行数包括匹配的那一行)
演示
代码语言:javascript复制不匹配配置文件中#开头的无效配置
代码语言:javascript复制啥都匹配
VIM编辑器
vim编辑器是vi编辑器的增强版本
用法: vim<filename>
进入vim时的模式为命令行模式,在此模式中可以通过按键的一些操作来选择进入编辑模式或者末行模式
按i
或者 按o
的等可以进入编辑模式,按esc退回命令行模式
按 : 进入末行模式,按esc退回命令行模式
不同模式的作用
- 编辑模式:按a,在当前光标处后面开始编辑,按i,在当前位置编辑,按o,新建一个空行插入(大写的O为上一行插入)
- 末行模式:能保存、退出、查找、替换
定位:
为了更直观的演示,这里用GIF,但是因为我懒,所以只演示几个
定位:在命令行模式中,直接按按键操作,不需要输入
定位这个文件的第一行:(直接按g)
定位到这个文件的最后一行:(G,可以按住shift再按g,或者直接开大写然后按g)
屏幕定位:
- H : 屏幕内显示的内容的第一行
- M : 屏幕内显示的内容的中间行
- L : 屏幕内的最后一行
快速换行:(通过行号定位,需要再末行模式下)
- :10 #指第十行
行内定位: (需要在命令行模式下)
- ^ : 定位到行首
- $ : 定位到行尾
- w : 定位到下一个词
命令行模式操作
文本复制:yy(复制当前行)
复制指定行数: yy 例如:6yy 指复制6行
p(小写):在光标下一行粘贴
P(大写):在光标上一行粘贴
删除当前行:dd
删除光标所在向下的n行:ndd (n为数字)
删除光标所在位置的字符: x 和 del按键功能一样,区别在于一个是命令行模式,一个是编辑模式
在一行中,删除从光标开始到行尾的内容: d$
乱七八糟懒得分类的操作
查找内容:
/<需要查找的内容>
当结果有多个时,按n查找下一个,按N回到上一个
以选出字符为单位的内容,按y复制:v(小写
以行为单位选出内容 按y复制 :V (大写
批量添加内容
ctrl v :区块选择 选择要添加的行,然后按大写i,输入要添加的字符,按ESC
末行模式
按 :
保存退出 :wq
强制放弃修改退出 :q!
强制保存退出 :x!
强制保存退出 :wq!
替换匹配到的内容
:s/<需要替换的内容>/<替换的内容>
替换所有匹配到的内容
:s/<需要替换的内容>/<替换的内容>/g
查找全文
:%s/<需要替换的内容>/<替换的内容>
指定行的范围替换
:110,180/<需要替换的内容>/<替换的内容>