tail 命令显示文件或输入流的末尾。它还可以保持运行,并显示追加到文件中的数据,因此很适合观察日志。
文本操作 · 第 9 课
tail 命令
学习查看输入末尾,并在文件追加新内容时持续跟踪。
显示最后十行
没有计数选项时,tail 会打印每个指定文件的最后 10 行:
$ tail application.log
如果文件不足 10 行,则打印所有现有行。文件本身不会改变。
tail application.log 默认显示什么?
选择行数或字节数
使用 -n NUMBER 选择不同数量的末尾行:
$ tail -n 20 application.log
需要末尾字节时,请使用 -c NUMBER:
$ tail -c 100 payload.bin
字节模式可能从文本行或编码字符中间开始,因此文本通常使用行模式更清楚。
哪个命令会显示 application.log 的最后 20 行?
从指定行开始
计数前加 + 会改变含义:tail -n +N 从第 N 行开始,一直打印到末尾。
$ tail -n +5 report.txt
这会跳过前四行,从第 5 行开始。它适合从数据流中去掉已知数量的表头行。
哪个命令会从第 5 行开始打印 report.txt?
跟踪追加的数据
使用 -f 时,tail 会先打印当前末尾,然后保持运行,继续显示追加的数据:
$ tail -f application.log
按 Ctrl+C 中断 tail 并返回 shell。跟踪文件只会显示新内容,并不能保证生成日志的应用程序运行正常,也不能保证所有相关事件都写入该文件。
哪个命令会显示 application.log 当前末尾,并继续等待追加内容?
按名称跟踪轮转日志
日志轮转可能重命名旧文件,再在原路径创建新文件。GNU tail -F 等同于按名称跟踪并重试,因此能重新打开被替换或暂时缺失的文件:
$ tail -F application.log
需要跟踪当前已打开文件时使用 -f;指定名称的日志预计会轮转时使用 -F。这些是 GNU 行为,其他实现可能不同。
在 GNU/Linux 上,哪个选项更适合在常见的重命名并重建式日志轮转过程中持续跟踪 application.log?
未指定文件时,tail 会读取 stdin,因此可以选择命令输出的末尾。与 head 一样,指定多个文件时默认会显示标识标题。
要练习查看和跟踪文件末尾,可以尝试以下动手实验:
- Linux tail 命令:文件末尾显示 - 学习使用
tail查看和监控文本文件末尾,包括使用-f获取实时更新。 - 在 Linux 中查看日志和配置文件 - 结合
tail、cat和more高效查看日志与配置文件。 - 快速威胁检测 - 使用
tail快速提取和分析最近的日志条目。
课程已完成
你已完成 tail 命令
现在,你可以使用 tail 检查文件末尾并观察新追加的内容。
默认显示最后十行。
明确选择行数或字节数。
使用
-n +N从编号行开始输出。使用
-f跟踪追加内容,并用Ctrl+C停止。指定名称的日志可能轮转时使用 GNU
-F。