【Linux】一步一步学Linux——tail命令(42)

00. 目录

01. 命令概述

tail - 输出文件的末尾部分在标准输出上显示每个FILE的最后10行. 如果多于一个FILE,会一个接一个地显示, 并在每个文件显示的首部给出文件名. 如果没有FILE,或者FILE是-,那么就从标准输入上读取.

tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。

注意:如果表示字节或行数的N值之前有一个”+”号,则从文件开头的第N项开始显示,而不是显示文件的最后N项。N值后面可以有后缀:b表示512,k表示1024,m表示1 048576(1M)。

02. 命令格式

tail [选项]… [文件]…

03. 常用选项

tail - 输出文件的末尾部分

在标准输出上显示每个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通过周期性地重新打开所指定的文件来 追踪其是否被删除了,或者被其他程序重新创建了.

04. 参考示例

4.1 输出文件最后10行

默认情况下,将文件的最后 10 行打印到标准输出。

[deng@localhost test]$ tail /etc/passwd
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:989:983::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
deng:x:1000:1000:deng:/home/deng:/bin/bash
oracle:x:1001:1002::/home/oracle:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
itcast:x:1002:1003::/home/itcast:/bin/bash
[deng@localhost test]$ 

4.2 输出最后 n 行的内容

如果要输出最后 n(这里为 5)行的内容,而非默认的最后 10 行,使用 -n 选项。

[deng@localhost test]$ tail -n 5 /etc/passwd 
tcpdump:x:72:72::/:/sbin/nologin
deng:x:1000:1000:deng:/home/deng:/bin/bash
oracle:x:1001:1002::/home/oracle:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
itcast:x:1002:1003::/home/itcast:/bin/bash
[deng@localhost test]$ 

4.3 从第n行开始显示文件的内容

从第n(这里为 40)行开始显示文件的内容,直至文件末尾。

[deng@localhost test]$ tail -n +40 /etc/passwd 
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
deng:x:1000:1000:deng:/home/deng:/bin/bash
oracle:x:1001:1002::/home/oracle:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
itcast:x:1002:1003::/home/itcast:/bin/bash
[deng@localhost test]$ 

4.4 输出最后n 个字节的内容

使用 -c 选项,可以指定显示文件的最后 n(这里为 5)个字节的内容。

[deng@localhost test]$ tail -c 5 /etc/passwd 
bash
[deng@localhost test]$ 

4.5 显示多文件最后k行,并且不显示文件名的文件头

[deng@localhost test]$ tail -q -n 2 a.txt file.txt 
/home
==============================
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[deng@localhost test]$ 

4.6 显示多文件最后k行,并且显示文件名的文件头

[deng@localhost test]$ tail -n 2 a.txt  file.txt 
==> a.txt <==
/home
==============================

==> file.txt <==
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[deng@localhost test]$ 

4.7 当文件增长时,动态查看文件追加的内容

由于a.txtg随时会有资料写入,想要让该档案在有资料写入时就立刻显示到屏幕上,就利用 -f 选项,可以一直侦测该档案,新加入的资料都会被显示到屏幕上,直到按下 Ctrl + C 才会离开。

[deng@localhost test]$ tail -f a.txt 
/etc/passwd
/home
==============================
hello world

4.8 组合使用

列出输出的最后5行

[deng@localhost test]$ cat /etc/passwd | tail -n 5
tcpdump:x:72:72::/:/sbin/nologin
deng:x:1000:1000:deng:/home/deng:/bin/bash
oracle:x:1001:1002::/home/oracle:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
itcast:x:1002:1003::/home/itcast:/bin/bash
[deng@localhost test]$ 

05. 附录

参考:【Linux】一步一步学Linux系列教程汇总

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值