linux日志查询

快捷键

ctrl+a:定位到开始
ctrl+e:定位到最后
ctrl+u:删除整行
alt+backspace :删除单词
ctrl+方向键:移动一个单词位

head 仅仅显示前面几行

head -n 10  test.log   查询日志文件中的头10行日志;  

head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;  

tail

tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.

命令格式

tail[必要参数][选择参数][文件]

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

命令功能:

用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

    -f 循环读取
    -q 不显示处理信息
    -v 显示详细的处理信息
    -c<数目> 显示的字节数  -c NumberNumber 字节位置读取指定文件
    -n<行数> 显示行数  -n NumberNumber 行位置读取指定文件。
    --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束. 
    -q, --quiet, --silent 从不输出给出文件名的首部 
    -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S

使用示例

  • 实例1:查询最后20行,并且查找关键字 结果
    命令:
tail -n 20 fdata.log | grep '结果'
  • 实例2:循环查看文件内容 (实时监控)
    命令:
tail -f test.log

说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C

  • 示例3:搜索关键词
tail -n 20 fdata.log | grep '结果'

搜索到的关键词标红

tail -n 20 fdata.log | grep '结果' --color
  • 示例4:linux 如何显示一个文件的某几行(中间几行)

从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n +3000 | head -n 1000

显示1000行到3000行
cat filename| head -n 3000 | tail -n +1000

*注意两种方法的顺序
分解:

tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000
  • 查询最后20行,并且查找关键字 结果(文字标红),上下扩展2行
tail -n 20 fdata.log | grep '结果' --color -a2

补充:

跟tail功能相似的命令还有:
cat 从第一行開始显示档案内容。
tac 从最后一行開始显示档案内容。
more 分页显示档案内容。
less 与 more 相似,但支持向前翻页
head 仅仅显示前面几行
tail 仅仅显示后面几行
n 带行号显示档案内容
od 以二进制方式显示档案内容

cat

cat主要有三大功能:
1.一次显示整个文件。$ cat filename

2.从键盘创建一个文件。$ cat > filename 只能创建新文件,不能编辑已有文件.

3.将几个文件合并为一个文件: $cat file1 file2 > file

搜索关键词

示例1# cat a.txt | grep cc
bbbbbbbbccc
ccee

示例2:
cat -n aa.log | grep "exception"

创建文件

$ cat > filename 
//只能创建新文件,不能编辑已有文件. 

tac (反向列示)

tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,
而 tac 则是由最后一行到第一行反向在萤幕上显示出来!

查询场景

按行号查看—过滤出关键字附近的日志

1. cat -n test.log |grep "debug"  得到关键日志的行号
2. cat -n test.log |tail -n +92|head -n 20

tail -n +92表示查询92行之后的日志
head -n 20 则表示在前面的查询结果里再查前20条记录

日志内容特别多,打印在屏幕上不方便查看

  • 使用more和less命令,
    这样就分页打印了,通过点击空格键和B键翻页
cat -n test.log |grep "debug" |more     
  • 使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析
cat -n test.log |grep "debug"  >debug.txt

根据日期查询日志

sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log

sed -n '/起始时间/,/结束时间/p' 日志文件

特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;
先 grep ‘2014-12-17 16:17:20’ test.log 来确定日志中是否有该 时间点

日志文件超大时,用vim查找

vim fdata.log  打开文件

ctrl+g  定位到最后一行
看到窗口显示底端两个字,代表已经到了展示文件末尾。

:? com.fm.fdata
从最后往上查找最近关键字,点 N 往上:倒数第二个

这里写图片描述

猜你喜欢

转载自blog.csdn.net/samjustin1/article/details/80925371