/* 看板娘 */ /* 粒子吸附*/

find \greo\正则表达式

find

根据文件的名称或者属性查找文件

语法格式:
         find  [查找范围]  [参数]
参数:
-name:  按照文件的名字查找文件
        *:通配符
-iname:按照文件的名字查找文件(忽略大小写)
-size    :按照文件的大小查找文件
        + :大于
        —:小于
-mtime:按照修改的时间去查询
+ (可以省略):n天以前
-                    :天以内
-atime
-ctime
-user:按照用户的属主查询
-group:按照用户的属组查询
-type :按照文件的类型查找
    


       d:  文件夹
        l: 链接文件
        s: 套接字文件
        p:管道文件
        c:字符文件
        b:磁盘文件
        f:普通文件
、
-perm    : 按照文件权限查询
-inum    :根据index node 号码查询
-a          : 并且
-o          : 或者
-maxdeph: 查询目的深度(必须放置与第一个参数位)
-exec: 将find 处理好的结果交给其他命令继续处理


知识储备:
  dd:生成文件
        if :从什么地方读
        of: 写道什么文件中
        bs: 每次写入多少内容
        count:写入多少次
案例:
    案例1:查询/etc目录下hosts文件
    
        [root@localhost ~]# find /etc/ -name 'hosts'
/etc/hosts

        案例2:查询/etc目录下名称中包含hosts文件
    [root@localhost ~]# find /etc/ -name '*hosts*'
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/selinux/targeted/active/modules/100/denyhosts

案例3:要求把/etc目录下,所有的普通文件打包压缩到/tmp目录    
      [root@localhost /tmp]# tar -czPf /tmp/etcv2.tar.gz `find /etc/ -type f | xargs`


知识储备
 |:前面一个命令的结果交给后面一个命令处理
 xargs   : 把处理的文件变成空格分割的一行
``  : 提前执行命令,然后结果交给其他命令来处理



    
                            

 

 

grep

linusx三剑客之一文本过滤器(根据文件内容过滤文件)

语法格式:
grep[参数]  [匹配规则]  [操作对象]


参数  :
    
-n : 过滤文本时,将过滤出来的内容在文件内的行号显示出来
    -A : 匹配成功之后,将匹配行的后n行显示出来
    -B : 匹配成功之后,将匹配行的前n行显示出来
    -C : 匹配成功之后,将匹配行的前后各n行显示出来
    -c :  只显示匹配成功的行数
    -o :  只显示匹配成功的内容
    -v :  反向过滤
    -q :  静默输出
    -i : 忽略大小写
    -l :  匹配成功之后,将文本的名称打印

        -R|-r : 递归匹配 

    -E : 使用拓展正则   等价于  egrep
知识储备
       
        $?    :    上一行命令执行的结果, 0 代表执行成功  ,其他数字代表执行失败

        wc    :    匹配行数
        -1    : 打印匹配行数
        -c     :`打印匹配的字节数


在/etc目录下,有多少个文件包root
grep -rl 'root' /etc/ | wc -l

  正则表达式

1.正则表达式的分类(grep )
        1.普通正则表达式
        2.拓展正则表达式
2.普通正则表达式

    ^    :    以某字符开头
    
    $    :    以某字符结尾
    .     :    匹配出换行符之外的任意单字符
    *    :    匹配前导字符的任意个数
    []    :    某组字符的任意一个字符
    [^]  :    取反
[a-z]    :    匹配小写字母
[A-Z]    :    匹配大写字母
[a-zA-Z]:    匹配字母
[0-9]     : 匹配数字
\           :     取消转义
\n         :    代表第n 个分组


3、拓展正则
    {}     :匹配的次数
        {n}        : 匹配n次
        {n,}    :至少匹配n次
        {n,m}    :匹配 n 到 m 次
        {,m}    :最多匹配m次
    +      :匹配至少有一个前导字符
    ?      : 匹配一个或零个前导字符
    |      :或



案例:
    案例1:在/etc/passwd文件中,匹配以ftp开头的行


                       [root@localhost tmp]# grep '^ftp' /etc/passwd
                    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

    
        案例2:在/etc/passwd文件中,匹配以bash结尾的行
    
                [root@localhost tmp]# grep '^ftp' /etc/passwd
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    [root@localhost tmp]# grep 'bash$' /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    test09:x:1000:1000::/home/test09:/bin/bash
    test10:x:1001:1001::/home/test10:/bin/bash
    test:x:1002:1002::/home/test:/bin/bash
    test01:x:1003:1003::/home/test01:/bin/bash
    test02:x:1004:1004::/home/test02:/bin/bash 


 案例3:匹配本机中有哪些ip
   ip a | grep -oE ([0-9]{1,3}\.){3}[0-9]{1,3}'

 案例4:要求将/etc/fstab中的去掉包含 # 开头的行,且要求 # 后至少有一个空格
    grep -vE '^#\ +' /etc/fstab

 案例5:找出文件中至少有一个空格的行
    grep -E '\ +' xxx

 案例6:将 nginx.conf 文件中以#开头的行和空行,全部删除
    grep -vE '^\ *#|^$' /etc/nginx/nginx.conf

 

posted @ 2021-12-20 22:15  红绿灯的黄呀  阅读(108)  评论(0)    收藏  举报