暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

六种查看Linux日志的命令

风尘博客 2020-02-11
304

因为在生产环境会遇到很多问题,那么最快的定位方式莫过于去看日志,我们都知道服务器每天会产生大量的日志,那么如何快速的定位也就是最关键的。

本文介绍六种查看日志的命令:tail
head
cat
more
less
sed

一、tail

1.1 命令功能

tail
 命令从指定点开始将文件写到标准输出。

1.2 命令格式

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

1.3 命令参数

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

    1.4 使用实例

      tail  -n  10   file.log   查询日志尾部最后10行的日志;
      tail -n +10 file.log 查询第10行之后的所有日志;
      tail -fn 100 file.log 循环实时查看最后100行记录

      tail
      一般还会配合着grep

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

        如果查询的数据量太大,Ctrl + F
         或者 空格键可以翻页查看

          tail -n 5000  file.log |more -1000

          二、head

          2.1 命令功能

          head
          tail
          是相反,用来显示档案的开头至标准输出中,默认head
          命令打印其相应文件的开头10
          行。

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

            2.2 命令格式

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

            2.3 命令参数

            参考tail

            三、cat

            3.1 命令功能

            1.一次显示整个文件:cat filename
            2.从键盘创建一个文件(只能创建新文件,不能编辑已有文件):cat > filename
            3.将几个文件合并为一个文件:cat file1 file2 > file

            3.2 命令格式

            cat [选项] [文件]...

            3.3 命令参数

              -A, --show-all           等价于 -vET
              -b, --number-nonblank 对非空输出行编号
              -e 等价于 -vE
              -E, --show-ends 在每行结束处显示 $
              -n, --number 对输出的所有行编号,由1开始对所有输出的行数编号
              -s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
              -t -vT 等价
              -T, --show-tabs 将跳格字符显示为 ^I
              -v, --show-nonprinting 使用 ^ M- 引用,除了 LFD TAB 之外

              3.4 使用实例

              把 file1.log
               的文件内容加上行号后输入 file2.log
               这个文件里

                cat -n file1.log file2.log

                把 file1.log
                 和 file2.log
                 的文件内容加上行号(空白行不加)之后将内容附加到 file.log
                 里

                  cat -b file1.log file1.log file.log

                  把 file1.log
                   的文件内容加上行号后输入 file.log
                   这个文件里

                    cat -n file1.log > file.log

                    tac
                     是将 cat
                     反写过来,所以他的功能就跟 cat
                     相反

                    四、more

                    4.1 命令功能

                    more
                    命令和cat
                    的功能一样都是查看文件里的内容,但有所不同的是more
                    可以按页来查看文件的内容,还支持直接跳转行等功能。

                    4.2 命令语法

                      more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ] 

                      4.3 命令参数

                        +n      从笫n行开始显示
                        -n 定义屏幕大小为n
                        +/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
                        -c 从顶部清屏,然后显示
                        -d 提示“Press space to continue,’q to quit(按空格键继续,按q键退出)”,禁用响铃功能
                        -l 忽略Ctrl+l(换页)字符
                        -p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
                        -s 把连续的多个空行显示为一行
                        -u 把文件内容中的下画线去掉

                        4.4 常用操作命令

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

                          4.5 使用示例

                          显示文件中从第3
                          行起的内容

                            more +3 file.log

                            从文件中查找第一个出现test
                            字符串的行,并从该处前两行开始显示输出

                              more +/test file.log

                              设定每屏显示行数

                                more -5 log2012.log

                                五、less

                                5.1 命令功能

                                less
                                more
                                类似,使用less
                                可以随意浏览文件,而more
                                仅能向前移动,不能向后移动,而 less
                                 既可以向前移动,也可以向后移动。

                                5.2 命令格式

                                  less [参数]  文件 

                                  5.3 命令参数

                                    -b <缓冲区大小> 设置缓冲区的大小
                                    -e 当文件显示结束后,自动离开
                                    -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
                                    -g 只标志最后搜索的关键词
                                    -i 忽略搜索时的大小写
                                    -m 显示类似more命令的百分比
                                    -N 显示每行的行号
                                    -o <文件名> less 输出的内容在指定文件中保存起来
                                    -Q 不使用警告音
                                    -s 显示连续空行为一行
                                    -S 行过长时间将超出部分舍弃
                                    -x <数字> 将“tab”键显示为规定的数字空格

                                    5.4 常用操作命令

                                      /字符串:向下搜索“字符串”的功能
                                      ?字符串:向上搜索“字符串”的功能
                                      n:重复前一个搜索(与 / ? 有关)
                                      N:反向重复前一个搜索(与 / ? 有关)
                                      b 向后翻一页
                                      d 向后翻半页
                                      h 显示帮助界面
                                      Q 退出less 命令
                                      u 向前滚动半页
                                      y 向前滚动一行
                                      空格键 滚动一行
                                      回车键 滚动一页
                                      [pagedown]: 向下翻动一页
                                      [pageup]: 向上翻动一页

                                      5.5 less
                                      命令在查询日志时,一般流程是这样的

                                      1.less file.log
                                      2.shift + G
                                       命令到文件尾部 然后输入 
                                       加上你要搜索的关键字例如:?test
                                      3.按 n
                                       向上查找关键字
                                      4.shift + n
                                       反向查找关键字

                                      六、sed

                                      6.1 命令功能

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

                                      6.2 使用示例

                                      按照行号:只查看文件的第5
                                      行到第10

                                        sed -n '5,10p' file.log

                                        按照时间段

                                          sed -n '/2019-12-17 16:17:20/,/2019-12-17 16:17:36/p'  file.log


                                          文章转载自风尘博客,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                          评论