Skip to main content

Linux 核心命令

文件查看编辑命令 tail

tail 命令用来显示文件的末尾内容,就像它的名字一样,显示文件的"尾巴"部分。

1. 基本用法

最简单的用法就是直接跟文件名:

tail filename.txt

默认情况下,tail 会显示文件的最后 10 行内容。

# 查看系统日志的最后 10 行
tail /var/log/syslog

2. 指定显示行数

-n 参数可以指定显示多少行:

# 显示最后 20 行
tail -n 20 filename.txt

# 也可以简写,直接用数字
tail -20 filename.txt

如果你想显示除了前面几行以外的所有内容,可以用 + 号:

# 从第 5 行开始显示到文件末尾
tail -n +5 filename.txt

3. 显示字节数

除了按行数显示,还可以按字节数显示:

# 显示最后 100 个字节
tail -c 100 filename.txt

# 显示最后 1KB 的内容
tail -c 1024 filename.txt

# 从第 50 个字节开始显示到文件末尾
tail -c +50 filename.txt

4. 实时监控文件变化

这是 tail 最强大的功能之一,用 -f 参数可以实时监控文件的变化:

# 实时监控日志文件的新增内容
tail -f /var/log/syslog

当文件有新内容添加时,tail 会自动显示出来。这对查看实时日志特别有用。要停止监控,按 Ctrl+C 即可。

# 同时指定行数和实时监控
tail -f -n 50 /var/log/apache2/access.log

5. 处理文件轮转

有些日志文件会被轮转(重命名或删除后重新创建),普通的 -f 可能会失效。这时用 --follow=name--retry 更好:

# 即使文件被轮转也能继续监控
tail --follow=name --retry /var/log/syslog

-F 参数是上面命令的简写:

# 等同于 --follow=name --retry
tail -F /var/log/syslog

6. 同时监控多个文件

tail 可以同时监控多个文件:

# 同时监控两个日志文件
tail -f /var/log/syslog /var/log/auth.log

每个文件的内容会用文件名作为标题分隔开。

7. 设置刷新间隔

默认情况下,tail 每秒检查一次文件变化,可以用 -s 参数改变这个间隔:

# 每 2 秒检查一次文件变化
tail -f -s 2 /var/log/syslog

8. 限制重试次数

当文件不存在时,可以设置重试次数:

# 最多重试 5 次
tail --retry --max-unchanged-stats=5 -f /var/log/somefile.log

9. 静默模式

-q 参数可以不显示文件名标题:

# 不显示文件名,直接显示内容
tail -q -f /var/log/syslog

当只监控一个文件时,这个参数会让输出更干净。

10. 显示详细信息

-v 参数会显示文件名标题,即使只有一个文件:

# 总是显示文件名
tail -v filename.txt

11. 处理二进制文件

tail 也可以处理二进制文件,不过通常按字节显示更有意义:

# 显示二进制文件的最后 512 字节
tail -c 512 /bin/ls

12. 管道配合使用

tail 经常和其他命令配合使用:

# 查看最近的命令历史
history | tail -20

# 查看最大的几个文件
ls -la | tail -10

# 查看进程列表的最后几行
ps aux | tail -15

13. 监控命令输出

虽然不常见,但 tail 也可以监控其他命令的输出:

# 实时监控系统负载
uptime | tail -f

14. 处理压缩文件

对于 .gz 压缩文件,可以结合 zcat:

# 查看压缩日志文件的最后几行
zcat logfile.gz | tail -20

15. 颜色输出

在某些系统上,tail 支持彩色输出:

# 启用颜色显示(如果支持)
tail --color=always -f /var/log/syslog