1.正则表达式:就是一套处理大量字符串而定义的规则和方法。
2.正则表达式的应用很广泛,PERL ,PHP,JAVA等。
3.linux运维中的正则表达式常用的:grep ,sed ,awk  (linux三剑客).
4.正则表达式和linux通配符是有本质区别的。
注意事项:a,linux正则表达式一般以行为单位处理的。
          b,vim /etc/profile  alias grep='grep --color=auto'  (生效)source   /etc/profile

5.linux 正则表达式
基础正则表达式:BRE  
1)^word 表示搜索以word开头的内容  grep "^I" test.txt  
2)word$表示以word结尾的内容      grep ".$" test.txt
3)grep "^$" test.txt   
4)grep  -v "^$" test.txt 排除空行
5). 代表任意一个字符,(当前目录,加载文件)
6)\ 转义字符   \. 还原小数点   grep "\.$" test.txt 
7)* 重复0个或多个前面的一个字符   grep "o*" test.txt
8).* 匹配所以字符. ^.* 任意多个字符开头。
9)[abc] 匹配字符集合内任意一个字符[a-z]
10)[^abc] ^表示非 ,不包含a或b或c   grep  "[^0-9]" test.txt
11).{} 重复前一个字符(注意加\ 转义)
   
    .{n} 至少n次
    .{m} 至多m次
    .{n,m} 重复n到m次   grep "1\{1\}" test.txt  
                         grep "1\{1,2\}" test.txt
grep命令:
-v 排除匹配的内容
-E 支持扩展的正则表达式
-i 忽略大小写
-o 只输出匹配的内容
--color=auto 匹配的内容显示颜色
-n 在行首显示行号
cat -n  test.txt 显示行号
wc -l  统计行数

POSIX字符:

为了在不同国家的字符编码中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字符类,如[:alnum:]是[A-Za-z0-9]的另一个写法。要把它们放到[]号内才能成为正则表达式,如[A- Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都支持POSIX的字符类。

[:alnum:]    #文字数字字符   

[:alpha:]    #文字字符   

[:digit:]    #数字字符   

[:graph:]    #非空字符(非空格、控制字符)   

[:lower:]    #小写字符   

[:cntrl:]    #控制字符   

[:print:]    #非空字符(包括空格)   

[:punct:]    #标点符号   

[:space:]    #所有空白字符(新行,空格,制表符)   

[:upper:]    #大写字符   

[:xdigit:]   #十六进制数字(0-9,a-f,A-F)

 

 1.显示/etc/passwd文件中以bash结尾的行

wKiom1XirZjxSo7lAABtMiCm-rE287.jpg

2.显示/etc/passwd文件中的两位数或三位数

wKioL1XitI6CHBJyAAMP2xsMAYc803.jpg

3.显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行

wKioL1XiulHzyI_oAAGf3Cfcf-c999.jpg

4.添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行

wKioL1XiwGHDBxJuAABeFOtgPag753.jpg

5.显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)

wKioL1Xiw0ORQMgSAABVZyEuVhM969.jpg

6.找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行

wKiom1XiwhXxczTcAAFXUpGgIcU717.jpg

7.使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名

wKioL1XixnXhA3hdAABwnLZ2nyA497.jpg

8.找出ifconfig命令执行结果中1-255之间的数字

wKioL1XiyOah626HAAF0xlzmJyg181.jpg