查找日志

1、cat命令:

     功能:1)显示整个文件。

                   示例: $ cat fileName

              2)把文件串连接后传到基本输出,如将几个文件合并为一个文件或输出到屏幕。

                   示例: $ cat file1 file2 > file

     说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)
     cat参数详解:
     -n 或 –number 由 1 开始对所有输出的行数编号
     -b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
     -s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
     -v 或 –show-nonprinting

2、more命令:

     以百分比的形式查看日志。    

 

3、less命令:

     跟more功能差不多,只不过less支持前后翻阅文件。

 

4、head命令:

     功能:从文本文件的头部开始查看,head 命令用于查看一个文本文件的开头部分。

     示例如下:
     head example.txt 显示文件 example.txt 的前十行内容;
     head -n 20 example.txt 显示文件 example.txt 的前二十行内容;
     head详解:
     -n      指定你想要显示文本多少行。
     -n number     这个参数选项必须是十进制的整数,它将决定在文件中的位置,以行为单位。
     -c number     这个参数选项必须是十进制的整数,它将决定在文件中的位置,以字节为单位。

5、tail命令:

     功能:tail 命令用于显示文本文件的末尾几行。

     示例如下:

     tail example.txt 显示文件 example.txt 的后十行内容;
     tail -n 20 example.txt 显示文件 example.txt 的后二十行内容;
     tail -f example.txt 显示文件 example.txt 的后十行内容并在文件内容增加后,自动显示新增的文件内容。

     tail -n 50 -f example.txt 显示文件 example.txt 的后50行内容并在文件内容增加后,自动显示新增的文件内容。
     注意:
     最后一条命令非常有用,尤其在监控日志文件时,可以在屏幕上一直显示新增的日志信息。

     tail详解:
     -b Number 从 Number 变量表示的 512 字节块位置开始读取指定文件。 
     -c Number 从 Number 变量表示的字节位置开始读取指定文件。 
     -f 如果输入文件是常规文件或如果 File 参数指定 FIFO(先进先出),
     那么 tail 命令不会在复制了输入文件的最后的指定单元后终止,而是继续
     从输入文件读取和复制额外的单元(当这些单元可用时)。如果没有指定 File 参数,
     并且标准输入是管道,则会忽略 -f 标志。tail -f 命令可用于监视另一个进程正在写入的文件的增长。 
     -k Number 从 Number 变量表示的 1KB 块位置开始读取指定文件。 
     -m Number 从 Number 变量表示的多字节字符位置开始读取指定文件。使用该标志提供在单字节和双字节字符代码集环境中的一致结果。 
      -n Number 从首行或末行位置来读取指定文件,位置由 Number 变量的符号(+ 或 - 或无)表示,并通过行号 Number 进行位移。 
       -r 从文件末尾以逆序方式显示输出。-r 标志的缺省值是以逆序方式显示整个文件。如果文件大于 20,480 字节,那么-r标志只显示最后的 20,480 字节。 -r 标志只有
   与 -n 标志一起时才有效。否则,就会将其忽略。

 

6、grep

标准unix/linux下的grep通过下面參数控制上下文

grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
grep -B 5 foo file 显示foo及前5行
grep -A 5 foo file 显示foo及后5行

查看grep版本号的方法是
grep -V

假设想升级,升级的方法:最新的源代码(google或者百度搜索主页),编译安装到某个地方,比方 /home/aaa/bin/ 那么以后用的时候就用 /home/aaa/bin/grep ,或者把 /home/aaa/bin 加到PATH环境变量就可以。 假设你把最新编译好的grep覆盖到你如今grep所在文件夹,则升级自然就完成了

Linux 查找指定内容在哪个文件中
    在实际的工作中,忘记配置项放在哪个文件中时,可借助命令来查询.

    eg:

1、grep -r "查询内容"  文件目录    #这样查询出来的包括文件名+内容
        grep -r -l   "查询内容"  文件目录   #这样只显示包含内容的文件名
2、find 文件目录  -type f |xargs grep "查询内容";   #也可以达到效果

常用选项:
  -E :开启扩展(Extend)的正则表达式。
  -i :忽略大小写(ignore case)。
  -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
  -n :显示行号
  -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
  -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
  -o :只显示被模式匹配到的字符串。
  --color :将匹配到的内容以颜色高亮显示。
  -A  n:显示匹配到的字符串所在的行及其后n行,after
  -B  n:显示匹配到的字符串所在的行及其前n行,before
  -C  n:显示匹配到的字符串所在的行及其前后各n行,context

 

例子:

tail -n 10000  dz_error.log |grep -A 50 " ** system error "

这个是可以查询到后50行的数据

 

 

 

 

你可能感兴趣的:(linux)