shell head tail
head: 打印文件的前10行(默认)
tail: 打印文件的后10行(默认)
如果你是个典型的开发或者部署人员,是不是觉得开始亲切起来。我们平时用的最多的命令
- $tail -f catalina.out
$head
实例:
1. 打印head.txt, tail.txt的前10行
- $head head.txt tail.txt
==> head.txt <==
head.txt内容 ==> tail.txt <== tail.txt内容 |
2. 打印 1K的内容
- $head –c1K head.txt
3. 打印前5行内容
- $head -n5 head.txt
4. 打印出最后5行之外的所有行
- $head -n -5 head.txt
这里-5表示负5
解读 --help
用法:head [选项]... [文件]... 将每个指定文件的头10 行显示到标准输出。 如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。 如果不指定文件,或者文件为"-",则从标准输入读取数据。 长选项必须使用的参数对于短选项时也是必需使用的。 GB 1000*1000*1000, G 1024*1024*1024, 对于T, P, E, Z, Y 同样适用。 |
解读:
这里唯一注意:如果不指定文件,或者文件为"-",则从标准输入读取数据。
$tail
实例:
1.打印一个文件最后10行
- $tail tail.txt
2.跟踪日志,打印文件最后几行,并且保持读取追加数据
- tail -f tail.txt
解读--help
用法:tail [选项]... [文件]... 显示每个指定文件的最后10 行到标准输出。 若指定了多于一个文件,程序会在每段输出的开始添加相应文件名作为头。 如果不指定文件或文件为"-" ,则从标准输入读取数据。 长选项必须使用的参数对于短选项时也是必需使用的。 |
解读:
1. 区别-f 和-F
借网上一例子:
窗口1 输入
- $while [ "true" ] ; do date >>test.log; sleep 1 ; done;
#每隔一秒传入一个日期到test.log
窗口2 输入
- $tail -f test.log
窗口3 输入
- $rm test.log
此时窗口2 则停止打印,而test.log已经重新生成
如果采用-F的形式,也会重新生成一个新的test.log,但会自动重新读取
收尾
tail和head是两个非常常用的命令,熟练掌握方便查看文件内容。两个很简单,也很相似,所以放在一起写出来