Linux基础 Day4

linux day4

1.find查找条件

  • 是linux里面的一个实时查找工具,通过制定路径完成文件查找

  • find[option]......[查找路径][查找条件][处理动作]----------查找路径:查找的位置、默认是当前文件夹。查找条件:制定查找的标准、文件名、大小、类型、日期等等。处理动作:对符合条件的文件做什么操作,默认是输出到屏幕上。

  • 查找条件
    • 根据文件名查找
      • -name find -name a 指定名称,可以使用正则
      • -iname find -name a 忽略大小写
      • -links n引用次数为n的文件
      • -regex后面跟完整路径,而不是文件名,必须整个路径完全匹配
    • 制定搜索的层级
      • -maxdepth level 最大的搜索深度,指定的目录为第一层
      • -minepth level 最小的搜索深度(包括level),指定的目录为第一层
      • find /etc -name *.conf 查找在/ect下面的conf文件
    • 根据属主、属组来查找
      • -user username 查找属主为username的文件
      • -group groupname 查找属组为groupname的文件
      • -uid id 查找属组为id的文件
      • -nouser查找没有属主的文件
  • 根据文件类型-type

    • d 目录
    • f 文件
    • l 符号链接
    • s 套接字
    • b 块设备
    • c字符
    • p管道文件
  • 空文件或者是空目录

  • -empty

  • 条件

    • 与 -a
    • 或 -o
    • 非 -not
    • 非(A或者B)
  • 排除目录

  • -path

  • 按照大小来查找

  • -size (find -size 2M)

  • 按时间查找

    • -atime
    • 查找7天之外的(find -atime +7)
    • 可以替换成mtime、ctime
  • 默认的处理动作

    • -print 默认的处理动作,现实在屏幕上
    • -ls类似于ls-l 显示长格式
    • -delete 删除查找到文件
    • -fls file 将查找的结果以长格式保存在文件中
    • -ok command {};对每一个查找到的文件执行command命令,在执行命令之前要先提示用户是否要执行
    • -exec command{};对查到的每一个文件执行command命令,不需要确认,一次性交给后面命令处理

2.xargs

  • 有的命令不支持管道
  • 命令参数过长
  • xargs将管道前面的内容一条条的交给后面命令处理
  • 一般会跟find使用

3.linux三剑客

  • grep

    • grep[option]"模式"file

      --color=auto 对匹配到的行添加颜色
      -v取反
      -i不区分大小
      -n查找的内容增加行号
      -c答应匹配的行数
      -o 只显示匹配到的文字
      -q静默
      -A #after 向下显示#行
      -B #before 向上显示#行
      -C #context 上下分别显示#行
      -e 或者grep -e 'user' -e 'root' passwd
      -E 扩展正则表达式
      -F 不适正则表达式
      -r 递归
      -w 匹配整个单词
      

4.正则表达式元字符

  • 字符匹配

    • .任意单个字符
    • []匹配指定范围内的任意单个字符[0-9][a-z][A-Z]
    • [^]取反
    • [:upper:]大学字母
    • [:lower:]小写字母
    • [:alnum:]字母和数字
    • [:alpha:]大小写字母
    • [:digit:]数字
    • [:black:]空白
  • 匹配次数

    • *表示任意次数
    • .*表示任意字符任意次数
    • ?表示0或者1次
    • \+至少一次
    • \{n\}表示n次
    • \{m,n\}最少m次,最多n次
    • \{n,\}至少n次
    • \{,n\}至多n次
  • 位置锚定

    • ^开头

    • $结尾

    • ^$空行

      grep -v "^#" /ect/ssh/sshd_config|grep -v "^$"显示不以#开头并且不是空行
      
    • 分组

      [root@localhost test]# grep "\(c\|C\)at" a.txt
      
    • 扩展正则表达式

      • 与正则表达式的区别是不需要转义

5.压缩

  • gzip(压缩文件)

    gzip[option]...file
    -c 将压缩结果输出到屏幕。保留原来的文件
    gzip -c a.txt>a.txt.gz
    -d 解压
    zcat 不解压的情况下查看压缩比内的内容
    gunzip 解压
    
  • bzip2

    bzip [option] file
    直接压缩
    bunzip2 解压
    -k 保留原来的文件
    bzcat 不解压的情况下查看压缩比内的内容
    
  • xz

    xz[option] file~
    unxz 解压
    -k 保留原来的文件
    -d 解压
    -1-9 指定压缩比
    xzcat 不解压的情况下查看压缩比内的内容
    
  • zip

    zip [option] zipfile 要压缩的文件
    zip -r network.zip /etc/sysconfig/network-scripts
    unzip network.zip
    
  • tar(归档打包工具)

    tar cpvf ect.tar /etc (cpvf创建)
    c创建
    v显示过程
    f指定归档文件
    p把原来的属性页也带过来
    tar -r -f etc.tar /etc 追加
    tar -t -f etc.tar 查看归档文件内的内容
    tar xf etc.tar 解压文件
    tar xf etc.tar -C
    -z 使用gzip压缩
    -j 使用bzip2压缩
    
  • split

    split -b 指定大小 文件(只能为文件) 切割以后的名字
    split -b 1k a.tar -d a.tar (-d是以数字为后缀)
    -a 指定后缀几位
    cat 切割后的文件>新文件
    
    
  • tar 的追加

    touch a b c #建立三个文件
    tar cvf test.tar a b #将ab 两个文件打包到test.tar压缩包中
    tar -rf test.tar c #将c追加到test.tar压缩文件夹中
    
    
posted @ 2020-09-24 14:21  大旺叫我来巡山  阅读(62)  评论(0编辑  收藏  举报