grep

作者: Miracle001 | 来源:发表于2017-10-17 23:54 被阅读2次
    ''  不识别特殊字符
    ""  识别特殊字符
    ``  非常识别
    
    ifconfig ens33 |grep netmask
    netstat -nt |grep tcp
    last |grep root 
    
        grep
            grep -v  显示不被模式匹配到的行
                grep -v ^$ file  非空行
                grep -v ^[[:space:]]$ file  去除空白行
                grep -v ^[[:space:]]*$ file
                grep -v "^$" /etc/profile |grep "^#"
                grep -v "/bin/bash$" /etc/psswd
            grep -n  显示匹配的行号
                grep -n ^$ file  空行行号
            grep -c  统计匹配的行数
            grep -o  仅显示匹配到的字符串
            grep -i  忽略字符大小写
                grep -i ^s /proc/meminfo
            grep -q  静默模式,不输出任何信息  
                echo $?:0  找到  用在生产中只关心找到or找不到
                echo $?:1  找不到
            grep -A#  后几行
            grep -B#  前几行
            grep -C#  前后各几行
            grep -e  多选项之间逻辑关系
            grep -w  匹配整个单词
            grep -E = egrep  
            grep -F = fgrep 
                grep root /etc/passwd |grep bash  包含root和bash
                grep -e root -e wang /etc/passwd  或者包含root,或者包含wang
            字符匹配
                .               匹配任意单个字符
                []              匹配指定范围内的任意单个字符
                [^]             匹配指定范围外的任意单个字符
                [:alnum:]       字母和数字(a-zA-Z0-9)
                [:alpha:]       大写、小写
                [:lower:] [:upper:]     小写 大写
                [:bank:]        空白字符
                [:space:]       空白字符(范围广)
                [:cntrl:]       不可打印的控制字符(退格、删除、警铃)
                [:graph:]       可打印的非空白字符
                [:print:]       可打印字符
                [:punct:]       标点符号
                [:digit:]       10进制数字 
                [:xdigit:]      16进制数字
            匹配次数
                *                   匹配前面字符任意次(含0次),尽可能长的匹配
                .*                  任意长度的任意字符  目标的前、中、后
                \? or ?             0/1次
                \+ or +             至少1次
                \{n\} or {n}        n次
                \{m,n\} or {m,n}    m次到n次
                \{,n\}              ≦n次
                \{n,\}              ≧n次
                \                   转义符
            位置锚定
                ^                   行首
                $                   行尾
                ^pattern$           匹配整行
                  ^$                空行
                  ^[[:space:]]$     空白行
                \< or \b            词首
                \> or \b            词尾
                \<pattern\>         整个单词
            分组
                \(\)    将一个或者多个字符捆绑在一起,当做一个整体进行处理 \1 \2 \3
                \(string1\+\(string2\)*\)
                    \1  string1\+\(string2\)*
                    \2  string2
                后项引用    引用前面分组括号中的模式所匹配字符,而非模式本身
                a\|b or a|b     a或b
                \(c\|m\)at or (c|m)at       cat或mat
            练习
                grep "^rpc\>" /etc/passwd |cut -d: -f1,7
                grep -o "\<[0-9]\{2,3\}\>" /etc/passwd
                grep "^[[:space:]]\+[^[:space:]]\{1,\}" /etc/grub2.cfg 
                netstat -tan |egrep -o "\<LISTEN>\[[:space:]]+$"
                grep "\<nologin\>" /etc/passwd |cut -d: -f1,3  不知道是否正确
                    cut -d ":" -f1,3 /etc/passwd |egrep "\b[[:digit:]]{1,3}\b"
                echo bash testbash basher sh nologin |xargs -n1 useradd
                    chsh -s /sbin/nologin nologin
                egrep "(^.*)\>.*/\1$" /etc/passwd
                    cut -d: -f1,7 /etc/passwd |grep "^\([[:alpha:]]\+\>\).*/\1$"
                df |egrep -o "[0-9]{1,3}%" |sort -nr  不知道是否正确
                    df|grep "^/dev/sd" |tr -s " " % |cut -d% -f5 |sort -nr 
                    df|grep "^/dev/sd" |egrep -o "\<[[:digit:]]+%" |tr -d % |sort -nr 
                egrep "^(mage|root|wang)\>" /etc/passwd |cut -d: -f3,7
                egrep -o '^.*\>\(\)' /etc/rc.d/init.d/functions
                egrep -o '^[[:alnum:]_]+\(\)' /etc/rc.d/init.d/functions
                basename file  
                dirname file
                    echo /etc/rc.d/init.d/functions |grep -Eo "[^/]+$"    or "[[:alnum:]]+$"
                    echo /etc/rc.d/init.d/ |grep -Eo "[^/]+/?$"    or "[[:alnum:]]+/?$"
                    echo /etc/rc.d/init.d/functions |egrep -o "([[:alnum:].]*/)+"
                last |tr -s " " |cut -d " " -f1,3 |egrep "root.*[[:digit:]]\.+" |sort |uniq -c 
                echo {0..1000} |egrep -o "\<[0-9]\>"
                    echo {0..1000} |egrep -o "\<[1-9][0-9]\>"
                    echo {0..1000} |egrep -o "\<1[1-9][0-9]\>"
                    echo {0..1000} |egrep -o "\<2[0-4][0-9]\>"
                    echo {0..1000} |egrep -o "\<25[0-5]\>"
                IP地址过滤(特殊IP也被过滤)
            egrep -o (([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>
                ifconfig |grep "inet\" |tr -s " " |cut -d " " -f3 
                每个字母出现的次数和字母本身
                    echo "welcome to lol linux" |grep -o '.' |sort |uniq -c |sort -nr       
    
        nmap
            没有关键字的搜索
            黑客——开机机器、关机机器、机器服务——>IP、版本
            rpm -ivh /misc/cd/Packages/nmap-6...
            nmap -v -sP 172.17.252.0/24  扫描此网段开机的机器(up/down)
            提取开机的IP地址
                nmap -v -sP 172.17.252.0/24 |grep -B1 "Host is up" |grep for |cut -d " " -f5 > ip.log  
                wc -l ip.log
            扫描主机的服务
                nmap -v -A 172.17.0.1

    相关文章

      网友评论

        本文标题:grep

        本文链接:https://www.haomeiwen.com/subject/diojuxtx.html