head与tail都是以行为单位进行数据选取的,head是取出前面,tail是取出后面的。

head(取出前面几行)

1.命令格式:

   head [参数]... [文件]...  

2.命令参数:

   -q 隐藏文件名

   -v 显示文件名

   -c<字节> 显示字节数

   -n<行数> 显示的行数


命令示例:

1.默认情况下,显示前10行

[root@w zdw]# head 123.log 
1
2
3
4
5
6
7
8
9
10

2.显示前5行

[root@w zdw]# head -n 5 123.log 
1
2
3
4
5

3.文件有21行,以下操作,只打印前面的6行,后面的15行不会打印出来

[root@w zdw]# head -n -15 123.log   
1
2
3
4
5
6


tail(取出后面几行)

1.命令格式;

tail[必要参数][选择参数][文件]   

2.命令参数:

   -f 循环读取

   -q 不显示处理信息

   -v 显示详细的处理信息

   -c<数目> 显示的字节数

   -n<行数> 显示行数

   --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束. 

   -q, --quiet, --silent 从不输出给出文件名的首部 

   -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒 


命令示例:

1.显示文件最后5行

[root@w zdw]# tail -n 5 123.log 
16
17
18
19
20

2.只列出15行以后的数据

[root@w zdw]# tail -n +15 123.log  
15
16
17
18
19
20

3.循环查看文件内容

[root@w zdw]# ping www.baidu.com >123.log &           把ping信息追加到123.log中
[root@w zdw]# tail -f 123.log 
64 bytes from 220.181.111.188: icmp_seq=32 ttl=55 time=3.50 ms
64 bytes from 220.181.111.188: icmp_seq=33 ttl=55 time=3.67 ms
64 bytes from 220.181.111.188: icmp_seq=34 ttl=55 time=7.14 ms
64 bytes from 220.181.111.188: icmp_seq=47 ttl=55 time=3.54 ms
64 bytes from 220.181.111.188: icmp_seq=48 ttl=55 time=3.33 ms
64 bytes from 220.181.111.188: icmp_seq=49 ttl=55 time=4.24 ms
^C

一直显示,直到按ctrl+c才终止

4.显示文件的第6行到第10行

[root@w zdw]# head -n 10 456.log|tail -n 5       使用管道来操作
6
7
8
9
10