Linux中的head与tail命令及用法详解
作者:小鱼吃小鱼
Linux中head与tail命令用于查看文件开头/结尾内容,支持指定行数、字节数及实时跟踪日志,head默认显示前10行,tail默认后10行,常用于运维日志分析,需注意权限与资源占用问题,本文给大家介绍Linux中的head与tail命令及用法,感兴趣的朋友跟随小编一起看看吧
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
📖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.1head基本用法
head file.txt
👉 显示 file.txt
的前 10 行。
head -n 20 file.txt
👉 显示前 20 行。
head -c 100 file.txt
👉 显示前 100 个字节内容。
head file1 file2
👉 显示多个文件的前 10 行。
5.2tail基本用法
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
(实时日志跟踪)
到此这篇关于Linux中的head与tail命令详解的文章就介绍到这了,更多相关linux head与tail命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!