尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

tail和head命令

tail和head命令 tail命令主要作用查看文件末尾的内容。默认输出文件的最后10行head命令主要作用查看文件的开头部分的内容1.tailtail命令的参数主要分为内容筛选、输出控制和模式切换三类。类容筛选参数参数说明示例-n 行数或--lines行数显示末尾指定行数最常用tail -n 20 file.log或tail -20 file.log-c 字节数或--bytes字节数显示末尾指定字节数tail -c 1024 file.log显示最后1KB-n 行号从指定行号开始显示到末尾tail -n 10 file.log从第10行开始输出控制参数-f或--follow实时追踪文件新增内容常用于日志监控tail -f app.log-F增强版-f支持文件被删除/轮转后继续追踪tail -F /var/log/nginx/access.log--pidPID配合-f当指定进程退出时自动停止追踪tail -f log.txt --pid1234-s 秒数或--sleep-interval秒数配合-f设置轮询间隔默认1秒tail -f -s 0.5 log.txt每0.5秒检查一次输出显示参数参数说明示例-q或--quiet、--silent处理多个文件时不显示文件名头tail -q -n 5 file1.txt file2.txt-v或--verbose处理多个文件时总是显示文件名头默认行为tail -v -n 5 file1.txt file2.txt-z或--zero-terminated使用\0作为行分隔符替代换行符用于处理特殊格式文件rainLAPTOP-IIB6PKR5:~/Tests$ cat test.txt Hello WSL WSL Linux hello wsl wsl linux # 现在是2026年5月7日00点00分 # 正在 用WSLWindows Subsystem for Linux适用于Linux的Windows子系统 # WSL是微软开发的一项技术允许使用者可以在Windows上直接允许Linux环境无需虚拟机或双系统。它让Linux二进制可执行文件能在Windows上原生运行。 rainLAPTOP-IIB6PKR5:~/Tests$ vim test.txt rainLAPTOP-IIB6PKR5:~/Tests$ cat test.txt Hello WSL WSL Linux hello wsl wsl linux # 现在是2026年5月7日00点00分 # 正在 用WSLWindows Subsystem for Linux适用于Linux的Windows子系统 # WSL是微软开发的一项技术允许使用者可以在Windows上直接允许Linux环境无需虚拟机或双系统。它让Linux二进制可执行文件能在Windows上原生运行。 a b c d e f g h i j k l m n o p q r s t u v w x y z rainLAPTOP-IIB6PKR5:~/Tests$ wc -l test.txt # 统计test.txt文件一共有多少行 33 test.txtrainLAPTOP-IIB6PKR5:~/Tests$ tail test.txt # 默认查看文件末尾10行 q r s t u v w x y z rainLAPTOP-IIB6PKR5:~/Tests$ tail -n 5 test.txt # -n num 表示查看末尾num行 v w x y z rainLAPTOP-IIB6PKR5:~/Tests$ tail -n 27 test.txt # -n num 表示查看第num行到末尾最后一行 t u v w x y z rainLAPTOP-IIB6PKR5:~/Tests$ tail -n 28 test.txt u v w x y zrainLAPTOP-IIB6PKR5:~/Tests$ tail -qn 1 test.txt a.txt b.txt z happy Apple rainLAPTOP-IIB6PKR5:~/Tests$ tail -q -n 1 test.txt a.txt b.txt z happy Apple在Linux命令中短参数可以合并写在一起。只要它们都不带额外参数值。-qn 1实际上被解析为-q(quiet模式)-n 1(显示1行)-q -n 1被解析为-q(quiet模式)-n 1(显示1行)为什么-n可以分开写因为-n这个参数需要额外的数值参数-q是独立参数不需要值# 以下命令都是等效的 tail -q -n 1 file.txt # 标准写法 tail -qn 1 file.txt # 合并写法因为-q无参数 tail -n 1 -q file.txt # 顺序无关 tail -n1 -q file.txt # -n和1之间可以不加空格 tail -qn1 file.txt # 最紧凑的写法n和1之间无空格 # 这些都会输出文件的最后1行不显示文件名# ✓ 可以合并-q 和 -f 都是标志参数 tail -qf file.txt # ✓ 可以合并-v 和 -n 5v是标志n需要值 tail -vn 5 file.txt # ✗ 不能这样写-n 和 -q 交换顺序但值会解析错误 tail -nq 1 file.txt # tail: invalid number of lines: q (错误) # 因为 -nq 被解析为 -n q把字母q当作行数参数了rainLAPTOP-IIB6PKR5:~/Tests$ tail -n 1 test.txt a.txt b.txt # 不加-q参数在处理多个文件时会显示文件名 test.txt z a.txt happy b.txt Apple2.headhead命令的参数比tail简单主要用于查看文件开头部分核心参数参数说明示例-n 行数或--lines行数显示开头指定行数默认10行head -n 20 file.txt或head -20 file.txt-c 字节数或--bytes字节数显示开头指定字节数head -c 1024 file.txt显示前1KB-n -行数显示除了末尾N行外的所有内容head -n -5 file.txt显示除最后5行外所有行-c -字节数显示除了末尾N字节外的所有内容head -c -100 file.txt显示除最后100字节外所有内容输出显示参数参数说明示例-q或--quiet、--silent处理多个文件时不显示文件名头head -q -n 3 file1.txt file2.txt-v或--verbose处理多个文件时总是显示文件名头head -v -n 3 file1.txt-z或--zero-terminated使用\0作为行分隔符处理特殊格式文件3.tail和head的对比场景使用命令示例预览文件开头headhead -15 file.txt监控文件结尾tailtail -f app.log跳过开头10行tail -n 11tail -n 11 file.txt跳过结尾10行head -n -10head -n -10 file.txt查看文件前50%head -n $(($(wc -l file)/2))需结合计算
返回列表