码迷,mamicode.com
首页 > 系统相关 > 详细

第十三天-linux正则表达式及重点命令

时间:2015-11-28 19:52:47      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

正则表达式:
  简单的说,正则表达式就是一套处理字符串的规则和方法,以行为单位对字符串进行处理,通过特殊的符号辅助,我们可以快速的过滤,替换某些特定的字符串。
  运维工作中,会有大量的访问日志,错误日志。如何能快速的过滤出我们需要的内容,这就要靠正则表达式。
  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命令小结
  

 

第十三天-linux正则表达式及重点命令

标签:

原文地址:http://www.cnblogs.com/migongci0412/p/5003091.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!