Linux之head及tail命令详解

本文详细介绍了Linux中的head和tail命令,包括它们的基本用法、参数选项及实用案例。head命令用于显示文件开头的部分内容,默认显示前10行,可以通过-n参数指定行数。tail命令则用于显示文件尾部内容,同样支持-n参数,并且提供-f选项来实时监控文件变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。 

head

1.命令格式:

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

2.命令功能:

head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。 

3.命令参数:

功能:显示文件的开头至标准输出中(默认文件开头的前10行)

head [OPTION]... FILE...

  [OPTION]

    -n #     显示文件的前#行  也可以直接 -#

      如:

        head -5 file  显示文件file的前5行

              -n -#      显示文件除了最后#行的其他内容

    -c #  显示文件的前#个字节

      如:

        head -c 20 file  显示文件file的前20个字节

    -c -n  显示文件除了最后n个字节的其他内容

    -q      隐藏文件名(当指定了多个文件时,在内容的前面会以文件名作为开头

    -v      显示文件名(默认单个文件不显示,多个文件显示)

4.使用实例:

实例1:显示文件的前n行

命令:

head -n 5 log2014.log

输出:

[root@localhost test]# cat log2014.log 

2014-01

2014-02

2014-03

2014-04

2014-05

2014-06

2014-07

2014-08

2014-09

2014-10

2014-11

2014-12

==============================

[root@localhost test]# head -n 5 log2014.log 

2014-01

2014-02

2014-03

2014-04

2014-05[root@localhost test]#

 

实例2:显示文件前n个字节

命令:

head -c 20 log2014.log

输出:

[root@localhost test]# head -c 20 log2014.log

2014-01

2014-02

2014

[root@localhost test]#

 

实例3:文件的除了最后n个字节以外的内容 

命令:

head -c -32 log2014.log

输出:

[root@localhost test]# head -c -32 log2014.log

2014-01

2014-02

2014-03

2014-04

2014-05

2014-06

2014-07

2014-08

2014-09

2014-10

2014-11

 

实例4:输出文件除了最后n行的全部内容

命令:

head -n -6 log2014.log

输出:

[root@localhost test]# head -n -6 log2014.log

2014-01

2014-02

2014-03

2014-04

2014-05

2014-06

实例5:head可以一次显示多个文件

[root@oracledb ~]# head log.txt  log1.txt 
==> log.txt <==
2016-1-1
2016-1-2
2016-1-3
2016-1-4
2016-1-5
2016-1-6
2016-1-7
2016-1-8
2016-1-9
2016-1-10

==> log1.txt <==
2016-1-1
2016-1-2
2016-1-3
2016-1-4
2016-1-5
2016-1-6
2016-1-7
2016-1-8
2016-1-9
2016-1-10

tail

tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
参数解释:
-f 该参数用于监视File文件增长。
-c Number 从 Number 字节位置读取指定文件
-n Number 从 Number 行位置读取指定文件。
-m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
-b Number 从 Number 表示的512字节块位置读取指定文件。
-k Number 从 Number 表示的1KB块位置读取指定文件。
File 指定操作的目标文件名称
上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部開始计算。
tail可运行文件一般在/usr/bin/以下。

 

(1)
  displays the first 6 lines of a file
  head -6 readme.txt
  (2) displays the last 25 lines of a file
  tail -25 mail.txt
  范例一是显示档案的前 6 行,范例二则是显示档案最后的 25 行。
  而下面的范别,结合了 head 与 tail 的指令,显示档案的第 11 行到第 20 行:
(3)
  head -20 file | tail -10
   在 tail 的使用手册页中显示了比 head 还多的可用参数,其中有一个很好用的参数 " -f ",使用此参数时,tail 不会回传结束信号,除非我们去自行去中断它;相反的,它会一直等待一段时间,一直到他发现资料自它最后一次被读取后,又被加入新的一行时:
(4)
  display ongoing updates to the given
  log file
  tail -f /usr/tmp/logs/daemon_log.txt
  上述范例可以动态显示该 log 文件的动态更新。
  假设该服务程序是一直不断的加入动态资料到/usr/adm/logs/daemon_log.txt 的 log 文件里,在命令列控制窗口中使用 tail -f,它将会以一定的时间实时追踪该档的所有更新。 ( -f 的只有在其输入为档案时才能使用 )。
  假如你在 tail 后下了多个档案参数,你便能在同一个窗口内一次追踪数个 log 档:
  track the mail log and the server error log
  at the same time.
  tail -f /var/log/mail.log /var/log/apache/error_log
  tac -- 反过来串连
   cat 倒过来拼这就是 tac 的功能 它是把档案的顺序内容反过来串连用的,那么 ~ 它都用在什么状况下呢 ? 任何须要以后进先出的顺序重新排列组件的工作都用得上它 ! 以下面的指令来说,便是以自最后建立的到最先建立的顺序,列出三个最新建的使用者帐号:
(5)
  last 3 /etc/passwd records - in reverse
  $ tail -3 /etc/passwd | tac
  curly:x:1003:100:3rd Stooge:/homes/curly:/bin/ksh
  larry:x:1002:100:2nd Stooge:/homes/larry:/bin/ksh
  moe:x:1001:100:1st Stooge:/homes/moe:/bin/ksh
 
查看文件内容的特殊方法
  相信最基本的cat和less,more你已经很熟悉了,如果有特殊的要求呢:
1. 如果你只想看文件的前5行,可以使用head命令,如:
head -5 /etc/passwd
2. 如果你想查看文件的后10行,可以使用tail命令,如:
tail -10 /etc/passwd
tail -f /var/log/messages
参数-f使tail不停地去读最新的内容,这样有实时监视的效果

补充:
跟tail功能相似的命令还有:
cat 从第一行開始显示档案内容。
tac 从最后一行開始显示档案内容。
more 分页显示档案内容。
less 与 more 相似,但支持向前翻页
head 仅仅显示前面几行
tail 仅仅显示后面几行
n 带行号显示档案内容
od 以二进制方式显示档案内容

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值