Linux命令详解 - head & tail
head:默认显示文件的前 10 行内容,可指定行数或字节数。tail:默认显示文件的后 10 行内容,可实时跟踪文件更新,常用于查看日志。
   ·  
 📖 head 与 tail 命令详解
1. 命令简介
- head:默认显示文件的 前 10 行 内容,可指定行数或字节数。
- tail:默认显示文件的 后 10 行 内容,可实时跟踪文件更新,常用于查看日志。
2. 基本语法
head [选项] [文件...]
tail [选项] [文件...]
- 文件:一个或多个目标文件,若省略则从标准输入读取。
- 输出结果:打印到标准输出,可配合 >、>>、管道使用。
3. 常用选项
head
| 选项 | 说明 | 
|---|---|
| -n <行数> | 显示前 N 行 | 
| -c <字节数> | 显示前 N 字节 | 
| -q | 安静模式,多文件时不显示文件名 | 
| -v | 总是显示文件名(即使只有一个文件) | 
tail
| 选项 | 说明 | 
|---|---|
| -n <行数> | 显示最后 N 行 | 
| -c <字节数> | 显示最后 N 字节 | 
| -f | 持续跟踪文件增长(实时输出新内容) | 
| -F | 类似 -f,但文件被替换时自动重新打开(常用于日志) | 
| -q | 多文件时不显示文件名 | 
| -v | 总是显示文件名 | 
4. 权限要求
- 用户必须对文件有 读权限 ® 才能使用 head或tail。
- 若从管道读取数据,则不依赖文件权限。
5. 使用示例
5.1 head 基本用法
head file.txt
👉 显示 file.txt 的前 10 行。
head -n 20 file.txt
👉 显示前 20 行。
head -c 100 file.txt
👉 显示前 100 个字节内容。
head file1 file2
👉 显示多个文件的前 10 行。
5.2 tail 基本用法
tail file.txt
👉 显示 file.txt 的最后 10 行。
tail -n 50 file.txt
👉 显示最后 50 行。
tail -c 200 file.txt
👉 显示最后 200 字节内容。
tail -f /var/log/messages
👉 实时跟踪日志文件的更新(常用)。
tail -F /var/log/nginx/access.log
👉 即使日志文件被轮转(替换),也会继续跟踪新文件。
6. 运维实战场景
场景 A:查看配置文件开头
head -n 20 /etc/passwd
👉 查看系统用户列表的前 20 行。
场景 B:快速定位日志结尾
tail -n 100 /var/log/syslog
👉 查看最近的 100 行日志。
场景 C:实时跟踪日志
tail -f /var/log/nginx/error.log
👉 调试 Nginx 错误日志。
场景 D:多文件日志合并跟踪
tail -f /var/log/nginx/*.log
👉 同时跟踪多个日志文件。
场景 E:查看二进制文件头信息
head -c 512 /bin/bash | hexdump -C
👉 查看 ELF 文件头。
7. 注意事项
- 默认行数:head和tail默认输出 10 行。
- 大文件性能:tail -f会保持进程挂起,长期使用需注意资源占用。
- 日志轮转问题:使用 tail -f时,如果日志被切割替换,可能会“失效”,推荐tail -F。
- 字节模式风险:-c按字节截取可能会破坏多字节字符(如 UTF-8 中文)。
8. 小结
- 
  head:适合 查看文件开头,常用于配置文件、数据文件的结构检查。
- 
  tail:适合 查看文件结尾或实时更新,是日志分析必备工具。
- 
  运维中最常用的是: - head -n(查看开头几行)
- tail -n(查看结尾几行)
- tail -f/- tail -F(实时日志跟踪)
 
更多推荐
 
 

所有评论(0)