Linux 【06-head命令超详细教程】
Linux head 命令超详细保姆级教程
一、命令作用
head用于查看文件开头内容,默认打印文件前10行;也可接收管道输出,截取命令输出的头部数据,日常排查日志、读取配置、过滤输出高频使用。
二、基础语法
head[选项]文件名# 管道用法命令|head[选项]三、默认行为(无任何参数)
不加参数,自动输出文件前10行
# 查看 test.txt 前10行headtest.txt四、全部常用参数详解(高频+冷门全覆盖)
1.-n / --lines:指定输出行数(最常用)
简写-n 数字或直接-数字(极简写法)
# 输出前5行 三种等价写法head-n5test.txthead-5test.txthead--lines=5test.txt# 管道截取命令前3行ls-l/etc|head-3特殊用法:数字前加-(排除末尾N行)
head -n -k表示:输出全部行,但去掉最后k行
# 文件共100行,输出前90行,删掉最后10行head-n-10test.txt2.-c / --bytes:按字节截取,而非按行
单位:字节,可搭配后缀b/k/m/g(块/KB/MB/GB)
# 读取前100字节内容head-c100test.txt# 读取前2KB(2*1024字节)head-c2k test.txt# 读取前1MBhead-c1m test.txt同样支持负数值:head -c -20读取全部,删除最后20字节
3.-q / --quiet / --silent:多文件时不打印文件名
当传入多个文件,head 默认会输出==> 文件名 <==分隔标题,-q隐藏标题
# 不显示文件头,直接合并输出两个文件开头head-qtest1.txt test2.txt4.-v / --verbose:强制打印文件名标题
单个文件默认不显示标题,加-v强制输出文件分隔头
head-vtest.txt5.--help帮助文档 /--version查看版本
head--helphead--version五、多文件同时读取
直接空格分隔多个文件,默认带文件分隔标题
# 同时看两个文件前10行headtest1.txt test2.txt# 同时看两个文件前3行,隐藏标题head-q-3test1.txt test2.txt六、管道经典实战场景(工作最常用)
场景1:查看日志开头N行
# 查看nginx日志前20行head-20/var/log/nginx/access.log场景2:过滤目录列表,只看前5个文件
ls-lh/home|head-5场景3:配合grep,只看匹配结果前10条
# 搜索包含error的日志,只输出前10条匹配grep"error"app.log|head-10场景4:配合cat、sort截取头部
# 排序文件后,只看前15行sorttest.txt|head-15场景5:只看脚本前50字节(快速看文件编码头部)
head-c50install.sh七、特殊边界案例
1. 文件行数少于指定行数
文件只有3行,执行head -10 file:输出全部3行,不会报错。
2. 空文件
head empty.txt无任何输出,无报错。
3. 标准输入读取(无文件参数)
直接输入head,会读取键盘输入,按Ctrl+D结束输入,输出前10行。
八、head 与 tail 组合高级用法
1. 取文件中间一段(第11~20行)
先取前20行,再取末尾10行
head-20test.txt|tail-102. 查看日志最新前10条(实时日志尾部再截取)
tail-fapp.log|head-20九、易踩坑注意点
-数字只能简写行数,不能简写字节head -5合法;head -100c不合法,字节必须写-c 100- 中文、换行符都会占用字节,
-c截取容易截断汉字乱码,查看文本优先用-n - 负参数
-n -10:不能简写head --10,必须完整写head -n -10 - 二进制文件(图片、压缩包)慎用
-n,换行符混乱,推荐-c
十、速查表
| 命令 | 功能 |
|---|---|
| head file | 文件前10行 |
| head -n 8 file | 前8行 |
| head -8 file | 前8行简写 |
| head -n -5 file | 去掉最后5行,输出剩余全部 |
| head -c 512 file | 前512字节 |
| head -q f1 f2 | 多文件不打印文件名 |
| head -v file | 单个文件强制显示文件名 |
| cat file | head -12 | 管道截取前12行 |
