grep是一种强大的搜索工具,它能够用正则表达式搜索文本,并把匹配的行打印出来。

-a 表示不要忽视二进制数据。

-A显示列数,出了显示符合样本的那一行之外,并显示该行之后的内容。

-b 在显示符合样本的那一行之外,并显示该行之前的内容。

-c 计算符合样本的列数。

-C显示列数或显示行数,除了显示符合样本的那一行之外,并显示该行之前后的内容。

-d 进行动作,当指定要查找的目录而非文件时,必须要使用这项参数,否则grep命令将汇报信息并停止动作。

-e 指定字符串作为查找文件内容的范本文件

-i 忽略字符大小写的差别

-q 不显示任何信息

-n 在显示符合范本的那一行之前,表列出该列的标号。



例题一:用dmesg列出内核信息,并找出含“e1000”的那行。


blob.png


解析 dmesg 可以列出内核产生的信息,通过grep来选取网卡的相关信息,那我想把e1000,让他显色,并且还要加上行号,该怎样表示那?


blob.png


我的第一步先让关键字显色,第二部是显示行号,那么如果我想在关键字的前三行后四行也显示出来,该怎样表示那


blob.png


上面的很简单,那我们来做这一道显示CentOS7的/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面存非空白字符的行。

首先我们查看这个文件


blob.png


至少以一个空白字符开头的且后面存非空白字符的行^[[:space:]]\+"[^[:space:]]"

grep的用法有很多,后面都是跟一些命令的。例如。显示三个用户root,mage,wang的uid和默认shell,该怎样显示那,第一步也就是我们先要弄清楚,我们系统里面有没有这三个用户,当让一般都是没有的,所以我们要新建mage,和王的用户,


blob.png


第二部我们就是要找出uid和默认的shell


blob.png


这样的话我们这一题就已经做好了,此题主要考察我们的egrep的用法以及uid和shell的具体使用方法。

找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行,

本题就考察我们的egrep后面加一些常用命令的具体用法了,


blob.png


利用扩展正则表达式分别表示0-9、10-99、100-199、200-249、250-255


blob.png


这些题都是很简单的主要就是来考察我们egrep的具体用法,