tail

作用

tail 是 Linux 中与 head 对应的核心命令,专门用于查看文件或命令输出的末尾内容,默认显示最后 10 行,核心优势是支持实时跟踪文件更新(如日志实时打印),无需加载整个文件,效率极高,是排查实时日志、监控文件变化的必备工具。

格式

tail 文件名

参数

-n <数字>(或 --lines=<数字>) 指定显示的末尾行数(数字可正可负):
- 正数 N:显示最后 N 行;
- 正数 +N:从第 N 行开始显示到文件末尾(而非末尾 N 行);
- 负数 -N:等价于 +N(部分系统支持,推荐用 +N 更清晰) tail -n 20 log.txt(显示最后 20 行)tail -n +50 data.csv(从第 50 行开始显示到末尾)

-<数字>(简化写法) 等价于 -n <数字>,快速指定末尾 N 行(最常用) tail -5 app.log(显示最后 5 行日志)
tail -100 access.log(显示最后 100 行访问日志)

-f(或 --follow) 实时跟踪文件更新(“follow” 模式):文件新增内容会自动打印到终端,直到按 Ctrl+C 退出(核心功能,监控实时日志必备) tail -f catalina.out(实时跟踪 Tomcat 日志)

-F(或 --follow=name --retry) 增强版实时跟踪:

  1. 支持文件 “轮转”(如日志按天切割后,自动跟踪新生成的文件);
  2. 文件被删除或重建后,会持续重试连接(比 -f 更稳定,生产环境优先用) tail -F nginx.access.log(实时跟踪 Nginx 日志,支持日志切割)

-v(或 --verbose) 显示详细信息:处理多个文件时强制标注文件名;单个文件也显示文件名标识 tail -v -5 file.txt(显示最后 5 行,带文件名 > file.txt <

-q(或 --quiet/–silent) 静默模式:处理多个文件时,不显示文件名标识(仅显示内容,适合合并末尾) tail -q -3 file1.txt file2.txt(合并两个文件的最后 3 行,无文件名)

-c <数字>(或 --bytes=<数字>) 按字节数显示末尾内容(而非行数):
- 正数 N:显示最后 N 字节;
- 正数 +N:从第 N 字节开始显示到末尾 tail -c 100 binary.bin(显示二进制文件最后 100 字节)
tail -c +200 header.txt(从第 200 字节开始显示)

–retry 配合 -f 使用:文件暂时不可访问(如被删除、挂载点断开)时,持续重试连接(-F 已包含此功能) tail -f --retry log.txt(实时跟踪,断开后重试)

–help / --version 显示帮助信息 / 显示命令版本

常用场景

1、读取单个文件

# 显示 test.txt 的全部内容
cat test.txt  

2、拼接多个文件:将多个文件内容合并输出(可保存到新文件)

cat file1.txt file2.txt  # 依次显示 file1 和 file2 的内容
cat file1.txt file2.txt > newfile.txt  # 合并到 newfile.txt(覆盖原有内容)

3、创建文件:通过输入内容创建新文件(按 Ctrl+D 结束输入)

cat > new.txt  # 输入内容后按 Ctrl+D 保存

4、带行号、显示详细提示、忽略大小写,查看并搜索日志

less -NMi +/TimeoutError app.log

5、查看带颜色的日志,截断长行,支持横向滚动

less -Sr colored_log.txt

6、分页查看全局搜索结果,仅显示包含 “500” 的错误行:

grep -r "HTTP" /var/log | less -N &500

7、快速跳转到文件第 300 行,且显示行号

less -N +300 config.conf
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐