• Linux查看日志常用命令


     

    使用linux查看日志排除bug是不少开发和测试人员的必备技能,为了更好的使用,所以百度结合自己经验总结一下常用的日志查看部分相关命令。大家可以随时更新提出质疑一同进步。

    一、常用命令

    tail head cat tac less more

    • tail:

        n  是显示行号相当于nl命令
        tail -100f test.log      实时监控100行日志
        tail  -n  10  test.log   查询日志尾部最后10行的日志;
        tail -n +10 test.log    查询10行之后的所有日志;
      
    • head

        跟tail是相反的head是看前多少行日志
        head -n 10  test.log   查询日志文件中的头10行日志;
        head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;
      
    • cat

        tac是倒序查看是cat单词反写
        cat -n test.log |grep "debug"   查询关键字的日志
      
    • more

      是将文件从第一行开始,根据输出窗口的大小,适当的输出文件内容。当一页无法全部输出时,可以用“回车键”向下翻行,用“空格键”向下翻页。退出查看页面,请按“q”键。另外,more还可以配合管道符“|”(pipe)使用,例如:ls -al | more
      
      more的语法:more 文件名
      Enter 向下n行,需要定义,默认为1行
      Ctrl f 向下滚动一屏
      空格键 向下滚动一屏
      Ctrl b 返回上一屏
      = 输出当前行的行号
      :f 输出文件名和当前行的行号
      v 调用vi编辑器
      ! 命令 调用Shell,并执行命令
      q 退出more
      
    • less

      less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查看之前不会加载整个文件。
      less log2013.log 查看文件
      ps -ef | less   ps查看进程信息并通过less分页显示
      history | less   查看命令历史使用记录并通过less分页显示
      less log2013.log log2014.log   浏览多个文件
      
       常用命令参数:
      -b <缓冲区大小> 设置缓冲区的大小
      -g 只标志最后搜索的关键词
      -i 忽略搜索时的大小写
      -m 显示类似more命令的百分比
      -N 显示每行的行号
      -o <文件名> 将less 输出的内容在指定文件中保存起来
      -Q 不使用警告音
      -s 显示连续空行为一行
      /字符串:向下搜索"字符串"的功能
      ?字符串:向上搜索"字符串"的功能
      n:重复前一个搜索(与 / 或 ? 有关)
      N:反向重复前一个搜索(与 / 或 ? 有关)
      b 向后翻一页
      h 显示帮助界面
      q 退出less 命令
      
        在 less 查看日志文件时:
        一般流程是:
        cd /opt/logs
        export LANG=zh_cn.utf-8     有时候使用less命令会发现乱码时使用  locale可查看当前设置
        less -mns newecc-all.log-2018-05-28    显示行号百分比和空行会比较直观
        按g到 第一行
        shift + g 跳转到最后一页 
        ? 和  /  后面加检索内容都可以进行当前文本关键字的查找  shift+n/n 分别是向下/上查询此关 
        键字内容
        
      

    二、常用场景

    • 按行号查看---过滤出关键字附近的日志
    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条记录
    
    • 根据日期查询日志
    sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log
    ---上面的两个日期必须是日志中打印出来的日志,否则无效;
    ---先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该 时间点                      
    
    • 日志内容特别多,打印在屏幕上不方便查看
    1. 使用more和less命令  
    cat -n test.log |grep "debug" |more 
    ---这样就分页打印了,通过点击空格键翻页
    
    2.使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析
    cat -n test.log |grep "d
  • 相关阅读:
    [oracle] linux Oracle 安装配置
    [dns] linux dns 安装配置
    [apache] linux Apache 编译安装
    [yum] linux yum 配置本地和ftp源
    [ftp] linux ftp 安装配置
    [ssh 无密码访问]linux ssh公匙密匙无密码访问
    [php ] linux php 搭建
    [mysql ] linux mysal 修改字符集
    [ mysql ] linux mysql 忘记root密码重置
    国安是冠军
  • 原文地址:https://www.cnblogs.com/shoshana-kong/p/14318873.html
Copyright © 2020-2023  润新知