标签:
正则表达式:
简单的说,正则表达式就是一套处理字符串的规则和方法,以行为单位对字符串进行处理,通过特殊的符号辅助,我们可以快速的过滤,替换某些特定的字符串。
运维工作中,会有大量的访问日志,错误日志。如何能快速的过滤出我们需要的内容,这就要靠正则表达式。
awk,sed,grep(egrep)linux三剑客想要工作的更高效,那么一定离不开正则表达式的配合。
我们想要玩好三剑客,主要是awk,sed,grep。三剑客的正则表达式。
正则表达式实际就是一些特殊的字符,赋予了他特等的含义。
1)^word 搜索以word开头的
2)word$ 搜索以word结尾的
3). 代表且只能代表任意一个字符
4)\ 转义字符,转义符号,让有着特殊身份意义的字符,脱掉马甲,还原原型。
5)* 重复0个或多个前面的一个字符
6).* 匹配所有字符。^.*以任意多个字符开头
7)[] 字符集合,重复特殊字符的符号
8)[^word] 匹配不包含^后的任意字符的内容
9)a\{n,m\} 重复n到m次,前一个字符
\{n,\} 重复至少n次,前一个字符
\{n\} 重复n次,前一个字符
扩展的正则表达式:ERE
1)+ 重复一个或一个以上前一个字符
2)? 重复0个或0以上个前面的字符
3)| 用或的方式查找多个字符串
实战例题
1.如何取得/etiantian文件的权限对应的数字内容,如-rw-r--r--为644,要求使用命令取得644或0644这样的数字。
方法1: xiaorui@xiaorui:~/test$ ll etiantian -rw-r--r-- 1 xiaorui xiaorui 0 11月 25 21:28 etiantian xiaorui@xiaorui:~/test$ ll etiantian |cut -c 2-10 rw-r--r-- xiaorui@xiaorui:~/test$ ll etiantian |cut -c 2-10|tr rwx- 4210 420400400 xiaorui@xiaorui:~/test$ ll etiantian |cut -c 2-10|tr rwx- 4210|awk -F "" ‘{print $1}‘ 4 xiaorui@xiaorui:~/test$ ll etiantian |cut -c 2-10|tr rwx- 4210|awk -F "" ‘{print $1+$2+$3 $4+$5+$6 $7+$8+$9}‘ 644 方法2: xiaorui@xiaorui:~/test$ stat etiantian 文件:"etiantian" 大小:0 块:0 IO 块:4096 普通空文件 设备:802h/2050d Inode:23200567 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 1000/ xiaorui) Gid:( 1000/ xiaorui) 最近访问:2015-11-25 21:28:48.071446235 +0800 最近更改:2015-11-25 21:28:48.071446235 +0800 最近改动:2015-11-25 21:29:07.707803664 +0800 创建时间:- xiaorui@xiaorui:~/test$ stat etiantian |sed -n ‘4p‘|awk -F ‘[(/]‘ ‘{print $2}‘ 0644 方法3: xiaorui@xiaorui:~/test$ stat etiantian |awk -F ‘[(/]‘ ‘NR==4 {print $2}‘ 0644 方法4: xiaorui@xiaorui:~/test$ stat etiantian |head -4|tail -1|awk -F ‘[(/]‘ ‘{print $2}‘ 0644
2.linux下通过mkdir命令创建一个新目录/home/xiaorui/ett,ett的硬链接数是多少,为什么?
在ett下再创建一个test目录,ett的硬链接数又是多少?为什么?
xiaorui@xiaorui:~$ mkdir ett xiaorui@xiaorui:~$ ls -ld ett/ drwxrwxr-x 2 xiaorui xiaorui 4096 11月 25 22:15 ett/ xiaorui@xiaorui:~$ cd ett/ xiaorui@xiaorui:~/ett$ mkdir test xiaorui@xiaorui:~/ett$ ls -ld ../ett/ drwxrwxr-x 3 xiaorui xiaorui 4096 11月 25 22:16 ../ett/ xiaorui@xiaorui:~/ett$ ll -i 24512863 drwxrwxr-x 3 xiaorui xiaorui 4096 11月 25 22:16 ./ 23068674 drwxr-xr-x 34 xiaorui xiaorui 4096 11月 25 22:15 ../ 24512865 drwxrwxr-x 2 xiaorui xiaorui 4096 11月 25 22:16 test/ xiaorui@xiaorui:~/ett$ ll -id /home/xiaorui/ett/ 24512863 drwxrwxr-x 3 xiaorui xiaorui 4096 11月 25 22:16 /home/xiaorui/ett// xiaorui@xiaorui:~/ett/test$ ls -lai 24512865 drwxrwxr-x 2 xiaorui xiaorui 4096 11月 25 22:16 . 24512863 drwxrwxr-x 3 xiaorui xiaorui 4096 11月 25 22:16 ..
当新创建一个目录时,此目录的硬链接数为2这是因为:
1、创建的目录本身为一个硬链接。
2、目录ett下隐藏目录.(点号)为创建目录的有一个硬链接,因此其硬链接数为2。
当在新创建目ett下再创建一个目录test时,ett目录的硬链接数为3,这是因为,在新创建的test目录下有一个隐藏..(两个点号)为ett的又一个硬链接。
3.请执行命令取出linux中wlan0的IP地址(请用cut,有能力者也可分别用awk,sed命令答)。
方法1: xiaorui@xiaorui:~$ ifconfig wlan0|grep "inet" inet 地址:192.168.1.111 广播:192.168.1.255 掩码:255.255.255.0 inet6 地址: fe80::162d:27ff:fefd:c215/64 Scope:Link xiaorui@xiaorui:~$ ifconfig wlan0|grep "inet " inet 地址:192.168.1.111 广播:192.168.1.255 掩码:255.255.255.0 xiaorui@xiaorui:~$ ifconfig wlan0|grep "inet "|awk ‘{print $2}‘ 地址:192.168.1.111 xiaorui@xiaorui:~$ ifconfig wlan0|grep "inet "|awk ‘{print $2}‘|awk -F ‘:‘ ‘{print $2}‘ 192.168.1.111 方法2: xiaorui@xiaorui:~$ ifconfig wlan0|grep "inet "|cut -d ‘:‘ -f2 192.168.1.111 广播 xiaorui@xiaorui:~$ ifconfig wlan0|grep "inet "|cut -d ‘:‘ -f2|cut -d ‘ ‘ -f1 192.168.1.111 方法3: xiaorui@xiaorui:~$ ifconfig wlan0|grep "inet "|awk -F "[ :]" ‘{print $13}‘ 192.168.1.111 方法4: xiaorui@xiaorui:~$ ifconfig wlan0|grep "inet "|awk -F "[ :]+" ‘{print $4}‘ 192.168.1.111 方法5: xiaorui@xiaorui:~$ ifconfig wlan0|awk -F "[ :]+" ‘NR==2{print $4}‘ 192.168.1.111 方法6: xiaorui@xiaorui:~$ ifconfig wlan0|sed -n ‘2p‘|sed ‘s#^.*地址:##g‘|sed ‘s# 广播:.*$##g‘ 192.168.1.111
4.请给出默认情况下eth0网卡配置文件的路径及客户端DNS的路径。
eth0网卡配置路径:/etc/sysconfig/network-scripts/ifcfg-eth0
客户端DNS的路径 :/etc/resolv.conf
5.推荐老男孩老师两篇博文:
Linux系统基础网络配置老鸟精华篇
深入浅出route命令小结
标签:
原文地址:http://www.cnblogs.com/migongci0412/p/5003091.html