find、grep、正则表达式元字符、压缩、

find

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

find [options] ..... [查找路径] [查找条件] [处理动作]

查找路径:查找的位置,默认是当前文件夹

查找条件:制定查找的标准,文件名、大小、类型、日期等等

处理动作:对符合条件的文件做什么操作,默认是输出到屏幕上

查找条件

  • 根据文件名查找

    • -name 指定名称,可以使用正则

    • -iname 忽略大小写

    • -links n 引用次数为n的文件

    • -regex 后面跟完整路径,而不是文件名, 必须整个路径完全匹配

  • 制定搜索的层级

    • -maxdepth level 最大的搜索深度,指定的目录为第1层

    • -mindepth level 最小的搜索深度,包括level层

  • 根据属主、属组来查找

    • -user username 查找属主为username的文件

    • -group groupname 查找属组为groupname的文件

    • -uid id 查找属主为id的文件

    • -gid id 查找属组为id的文件

    • -nouser 查找没有属主的文件

    • -nogroup 查找没有属组的文件

  • 根据文件类型 -type

    • d 目录

    • f 文件

    • l 符号链接

    • s 套接字

    • b 块设备

    • c 字符设备

    • p 管道文件

  • 空文件或者空目录

    • -empty

  • 条件

    • 与 -a

    • 或 -o

    • 非 -not

  • 摩根定律

    • 非(A或者B) 非A 且非B

    • 非(A且B)非A或非B

  • 排除目录

    • -path

  •  [root@localhost test]#find /etc -name *_config
     /etc/ssh/ssh_config
     /etc/ssh/sshd_config
     [root@localhost test]#find /etc -path /etc/ssh -name *_config
  • 按照大小来查找

    • -size # (#-1,#] 不包括#-1,包括#

    • -size -# [0,#-1] 包括#-1

    • -size +# (#,......)

  • 按照时间来查找

    • -atime # [#,#+1)

    • -atime -# (0,#)

    • -atime +# [#+1,....]

    • 查找7天以后的文件 find -atime +7

    • -mtime

    • -ctime

    • 以分钟为单位

      • -amin

      • -mmin

      • -cmin

处理动作

  • -print 默认的处理动作,显示在屏幕上

  • -ls 类似于ls -l 显示长格式

  • -delete 删除查找到的文件

  • -fls file 将查找的结果以长格式保存到文件中

  • -ok command {} \; 对每一个查找到的文件执行command命令,在执行命令之前要先提示用户是否要执行

  • -exec command {} \; 对查到的每一个文件执行command命令,不需要确认,一次性交给后面命令处理

xargs

  • 有的命令不支持管道

  • 命令参数过长

  • xargs 将管道前面的内容一条一条的交给后面命令处理

  • 一般会跟find使用

linux三贱客

grep

awk

sed

grep

grep [option] "模式" file

option

 --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 匹配整个单词

正则表达式元字符

  • 字符匹配

    • . 任意单个字符

    • [] 匹配指定范围内的任意单个字符 [0-9] [a-z] [A-Z]

    • [^] 取反

    • [:upper:] 大写字母

    • [:lower:] 小写字母

    • [:alnum:] 字母和数字

    • [:alpha:] 大小写字母

    • [:digit:] 数字

    • [:black:] 空白

    • [:punct:] 标点符号

  • 匹配次数

    • * 表示任意次数

    • .* 任意字符任意次数

    • \? 表示0或者1次

    • \+ 至少一次

    • \{n\} 表示n次

    • \{m,n\} 最少m次,最多n次

    • \{n,\} 至少n次

    • \{,n\} 至多n次

  • 位置锚定

    • ^ 开头

    • $结尾

    • ^$ 空行

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

     grep "\(c\|C\)at" a
  • 向后引用

    • \1 前面第一个括号出现的内容匹配完成之后再后面在出现一次

    • \2

  • 扩展正则表达式

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

压缩

gzip

压缩文件

 gzip [option]... file
 -c 将压缩结果输出到屏幕,保留原来的文件
 gzip -c passwd > passwd.gz
 -1-9 指定压缩比,默认9
 -d 解压
 zcat 不解压的情况下查看压缩比内的内容
 gunzip 解压

bzip2

bzip [option] file

 直接压缩
 bunzip2 解压
 -k 保留原来的文件
 -d 解压
 -1-9 指定压缩比
 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 etc.tar /etc
 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压缩
 -J 使用xz压缩
 --exclude 排除文件
 

split

 split -b 指定大小 文件(只能为文件) 切割以后的名字
 -d 指定后缀为数字
 -a 指定后缀几位
 cat 切割后的文件 > 新文件
posted @ 2020-02-28 22:10  干it的小张  阅读(189)  评论(0编辑  收藏  举报