linux中head和tail用-n选项控制行数:head默认显示前10行,支持-n 5(前5行)、-n +5(第1–5行)、-n -3(除末3行);tail默认后10行,-n 8(最后8行)、-n +8(第8行起至末尾)、-n -8等价于-n 8;管道组合可取中间段如head -n 30|tail -n +20得第20–30行;多文件时-q禁用文件名,-v强制显示。

Linux 中用 head 和 tail 查看指定行,核心是用 -n 选项控制行数,语法简洁、响应快,特别适合处理大文件或快速检查配置、日志开头和结尾。
head 查看文件开头指定行
默认显示前 10 行;加 -n 可自定义行数,支持正数、负数两种逻辑:
-
head -n 5 file.txt:显示前 5 行(等价于head -5 file.txt) -
head -n +5 file.txt:效果同上,+5明确表示“从第 1 行到第 5 行” -
head -n -3 file.txt:显示除最后 3 行外的所有内容(即跳过末尾 3 行)
tail 查看文件结尾指定行
默认显示后 10 行;-n 同样是关键,但正负号含义与 head 不同:
-
tail -n 8 file.txt:显示最后 8 行(最常用) -
tail -n +8 file.txt:显示从第 8 行开始到文件末尾的内容(含第 8 行) -
tail -n -8 file.txt:等价于tail -n 8,显示最后 8 行(-8是简写习惯,非必须带负号)
组合使用快速定位中间段落
单独的 head/tail 不直接支持“第 20–30 行”,但可管道配合实现:
-
head -n 30 file.txt | tail -n +20:先取前 30 行,再从中截取第 20 行起的内容 → 得到第 20 到 30 行 -
tail -n +15 file.txt | head -n 10:从第 15 行开始取 10 行 → 第 15 到 24 行
查看多文件时控制输出格式
同时处理多个文件时,默认会打印文件名标题,可用选项调整:
-
head -n 3 file1.txt file2.txt:分别显示两个文件的前 3 行,并标出文件名 -
head -q -n 3 file1.txt file2.txt:不显示文件名,只输出内容(适合后续管道处理) -
tail -v -n 5 *.log:强制为每个匹配的 .log 文件都显示文件名头











