《生产故障解决的基石》之linux grep用法

基础!基础!还是基础!

程序员每天除了编写代码,还得面对的一个问题就是线上问题排查

线上问题排查,除了业务熟悉,操作熟练,还有很重要的一个依据就是文件日志

所以查找日志就显得尤为重要,尤其是现在绝大多数服务器都是部署在Linux操作系统上面,这就要求基本的Linux命令grep必须很熟练。

在这里推荐《鸟哥的Linux私房菜》!

grep基本用法

grep是一个选取命令

就是将一段数据进行分析,输出我们想要的。或者是根据关键字,取出我们想要的那一行。所以一般来说,选取信息通常是针对"行"来分析的,并不是整篇信息

基本语法

grep -[acinv] [--color=auto] '关键字' filename

参数说明:

  • -a:将 binary 文件以text文件的方式查找数据
  • -c:计算找到 '关键字' 的次数
  • -i:忽略大小写的不太,所以大小写视为相同
  • -n:输出行号
  • -v:反向选择,即显示没有 '关键字的那一行'
  • --color=auto:即将找到的关键字部分加上颜色显示

例子1:将 /etc/man.config 文件中包含 MANPATH的行

grep MANPATH man.conf

《生产故障解决的基石》之linux grep用法_第1张图片

再试试"-n"输出行号,可以看到区别是输出带了行号

grep -n MANPATH man.conf

《生产故障解决的基石》之linux grep用法_第2张图片

再试试"-i"忽略大小写,可以看到,小写的manpath这一行也显示出来了

grep -v MANPATH man.conf

《生产故障解决的基石》之linux grep用法_第3张图片

再试试"-v"忽略大小写,可以发现输出的全部不包含MANPAHT

grep -v MANPATH man.conf

《生产故障解决的基石》之linux grep用法_第4张图片

高级用法,正则表达式

grep [-A] [-B] '关键字' filename

参数说明:

-A:为after的意思,后面可加数字,除了列出该行外,后续的n行也列出

-B:为before的意思,后面可加数字,除了列出该行外,前面的n行也列出

你可能感兴趣的:(linux)