tail

基本格式:

tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

参数解释:

复制代码

-f 该参数用于监视File文件增长。-c Number 从 Number 字节位置读取指定文件-n Number 从 Number 行位置读取指定文件。-m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。-b Number 从 Number 表示的512字节块位置读取指定文件。-k Number 从 Number 表示的1KB块位置读取指定文件。
File 指定操作的目标文件名称

复制代码

示例:

tail -300f shopbase.log #倒数300行并进入实时监听文件写入模式
tail -f catalina.out |grep "S201903161209220000001" #输出指定文件的指定内容

 

grep

grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。

基本格式:

grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN]...  [-f FILE]...  [FILE...]

[options]主要参数:

复制代码

OPTIONS:    -e: 使用正则搜索    -i: 不区分大小写    -v: 查找不包含指定内容的行    -w: 按单词搜索    -c: 统计匹配到的次数    -n: 显示行号    -r: 逐层遍历目录查找    -A: 显示匹配行及前面多少行, 如: -A3, 则表示显示匹配行及前3行    -B: 显示匹配行及后面多少行, 如: -B3, 则表示显示匹配行及后3行    -C: 显示匹配行前后多少行,   如: -C3, 则表示显示批量行前后3行    --color: 匹配到的内容高亮显示    --include: 指定匹配的文件类型    --exclude: 过滤不需要匹配的文件类型

复制代码

pattern正则表达式主要参数:

复制代码

\: 忽略正则表达式中特殊字符的原有含义。^: 匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<: 从匹配正则表达 式的行开始。
\>: 到匹配正则表达式的行结束。
[ ]: 单个字符,如[A]即A符合要求 。
[ - ]: 范围,如[A-Z],即A、B、C一直到Z都符合要求 。
.: 所有的单个字符。*: 有字符,长度可以为0。

复制代码

示例:

grep 'forest' f.txt     #文件查找
grep 'forest' f.txt cpf.txt #多文件查找
grep 'log' /home/admin -r -n #目录下查找所有符合关键字的文件grep 'shopbase' /home/admin -r -n --include *.{vm,java} #指定文件后缀
grep 'shopbase' /home/admin -r -n --exclude *.{vm,java} #反匹配

 

find

find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。

基本格式:

find pathname -options [-print -exec -ok ...]

参数:

复制代码

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print:find命令将匹配的文件输出到标准输出。-exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和;之间的空格。-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

find[options]命令选项:-name:按照文件名查找文件。-perm:按照文件权限来查找文件。-prune:使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。-user:按照文件属主来查找文件。-group:按照文件所属的组来查找文件。-mtime -n +n:按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。-nogroup:查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。-nouser:查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。-newer file1 ! file2:查找更改时间比文件file1新但比文件file2旧的文件。-type

复制代码

示例:

  • 按照文件名查找

find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
find /etc -name 'srm'  #使用通配符(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
find . -name 'srm'   #表示当前目录下查找文件名开头是字符串‘srm’的文件
  • 按照文件特征查找

复制代码

find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)
find / -atime -2   # 查找在系统中最后48小时访问的文件
find / -empty   # 查找在系统中为空的文件或者文件夹
find / -group cat   # 查找在系统中属于group为cat的文件
find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)
find / -mtime -1   #查找在系统中最后24小时里修改过的文件
find / -user fred   #查找在系统中属于fred这个用户的文件
find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
find / -size -1000k   #查找出小于1000KB的文件

复制代码

  • 使用混合查找方式查找文件

参数有: !,-and(-a),-or(-o)

find /tmp -size +10000c -and -mtime +2   #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
find / -user fred -or -user george   #在/目录下查找用户是fred或者george的文件文件
find /tmp ! -user panda  #在/tmp目录中查找所有不属于panda用户的文件

转自:https://www.cnblogs.com/caoweixiong/p/15218826.html