tail 命令详解

article/2025/11/5 2:04:37

一、tail 命令介绍

tail 命令可以将文件指定位置到文件结束的内容写到标准输出。

如果你不知道tail命令怎样使用,可以在命令行执行命令tail --help就能看到tail命令介绍和详细的参数使用介绍,内容如下(我帮大家翻译了一下)。

[root@yanggongzi ~]# tail --help
Usage: tail [OPTION]... [FILE]...
Print the last 10 lines of each FILE to standard output.
With more than one FILE, precede each with a header giving the file name.
With no FILE, or when FILE is -, read standard input.
将每个文件的最后10行打印到标准输出。
如果有多个文件,在每个文件之前都有一个给出文件名的头文件。
没有文件,或者当文件为-时,读取标准输入。Mandatory arguments to long options are mandatory for short options too.
长选项必须用的参数在使用短选项时也是必须的。-c, --bytes=K            output the last K bytes;or use -c +K to output bytes starting with the Kth of each file输出最后的 K 个字节;或者使用 -c +K 从每个文件的第K字节开始打印。-f, --follow[={name|descriptor}]output appended data as the file grows;an absent option argument means 'descriptor'随着文件的增长,输出附加数据;(动态输出最新的信息);没有选项参数意味着“描述符”-F                       same as --follow=name --retry与 --follow=name --retry 作用相同-n, --lines=K            output the last K lines, instead of the last 10;or use -n +K to output starting with the Kth输出最后的K行,而不是最后的10行;或者使用-n +K从第K个开始输出--max-unchanged-stats=Nwith --follow=name, reopen a FILE which has not changed size after N (default 5) iterations to see if it has been unlinked or renamed (this is the usual case of rotated log files);with inotify, this option is rarely useful使用——follow=name,在N次(默认为5次)迭代后,重新打开一个大小没有改变的文件,看看它是否被解除链接或重命名(这是旋转日志文件的常见情况);对于inotify,这个选项很少有用--pid=PID            with -f, terminate after process ID, PID dies与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令-q, --quiet, --silent    never output headers giving file names当有多个文件参数时,不输出各个文件名--retry              keep trying to open a file if it is inaccessible即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用-s, --sleep-interval=N   with -f, sleep for approximately N seconds (default 1.0) between iterations;with inotify and --pid=P, check process P at least once every N seconds与“-f”选项连用,指定监视文件变化时间隔的秒数(默认为1.0);使用inotify和-pid=P,每N秒检查进程P至少一次-v, --verbose            always output headers giving file names当有多个文件参数时,总是输出各个文件名--help               display this help and exit显示此帮助信息并退出--version            output version information and exit显示版本信息并退出If the first character of K (the number of bytes or lines) is a '+',
print beginning with the Kth item from the start of each file, otherwise,
print the last K items in the file.  K may have a multiplier suffix:
b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,
GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.
如果K前面的字符(字节数或行数)'+',每个文件从第K项开始打印,否则,打印文件中最后的K项。K可能有一个乘数后缀:b 512,kB 1000,K 1024,MB 1000 1000,M 1024 1024,GB 1000 1000,G 1024 1024 1024,等等,对于T,P,E,Z,y。With --follow (-f), tail defaults to following the file descriptor, which
means that even if a tail"ed file is renamed, tail will continue to track
its end.  This default behavior is not desirable when you really want to
track the actual name of the file, not the file descriptor (e.g., log
rotation).  Use --follow=name in that case.  That causes tail to track the
named file in a way that accommodates renaming, removal and creation.
使用——follow (-f), tail默认跟随文件描述符,这意味着即使重命名了尾部文件,tail也将继续跟踪其尾部。
当您真正想要跟踪文件的实际名称而不是文件描述符(例如,日志旋转)时,这种默认行为是不可取的。
在这种情况下使用——follow=name。这将导致tail以一种适合重命名、删除和创建的方式跟踪已命名文件。

二、tail 命令使用示例

1、输出最后200个字符

在这里插入图片描述

2、从第900个字符开始输出,一直到最后

在这里插入图片描述

3、输出最后20行

在这里插入图片描述

4、从第36行开始输出,一直到最后

在这里插入图片描述

5、输出指定文件的最后十行,同时继续监视文件内容有无变化,新增内容会继续输出,直到按下 [Ctrl-C] 组合键退出

在这里插入图片描述

6、指定多个文件并输出文件名

在这里插入图片描述

7、指定多个文件不输出文件名

在这里插入图片描述

三、tailftail -ftail -F 的区别

  • tail -f

等同于–follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止

  • tail -F

等同于–follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪

  • tailf

等同于tail -f -n 10(貌似tail -f或-F默认也是打印最后10行,然后追踪文件),与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电

当我们设置了滚动日志时,需要持续实时监控最新的日志输出,那么就要用tail -F,而不能用tailftail -f。因为当日志xxx.log达到了设定阈值重命名成了xxx01.log时,后两个命令追踪的还是xxx01.log文件而不是新创建的xxx.log文件,这时就不能继续监控最新日志了。

四、常用快捷键

【Ctrl】+【S】 暂停刷新。
【Ctrl】+【Q】继续刷新。
【Ctrl】+【C】退出 tail 命令。


http://chatgpt.dhexx.cn/article/kpKlkhO0.shtml

相关文章

git之公钥登录

首先说一下我自己的理解,为什么要公钥登录呢?这样可以省去每次填写用户名和密码的麻烦。他的原理是什么呢?我本地发送一个带有私钥签名的请求去远程服务器(远程服务有我的公钥),而服务器能够通过我的公钥验证我的私钥,…

Git注册登录

一、执行登陆用户名和密码命令 git config --global user.email “youexample.com”git config --global user.name “Your Name” 二、生成 .ssh 配置文件(创建本地公钥) ssh-keygen -t rsa -C "your_emailyouremail.com" #### 三、获取公钥四…

Git--SSH登录

SSH登录 进入当前用户的家目录 $ cd ~ 删除.ssh目录 $ rm -rvf .ssh 运行命令生成.ssh密钥目录 $ ssh-keygen -t rsa -C atguigu2018ybuqaliyun.com [注意:这里-C这个参数为大写的C] 进入.ssh目录查看文件列表 $ cd .ssh $ ls -LF 查看id_rsa.pub文件内容 $ cat…

git初次登陆使用

git初次登陆使用 一. 安装git 二. 在当前项目根目录点击鼠标右键,出来下图: 点击进入git命令行界面。 三.初始化项目 git init 四. 添加所有文件到项目中 git add . 五. 尝试提交所有文件 git commit -m "这里是备注信息" -a 我由于是第一次连接git,还没登…

切换电脑上登录的Git账号

切换电脑上登录的Git账号 1、在电脑桌面上右键,选择“Git Bash Here”,打开命令行 2、查看当前Git账号、邮箱: git config user.name git config user.email 3、切换Git账号: git config --global user.name 账号名 //账号…

Git配置免密登录及常用操作的详细教程(基于Gitee平台)

文章目录 前言一、SSH免密登录配置1.安装GIt2.生成SSH3.配置 SSH key4.验证SSH key是否配置成功 二、创建远程仓库1.登录自己的Gitee账号2.创建远程仓库 前言 我这里使用的是vuecli创建的项目进行代码管理,使用的平台是Gitee。 平台的话其实最推荐使用的平台还是G…

git初步使用(登录和创建仓库)

下载 快速下载地址 选择相应的版本(降序排列,最新版本在最下方),点击会出现下载链接(图片中红框是Windows的下载地址链接) 安装 一直点击next, 出现有(new!)的选择打勾,直到安装…

配置Git for windows(Git bash)登录GitHub

1、设置本地用户 这个不是登录,而是给你的电脑设置一个用户,上传的时候,告诉远程仓库是谁上传的。 git config --global user.name "Your Name"(双引号不用删,里面内容替换掉) git config --glo…

「GitLab篇」如何用Git平台账号登录建木CI

介绍 继上一篇博客「Gitee篇」如何用Git平台账号登录建木CI发布后,得到了很多小伙伴们的关注,我趁热打铁推出了如何用Git平台账号登录建木CI 系列的第二篇 「GitLab篇」如何用Git平台账号登录建木CI,有别于上一篇,此篇博客介绍了…

「Gitee篇」如何用Git平台账号登录建木CI

介绍 自v2.5.2版本开始,建木CI可以使用Git平台的账号进行登录了,这篇文章我们以Gitee为例,给大伙讲讲如何配置,使用第三方的Git平台登录建木CI 配置介绍 自v2.5.2版本开始,建木CI可以使用OAuth2协议来整合第三方登录…

git clone 登录 github

git clone 登录 github 目录概述需求: 设计思路实现思路分析1.github 设置setting2.输入passwd 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result…

「Gitea篇」如何用Git平台账号登录建木CI

介绍 这是《如何用Git平台账号登录建木CI》系列文章的第三篇,建木CI立志整合所有第三方Git平台来登录建木CI!此篇我们将整合Gitea平台来登录建木CI。 ‍自v2.5.4版本开始,建木CI可以使用Gitea账号进行登录了,这篇文章给大伙讲讲…

git登陆

git登陆 1. 执行登陆用户名和密码命令 git config --global user.email "youexample.com" git config --global user.name "Your Name" 2. 生产密钥对 $ ssh-keygen -t rsa -C "your_emailyouremail.com" 3. 配置公钥私钥 1. 登录到github&#…

Git的注册登录以及具体使用

概述: git是一个版本管理工具。用于管理对应的项目的版本。git是一个分布式的项目管理工具,我每个本地的代码都是一个本地的仓库,然后最终提交到远程仓库(git是一个多分支的版本管理工具)。svn是一个版本管理工具&…

从上帝视角看支付——支付总架构解析

中国支付体系的塔尖是人行二代支付清算体系,人行二代支付体系塔尖是清算账户中心SAPS;支付的基础是账户,账户的账户是SAPS。 为了更好的认认识支付——下面我们就从用户触发,跟着一笔支付遍历整个互联网支付网络,对支…

3万字“十看支付”:开启支付之门

本文由作者 陈天宇宙 发布于社区 很多朋友加我微信的第一句话是“陈老师,我是支付小白,想学习支付应该怎么开始啊?”,我一般会把“支付概念与入门”这个话题发给他,告诉他可以先看这里面的几篇文章; 今天这…

第二代支付系统及电票线上清算相关知识

二代支付系统     国家处理中心(NPC):NPC是人民银行连接支付系统所有城市节点和特许参与者的中枢节点,负责接收、转发各CCPC和接收、处理特许参与者的支付指令,以及资金清算的一组硬件和软件系统的总称。参加支付系统的直接参与者必须在人…

第二代支付系统专题之报文篇(二)大额支付报文完整版(含二代新增功能业务说明)

最近在负责某商业银行第二代支付系统项目,经过对第二代支付系统报文交换标准(1.4版)研究,发现与一代支付系统相比,新增了不少新的交易。现整理如下:

支付通道介绍

一.什么是支付通道 1.支付通道作用 支付通道是互联网产品的原材料,没有支付通道,互联网产品就相当于没有汽油的汽车,中看不中用。可见支付通道对互联网产品是如此的重要。 2.支付通道涵义 支付通道:是指支付品牌后面提供支付受…

第二代支付系统商业银行行内接入系统总体设计(初稿)

引言:二代支付系统是人民银行新一代现代化支付系统,目前各商业银行的接入开发工作正紧锣密鼓的进行。按照人民银行的计划和安排,2013年10份,第一批接入工作将开始。本文是第二代支付系统城市商业银行接入系统的总体设计初稿。 一…