Linux 基本命令 -------- tail 的使用

3,162 阅读2分钟

一、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.conftail --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.confvirc两个文件各2行
-v--verbose 当输出多个文件名时,总是输出各个文件名,即使使用-q修饰 tail -n2 -q -v virc yum.conf 总是输出vircyum.conf文件名

另外,在不加入任何[OPTION]参数的情况下,tail命令默认会输出一个文件的最后10行内容。当然,我们也可以指定从文件第几行开始,输出知道文件末尾,可以采用+命令,如:tail -n+2 sysctl.conf,表示从第二行开始直到文件末尾的部分都输出,执行结果如下所示:

三、工作中经常用到的tail用法有哪些?

  • 1、同时输出1个以上文件内容,输出格式将会使用==> fileName <==作为分隔符。

上图输出 yum.confvirc两个文件的内容,从输出可见使用了==> <==进行分隔。

  • 2、动态输出跟踪文件结尾n行文本

tail -100f fileName :动态输出文件末尾的100行数据。

  • 3、默认查看文件末尾10行数据

tail fileName