Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 186|回复: 0

[默认分类] Linux tail 命令详解

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-5-23 14:53:54 | 显示全部楼层 |阅读模式
    Linux命令:显示文件结尾
      Head/Tail
      head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然就是看档案的结尾,看看下面的范例:
    (1)?
      displays the first 6 lines of a file
      head -6 readme.txt
      (2) displays the last 25 lines of a file
      tail -25 mail.txt
      范例一是显示档案的前 6 行,范例二则是显示档案最后的 25 行。
      而下面的范别,结合了 head 与 tail 的指令,显示档案的第 11 行到第 20 行:
    (3)?
      head -20 file | tail -10
       在 tail 的使用手册页中显示了比 head 还多的可用参数,其中有一个很好用的参数 " -f ",使用此参数时,tail 不会回传结束信号,除非我们去自行去中断它;相反的,它会一直等待一段时间,一直到他发现资料自它最后一次被读取后,又被加入新的一行时:
    (4)?
      display ongoing updates to the given
      log file
      tail -f /usr/tmp/logs/daemon_log.txt
      上述范例可以动态显示该 log 文件的动态更新。
      假设该服务程序是一直不断的加入动态资料到/usr/adm/logs/daemon_log.txt 的 log 文件里,在命令列控制窗口中使用 tail -f,它将会以一定的时间实时追踪该档的所有更新。 ( -f 的只有在其输入为档案时才能使用 )。
      假如你在 tail 后下了多个档案参数,你便能在同一个窗口内一次追踪数个 log 档:
      track the mail log and the server error log
      at the same time.
      tail -f /var/log/mail.log /var/log/apache/error_log
      tac -- 反过来串连?!
       cat 倒过来怎么拼 ? 对啦 !! 这就是 tac 的功能啰 ~ 它是把档案的顺序内容反过来串连用的,那么 ~ 它都用在什么状况下呢 ? 任何须要以后进先出的顺序重新排列组件的工作都用得上它 ! 以下面的指令来说,便是以自最后建立的到最先建立的顺序,列出三个最新建的使用者帐号:
    (5)?
      last 3 /etc/passwd records - in reverse
      $ tail -3 /etc/passwd | tac
      curly:x:1003:100:3rd Stooge:/homes/curly:/bin/ksh
      larry:x:1002:100:2nd Stooge:/homes/larry:/bin/ksh
      moe:x:1001:100:1st Stooge:/homes/moe:/bin/ksh
      
    查看文件内容的特殊方法
      相信最基本的cat和less,more你已经很熟悉了,如果有特殊的要求呢:
    1. 如果你只想看文件的前5行,可以使用head命令,如:
    head -5 /etc/passwd
    2. 如果你想查看文件的后10行,可以使用tail命令,如:
    tail -10 /etc/passwd
    tail -f /var/log/messages
    参数-f使tail不停地去读最新的内容,这样有实时监视的效果

    一、UNIX下的TAIL命令
    说明:部分内容摘录自"永远的UNIX",http://fanqiang.chinaunix.net/
    NAME(名称)
    tail - 输出文件的末尾部分  
    SYNOPSIS(总览)
    ../src/tail [OPTION]... [FILE]...  
    DESCRIPTION(描述)
    在标准输出上显示每个FILE的最后10行. 如果多于一个FILE,会一个接一个地显示, 并在每个文件显示的首部给出文件名. 如果没有FILE,或者FILE是-,那么就从标准输入上读取.  


      --retry


      即使tail开始时就不能访问或者在tail运行后不能访问,也仍然不停地尝试打开文件.
      -- 只与
      -f合用时有用.


      -c,
      --bytes=
      N


      输出最后N个字节


      -f,
      --follow[={name|descriptor}]


      当文件增长时,输出后续添加的数据;
      -f,
      --follow以及
      --follow=
      descriptor 都是相同的意思


      -n,
      --lines=
      N


      输出最后N行,而非默认的最后10行


      --max-unchanged-stats=
      N


      参看texinfo文档(默认为5)


      --max-consecutive-size-changes=
      N


      参看texinfo文档(默认为200)


      --pid=
      PID


      与
      -f合用,表示在进程ID,PID死掉之后结束.


      -q,
      --quiet,
      --silent


      从不输出给出文件名的首部


      -s,
      --sleep-interval=
      S


      与
      -f合用,表示在每次反复的间隔休眠S秒


      -v,
      --verbose


      总是输出给出文件名的首部


      --help


      显示帮助信息后退出


      --version


      输出版本信息后退出


    如果N(字节或者行数)的第一个字符为`+", 那么从每个文件的开头算起的第N项开始显示, 否则, 显示该文件的最后N项. N可以有一个倍数前缀: b表示512,k表示1024,m表示1048576(1兆). 第一个选项 -VALUE 或+VALUE 以-n VALUE或-n +VALUE 方式看待,除非VALUE含有[bkm]后缀倍数中的一个,在这种情况下,它被看作 -c VALUE 或者-c +VALUE  
    使用--follow (-f)时,tail默认后接文件描述符, 这意味着即使tail显示的文件改名了,tail仍然可以追踪到其末尾部分. 如果你确实希望查询文件的实际名而非文件描述符 (例如,日志轮转时), 这种默认的操作就不是你所期望的了. 在这种情况下应使用--follow=name. 这将导致tail通过周期性地重新打开所指定的文件来追踪其是否被删除了,或者被其他程序重新创建了.
            tail 的完整文档是以Texinfo手册形式维护的. 如果 infotail 程序在你那儿都已经安装好了,那么命令:info tail 应该会让你访问到整篇手册.
           从上面的说明可以看到,最常用的形式是:tail   -f   sys.log
    二、WINDOWS下的TAIL工具
      sourceforge上有个tail工具不错, 推荐给大家
        1. 首先当然是tail功能了, 可以tail多个文件, 如access.log, error.log
        2. 关键字高亮功能.
        3. workspace管理.
        4. 绿色, 免安装, 只有164k
         下载地址 http://sourceforge.net/projects/tailforwin32
    其他:
    用途
    从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。
      
      
    语法
    标准语法
    tail [  -f ] [  -c Number |  -n Number |  -m Number |  -b Number |  -k Number ] [ File ]
      
      
    要以逆序显示行
    tail [  -r ] [  -n Number ] [ File ]
      
      
    描述
    tail 命令从指定点开始将File 参数指定的文件写到标准输出。如果没有指定文件,则会使用标准输入。Number 变量指定将多少单元写入标准输出。Number 变量的值可以是正的或负的整数。如果值的前面有+(加号),从文件开头指定的单元数开始将文件写到标准输出。如果值的前面有-(减号),则从文件末尾指定 的单元数开始将文件写到标准输出。如果值前面没有+(加号)或-(减号),那么从文件末尾指定的单元号开始读取文件。
      
      
    Number 变量用于确定计数的起点的单元类型由-b、-c、-k、-m 以及-n 标志确定。如果没有指定其中的任何一个标志,那么tail 命令就会读取指定文件的最后十行,并将其写到标准输出。这与在命令行输入-n 10 是相同的。
      
      
    -m 标志在单字节和双字节字符环境中提供了一致的结果。当输入是包含多字节字符的文本文件时应谨慎使用-c 标志,因为产生的输出可能不从字符边界开始。
      
      
    标志
      
    -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 变量表示的行位置开始读取指定文件。
      
    -r
    从文件末尾以逆序方式显示输出。-r 标志的缺省值是以逆序方式打印整个文件。如果文件大于20,480 字节,那么-r 标志只显示最后的20,480 字节。
      
    -r 标志只有与-n 标志一起时才有效。否则,就会将其忽略。
      
      
    退出状态
    该命令返回下列的退出值:
      
      
    0
    成功完成。
      
    >0
    出现错误。
      
    示例
    要显示notes 文件的最后十行,输入:
      
    tail notes要指定从notes 文件末尾开始读取的行数,输入:
    tail  -n 20 notes
    要从第200 字节开始,每次显示一页notes 文件,输入:
    tail  -c +200 notes | pg
    要跟踪文件的增长,输入:
    tail  -f accounts
    这显示accounts 文件的最后十行。tail 命令继续显示添加到accounts 文件中的行。显示会一直继续,直到您按下Ctrl-C 按键顺序来停止。
    文件
      
    /usr/bin/tail
    包含tail 命令。
    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-16 14:56 , Processed in 0.410684 second(s), 38 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表