grep命令基本用法
1、grep正则表达式(对文本行进行搜索过滤)
格式:grep [option] PATTERN [FILE...] option: -i:忽略大小写 -v:取反,显示未被匹配到的pattern -n:显示匹配的行号 -c:统计匹配的行数 -o: 只显示匹配到的pattern -q: 静默,不予显示 -A#:after,匹配到的行再向后显示#行 -B#:before,匹配到的行再向前显示#行 -C#:context,向前向后各显示#行 -E :等同于egrep(扩展的正则表达式)
2、正则表达式元字符
字符匹配
.:任意单个字符 []:匹配[]以内的任意单个字符 [^]:匹配[]以外的任意单个字符 [:digit:]:十进制数字 [:upper:]:大写字母 [:lower:]:小写字母 [:space:]:空格 [:alnum:]:字母及数字 [:alpha:]:大小写字母 eg:
[root@Centos6 ~]#grep r..t /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [root@Centos6 ~]#grep r[a-z]t /etc/passwd operator:x:11:0:operator:/root:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin [root@Centos6 ~]#grep r[^0-9][a-z]t /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
次数匹配
*:前面字符任意次 \?:前面字符0或1次 .*:任意字符任意次 \+:至少一次 \{m,n\}:大于m小于n次
*:前面字符任意次 [root@Centos6 ~]#grep ro*t /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin rtkit:x:499:499:RealtimeKit:/proc:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin \?:前面字符0或1次 [root@Centos6 ~]#grep "ro\?" /etc/passwd root:x:0:0:root:/root:/bin/bash adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin .*:任意字符任意次 [root@Centos6 ~]#grep ro.*t /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin \+:至少一次 [root@Centos6 ~]#grep "ro\+" /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin rtkit:x:499:499:RealtimeKit:/proc:/sbin/nologin \{m,n\}:大于m小于n次 [root@Centos6 ~]#grep "ro\{1,5\}" /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin chrony:x:992:989::/var/lib/chrony:/sbin/nologin setroubleshoot:x:991:988::/var/lib/setroubleshoot:/sbin/nologin rooooot:x:1001:1001::/home/rooooot:/bin/bash rooot:x:1002:1002::/home/rooot:/bin/bash
位置锚定
对于行来说 ^:行首锚定 $:行尾锚定 ^$:空行 ^ $:空格 对于词来说 \<,\b:词首锚定 \>,\b:词尾锚定
[root@Centos6 ~]#grep "^root" /etc/passwd root:x:0:0:root:/root:/bin/bash [root@Centos6 ~]#grep "bash$" /etc/passwd root:x:0:0:root:/root:/bin/bash mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash ymd:x:500:500:ymd:/home/ymd:/bin/bash [root@Centos6 ~]#grep "\<bin\>" /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash ymd:x:500:500:ymd:/home/ymd:/bin/bash
分组
\(\):将一个或多个字符作为一个整体,进行处理。 后向引用:引用前面分组括号中所匹配到的内容 \1,\2 ··· eg:
grep "\(string1\+\(string2\)*\)" \1:string1\+\(string2\)* \2:string2
扩展的正则表达式(egrep)
egrep等同于grep -E 其选项及参数大致与grep相同
字符匹配
.:任意单个字符 []:匹配[]以内的任意单个字符 [^]:匹配[]以外的任意单个字符
次数匹配
*:前面字符任意次 ?:前面字符0或1次 .*:任意字符任意次 +:至少一次 {m,n}:大于m小于n次
3、利用所学知识如何在生产环境中实现对磁盘最大使用空间的监控
在实际的生产环境中我们需要实时的查看及监控磁盘空间情况防止因磁盘空间不足导致服务器崩溃 因此我们需要查看磁盘利用率是否超过限制值。
此为利用现在所学的命令完成查看磁盘已使用的空间情况 [root@Centos6 ~]#df -h |grep "^/dev/sda"|tr -s " " | cut -d " " -f5|sort -nr|head -n1 10%
未完待续。。。
原创文章,作者:M25_ymd,如若转载,请注明出处:http://www.178linux.com/81774