grep:文本搜索工具
根据用户给出的"模式",搜索出自己需要的信息
[root@bjgwzd.com hadoop]# grep "centos" /etc/passwd
grep 选项 "模式" 文件名
—color 关键字标记颜色
-v 取反操作
基本正则表达式:
元字符:
. 任意单个字符
[] 集合中的单个字符
[[:digit:]] [0-9]
[a-z]
[A-Z]
[a-zA-Z]
[0-9a-zA-Z]
[[:space:]]
[[:punct:]]
[^] 集合外的任意单个字符
匹配次数:
* 匹配其前面字符任意次:0,1,。。。
grep "[a-z]*y"
xy xxy xxxy y
? 匹配其前面字符0,1
grep "x?y"
xy xxy xxxy y
+ 匹配其前面字符至少1次
{m} 匹配其前面字符至少m次
{m,n} 匹配其前面字符至少m次,最多出现n次
.* 匹配任意长度任意字符
位置锚定:
^ 行首锚定
$ 行尾锚定
^$ 空白行
< 词首锚定
> 词尾锚定
<单词锚定>
()
1、显示/proc/meminfo文件中以大写或小写S开头的行;
grep --color "^[Ss]" /proc/meminfo
2、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
grep -v --color "/sbin/nologin$" /etc/passwd
3、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
grep --color "/bin/bash$" /etc/passwd
4、找出/etc/passwd文件中的一位数或两位数;
grep --color "<([0-9]|[1-9][0-9])>" /etc/passwd
5、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
grep --color "^[[:space:]]+" /boot/grub/grub.conf
6、显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
grep --color "^#[[:space:]]+[^[:space:]]+" /etc/rc.d/rc.sysinit
7、找出netstat -tan命令执行结果中以'LISTEN'(后可有空白字符)结尾的行;
8、添加用户bash, testbash, basher, nologin(SHELL为/sbin/nologin),而找出当前系统上其用户名和默认shell相同的用户;
e.g.:tomcat查看日志
tail -f logs/catalina.out | grep --color=auto -C 10 -w "login"