一、tail大概是个什么东西?
其实正如命令tail本身命名一样,tail具有“尾巴”的意思,顾名思义,在linux中经常用来查看某个文本文件的末尾部分。说更具体一点,我们工作中常常用来查看系统日志,当系统上线之后,小编会使用该命令跟踪业务日志,然后定位生产问题。
二、tail基本语法结构是怎样的?
跟其他Linux命令一样,tail命令语法格式如下:
tail [OPTION]... [FILE]...
- 1、
[OPTION]是相关命令参数 - 2、
[FILE]是需要查看的相关文件名,可以写1-n个文件名
[OPTION]常用参数如下表:
| 参数名 | 参数详解 | 举例 | 例子解释 | 执行结果 | 疑问 | 答疑 |
|---|---|---|---|---|---|---|
-c[K] 或者 --bytes=[K] |
用于输出文件末尾倒数K个字节的文本 | tail -c10 yum.conf 或 tail --bytes=10 yum.conf |
查看倒数10个字节的文本 | ![]() |
1、不是要输出10个字符吗?为什么只输出m.repos.d9个字节呢? |
因为在linux中,文件换行采用\n(0a)回车换行,而在windows中,采用\r\n结尾 |
-f 或 --follow |
动态输出文件结尾数据 | tail -f yum.conf |
如果yum.conf文件是动态增长的,那么该命令将不断输出结尾数据块 |
![]() |
1、能否每次固定动态输出末尾行数? | 可以的,只需要加一个数字即可,如tail -500f yum.conf,表示每次固定动态输出末尾500行文本 |
-n<N>或--line=<N> |
指定输出文件末尾的行数 | tail -n5 yum.conf |
输出文件yum.conf末尾5行 |
![]() |
1、-n可以动态输出吗? |
不可以,动态输出使用-f |
-q或--quiet或--silent |
当文件有多个时,不输出分隔符 | tail -n2 -q yum.conf virc |
输出文件yum.conf和virc两个文件各2行 |
![]() ![]() |
无 | 无 |
-v或--verbose |
当输出多个文件名时,总是输出各个文件名,即使使用-q修饰 |
tail -n2 -q -v virc yum.conf |
总是输出virc和yum.conf文件名 |
![]() |
无 | 无 |
另外,在不加入任何[OPTION]参数的情况下,tail命令默认会输出一个文件的最后10行内容。当然,我们也可以指定从文件第几行开始,输出知道文件末尾,可以采用+命令,如:tail -n+2 sysctl.conf,表示从第二行开始直到文件末尾的部分都输出,执行结果如下所示:

三、工作中经常用到的tail用法有哪些?
- 1、同时输出1个以上文件内容,输出格式将会使用
==> fileName <==作为分隔符。

上图输出 yum.conf和virc两个文件的内容,从输出可见使用了==> <==进行分隔。
- 2、动态输出跟踪文件结尾n行文本
tail -100f fileName :动态输出文件末尾的100行数据。
- 3、默认查看文件末尾10行数据
tail fileName





