当前位置 主页 > 服务器问题 > Linux/apache问题 >

    总结Linux 6种日志查看方法

    栏目:Linux/apache问题 时间:2020-02-05 21:49

    作为一名后端程序员,和Linux打交道的地方很多,不会看Linux日志,非常容易受到来自同事和面试官的嘲讽,所以掌握一种或者几种查看日志的方法非常重要。

    Linux查看日志的命令有多种: tail、cat、tac、head、echo等,本文只介绍几种常用的方法。

    1、tail

    这个是我最常用的一种查看方式

    命令格式: tail[必要参数][选择参数][文件]
    -f 循环读取
    -q 不显示处理信息
    -v 显示详细的处理信息
    -c<数目> 显示的字节数
    -n<行数> 显示行数
    -q, --quiet, --silent 从不输出给出文件名的首部
    -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

    用法如下:

    tail -n 10 test.log 查询日志尾部最后10行的日志;
    tail -n +10 test.log 查询10行之后的所有日志;
    tail -fn 10 test.log 循环实时查看最后1000行记录(最常用的)

    一般还会配合着grep用,例如 :

    tail -fn 1000 test.log | grep '关键字'

    如果一次性查询的数据量太大,可以进行翻页查看,例如:

    tail -n 4700 aa.log |more -1000 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键)

    2、head

    跟tail是相反的head是看前多少行日志

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

    head其他参数参考tail

    3、cat

    cat 是由第一行到最后一行连续显示在屏幕上

    一次显示整个文件 :

     $ cat filename

    从键盘创建一个文件 :

    $cat > filename


    将几个文件合并为一个文件:

    $cat file1 file2 > file 只能创建新文件,不能编辑已有文件.


    将一个日志文件的内容追加到另外一个 :

    $cat -n textfile1 > textfile2
    

    清空一个日志文件:

    $cat : >textfile2


    注意:> 意思是创建,>>是追加。千万不要弄混了。

    cat其他参数参考tail

    4、more

    more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。more命令从前向后读取文件,因此在启动时就加载整个文件。

    该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:–More–(XX%)

    more的语法:more 文件名 Enter 向下n行,需要定义,默认为1行 Ctrl f 向下滚动一屏 空格键 向下滚动一屏 Ctrl b 返回上一屏 = 输出当前行的行号 :f 输出文件名和当前行的行号 v 调用vi编辑器 !命令 调用Shell,并执行命令 q退出more

    5、sed

    这个命令可以查找日志文件特定的一段 , 根据时间的一个范围查询,可以按照行号和时间范围查询

    按照行号

    sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。