当前位置: 首页 > news >正文

Linux head、tail 命令详解——查看文件首尾内容+实时监控日志(工作必备)

前言

在Linux日常操作和工作中,我们很少需要查看文件的全部内容,更多时候是关注文件的开头(如配置文件的头部注释、数据文件的列名)、结尾(如日志文件的最新记录),或是实时监控日志的新增内容(如排查服务故障、跟踪程序运行状态)。head、tail命令就是为此而生,二者用法简洁、功能精准,其中tail -f更是运维、开发人员排查问题的“神器”。本文全程实操,讲透两个命令的核心用法、高频参数、工作场景和避坑技巧,新手看完就能直接用于日常操作和工作。


一、head 命令:查看文件头部内容(快速预览开头)

1. 命令作用

head 命令的核心功能是查看文件的头部内容,默认显示文件的前10行,也可手动指定显示的行数。它的优势的是无需加载整个文件,处理大文件时效率极高,适合快速预览配置文件的头部说明、日志文件的启动信息,或是CSV文件的列名等场景,避免因打开大文件占用过多系统资源。

2. 基本语法

格式:head [选项] 文件名/文件路径

核心选项:-n行数(指定显示的头部行数,是日常最常用的选项),此外还有-c字节数(按字节显示头部内容)、-q(多文件查看时不显示文件名)等,新手重点掌握-n即可。

3. 高频用法与参数(新手必记,直接复制可用)

① 无参数:默认显示文件前10行(最基础用法)

【示例】查看当前目录下日志文件log.txt的前10行内容,快速了解日志启动信息:

head log.txt

【效果】终端会直接输出log.txt文件的前10行,无需加载整个文件,操作简洁高效,适合快速预览。

② 参数 -n 行数:指定显示的头部行数(日常最常用)

当默认的10行不符合需求时,用-n参数指定具体行数,可简写为“-行数”(省略n),更便捷。

【示例1】查看log.txt文件的前5行,精准预览关键开头内容:

head -n 5 log.txthead -5 log.txt(简写形式,推荐)

【示例2】查看系统配置文件/etc/passwd的前3行(用户信息头部),快速确认文件格式:

head -n 3 /etc/passwd

③ 补充用法:显示除了最后N行以外的所有内容(新手了解,工作偶用)

-n后面加上负数,代表“排除文件最后N行,显示剩余所有内容”,适合需要查看文件大部分内容、仅排除尾部无关内容的场景。

【示例】查看log.txt文件,显示除了最后100行以外的所有内容:

head -n -100 log.txt

④ 拓展用法:按字节显示头部内容(-c参数)

除了按行数显示,head还支持按字节显示头部内容,适合查看二进制文件或特定字节长度的内容。

【示例】查看test.bin文件的前1024个字节内容:

head -c 1024 test.bin

4. 新手避坑点

1. 若指定的行数大于文件的总行数,head不会报错,会直接显示文件的全部内容;

2. 查看二进制文件(如图片、可执行文件)时,会显示乱码,不要用head查看,避免影响判断;

3. 多文件查看时,默认会显示每个文件的文件名,若不想显示,可加上-q参数(如head -q file1 file2)。


二、tail 命令:查看文件尾部内容+实时监控日志(工作核心)

1. 命令作用

tail 命令与head对应,核心功能有两个:① 查看文件的尾部内容(默认显示最后10行);② 实时监控文件的新增内容(tail -f,工作必备)。它同样无需加载整个文件,处理大文件效率极高,尤其适合查看日志文件的最新记录、实时追踪服务运行状态,是运维、开发人员排查故障的核心工具之一。

2. 基本语法

格式:tail [选项] 文件名/文件路径b

核心选项(新手必记):

--n 行数:指定显示尾部的行数,可简写为“-行数”;

--f:实时监控文件新增内容(工作最常用,重点掌握);

--F:增强版实时监控,文件被删除、重命名后,重新创建同名文件仍能继续监控(应对日志轮转场景);

--c 字节数:按字节显示尾部内容。

3. 高频用法与参数(新手必记,工作直接用)

① 无参数:默认显示文件最后10行(最基础用法)

【示例】查看log.txt文件的最后10行,快速了解日志最新记录:

tail log.txt

【场景】日常排查问题时,先查看日志最新10行,快速定位是否有错误信息。

② 参数 -n 行数:指定显示尾部的行数(常用)

与head的-n用法一致,可简写为“-行数”,适合精准查看尾部特定行数的内容。

【示例1】查看log.txt文件的最后5行,聚焦最新的日志记录:

tail -n 5 log.txttail -5 log.txt(简写,推荐)

【示例2】查看系统日志/var/log/syslog的最后20行,了解系统最新运行状态:

tail -n 20 /var/log/syslog

③ 参数 -f:实时监控文件新增内容(工作必备,重中之重)

当服务运行时,日志文件会不断新增内容,tail -f会持续追踪文件末尾,只要有新内容写入,就会实时显示在终端上,排查服务故障、跟踪程序运行状态时必不可少。其工作原理是基于文件描述符持续读取文件末尾,一旦文件大小增加,就会显示新增部分。

【示例】实时监控系统日志/var/log/syslog的新增内容,跟踪系统运行状态:

tail -f /var/log/syslog

【效果】终端会一直处于监控状态,不会自动退出,只要日志有新增内容,就会实时刷新显示。

【退出监控】按Ctrl + C键,即可退出实时监控(必记,否则终端会一直占用)。

【工作场景】部署服务后,实时监控日志,查看服务是否启动成功;服务报错时,实时跟踪错误信息,快速定位问题原因。

④ 参数 -F:增强版实时监控(应对日志轮转,工作推荐)

日常工作中,日志文件会因大小限制被系统轮转(如log.txt重命名为log.txt.1,再创建新的log.txt),此时tail -f会因追踪的是旧文件描述符而失效,无法监控新日志。而tail -F会周期性尝试重新打开同名文件,即使文件被删除、重命名后重新创建,也能继续监控,生产环境中强烈推荐使用。

【示例】增强版实时监控Nginx访问日志,应对日志轮转:

tail -F /var/log/nginx/access.log

⑤ 补充用法:按字节显示尾部内容(-c参数)

【示例】查看test.txt文件的最后100个字节内容:

tail -c 100 test.txt

⑥ 进阶用法:结合grep过滤关键信息(工作高频组合)

实时监控日志时,若日志内容过多,可结合grep命令过滤特定关键词(如错误、警告),减少信息噪音,快速定位关键内容。

【示例】实时监控log.txt,只显示包含“ERROR”的新增日志(忽略大小写用grep -i):

tail -f log.txt | grep "ERROR"

4. 新手避坑点(工作重点注意)

1. 实时监控(tail -f/tail -F)时,必须按Ctrl + C退出,不要强行关闭终端,否则可能导致终端异常;

2. 监控系统日志、服务日志时,普通用户可能因权限不足无法查看,需用sudo获取管理员权限(如sudo tail -f /var/log/auth.log);

3. 若指定的行数大于文件总行数,tail会显示文件全部内容,不会报错;

4. 日志轮转时,优先使用tail -F而非tail -f,避免监控中断;

5. 多文件监控时,默认会显示每个文件的文件名,若不想显示,可加上-q参数。


三、head、tail 命令对比(快速选择,避免用错)

命令

核心功能

默认行为

高频场景

核心参数

head

查看文件头部内容

显示前10行

预览配置文件头部、数据文件列名

-n(指定行数)、-c(指定字节数)

tail

查看尾部内容、实时监控日志

显示最后10行

查看日志最新记录、排查服务故障

-n(指定行数)、-f(实时监控)、-F(增强监控)


四、工作实操练习(新手必做,快速上手)

跟着以下步骤练习,5分钟掌握两个命令的核心用法,直接对接工作场景:

1. 先创建一个测试文件(模拟日志文件):touch test.log && for i in {1..20}; do echo "log line $i" >> test.log; done(创建20行内容的测试日志);

2. 用head查看头部内容:head test.log(默认前10行)、head -n 3 test.log(前3行);

3. 用tail查看尾部内容:tail test.log(默认后10行)、tail -5 test.log(后5行);

4. 实时监控测试日志:打开一个新终端,输入tail -f test.log

5. 模拟日志新增:回到第一个终端,输入echo "new log line" >> test.log,观察第二个终端,会实时显示新增内容;

6. 退出实时监控:按Ctrl + C,尝试用tail -F test.log再次监控,模拟日志轮转(删除test.log,重新创建并写入内容),观察监控是否继续生效;

7. 进阶练习:tail -f test.log | grep "new",实时过滤包含“new”的日志。


五、工作必备技巧总结(30秒记住,直接用)

1. 看开头:用head,head -n 行数 文件名,简写head -行数 文件名

2. 看结尾:用tail,tail -n 行数 文件名,简写tail -行数 文件名

3. 实时监控日志(工作核心):用tail -f 日志路径,退出按Ctrl + C

4. 应对日志轮转:用tail -F 日志路径,避免监控中断;

5. 过滤关键日志:用tail -f 日志路径 | grep "关键词",高效排查问题;

6. 核心原则:两个命令都无需加载整个文件,处理大文件高效,避免占用过多系统资源。

掌握这两个命令,就能轻松应对Linux文件首尾查看、日志实时监控的所有场景,尤其是tail -ftail -F,是工作中不可或缺的“神器”,练熟后能大幅提升工作效率。

http://www.jsqmd.com/news/856949/

相关文章:

  • Java EE:2.多线程-初阶(第三弹)
  • NPS内网穿透实战:5分钟为你的本地开发环境(如SpringBoot、Vue)配置一个临时公网URL
  • 黔西南兴义西服定制优选:六大本土实力厂家深度盘点(附联系方式) - 贵州服装测评君
  • 抖音视频批量下载终极指南:免费无水印工具完整教程
  • 如何测量WIFI通讯中客户端的漫游时间
  • 【C++笔记】内存管理流食般投喂
  • 为什么Java老手都推荐装JDK 8?从版本选择到目录结构,一次给你讲明白
  • Scratch游戏避坑指南:为什么你的‘躲子弹’游戏卡顿?变量与克隆体管理的3个关键点
  • 新闻传播论文降AI工具免费推荐:2026年新闻传播毕业论文AIGC超标免费4.8元达标完整方案
  • 用Python和GDAL处理高分二号卫星遥感数据:从TIF读取到归一化的保姆级教程
  • 别再用math.atan了!用NumPy的angle函数处理复数相位,效率提升不止一点点
  • 数据库 第七、八章习题总结
  • 高性价比AI编程神器Claude Code+deepseek v4 pro+vscode——详细安装指南(2026最新版)
  • 服务器部署Hermes【超详细版本】(一):基础环境、Docker 镜像、目录挂载与模型配置
  • 终极微信聊天记录备份指南:免费开源工具WeChatExporter完整教程
  • ncmdumpGUI:轻松解密网易云音乐NCM格式,释放你的音乐收藏
  • 从AVX512到Tensor Core:聊聊那些‘纸上算力’和‘实际跑分’为啥总对不上
  • 戴尔G15笔记本终极散热控制方案:TCC-G15开源工具完全指南
  • [具身智能-825]:AI的本质是根据提供的原始表象信息,如视觉图像或语音波形,发现背后的层层抽象的信息,如几何图案、表面语义、物理规律语义、社会语义....
  • 数据中心网络卡顿?可能是你的链路聚合负载分担策略没选对!
  • Godot PCK解包终极指南:从二进制文件到可用资源的完整转换流程
  • 机械工程论文降AI工具免费推荐:2026年机械工程毕业论文降AI知网维普亲测4.8元达标完整指南
  • 5分钟快速上手Mermaid Live Editor:免费在线图表编辑器完全指南
  • ncmdumpGUI完全指南:3步实现网易云音乐NCM文件高效解密转换
  • Windows系统DLL地狱实战:从Xshell6启动失败聊聊VC++运行库的安装与避坑
  • 专业级PUBG后坐力控制:罗技鼠标宏脚本深度技术解析
  • WarcraftHelper技术方案深度解析:魔兽争霸3现代化兼容性架构设计
  • 把闲置NAS变成数据中枢:Docker部署MySQL全流程与Python连接实战
  • 从模型文件到孪生场景:一个Three.js三维模型管理系统的完整产品化思考
  • 从手动点到自动选:用C#给SolidWorks草图轮廓选择写个‘智能外挂’