每天一个 Linux 命令(20)—— head,tail

这是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战

前言

Linux 中的 head 和 tail 是一对含义相反的命令,head 命令 用于显示指定文件的前几行数据内容tail 命令 用于显示指定文件最后几行数据内容。今天我们一起来学习。

head

命令简介

head 命令 用于显示指定文件的前几行数据内容。其中, files 是一个或一组输入文件。如果未指定文件名参数,或者指定的文件名为“-”,则使用标准输入作为输入文件;如果未指定任何选项,默认显示文件前 10 行内容(包括空行)。如果同时指定了多个文件,在显示每个文件的正文之前将增加下列标题信息作为分隔标志(其中 filename 是文件的名字) ==>filename<==

命令格式

head [参数]... [文件]...
复制代码

命令参数

参数 解释
-c num,--bytes=[-]num 显示文件的前 num 个字符。此外,如果数字前面有一个减号“-”前缀,意味着显示文件除最后 num 个字节之外的全部内容。注意,参数 num 之后还可以加字节单位后缀,如 b(512)kB(1000)K(1024)MB(1000^2)M(1024^2)GB(1000^3)G(1024^3)以及 T、P、E、Z 或 Y 等更大的字节单位。
-n num,--lines=[-]num 显示文件前 num 行数据。如果数字前有一个减号“-”前缀,意味着显示文件除最后 num 行之外的全部内容。
‐num 省略用法,其效果等同于使用 ‐n num 选项。
-q,--quiet,--silent 禁止输出包括文件名在内的标题信息。
-v,--verbose 总是输出包括文件名在内的标题信息。

tail

命令简介

tail 命令 用于显示指定文件最后几行数据内容。其中,files 是一个或一组输入文件。如果未指定文件名参数,或者指定的文件名为“-”,使用标准输入作为输入文件。如果未指定任何选项,默认显示文件最后 10 行数据内容(包括空行)。如果同时指定了多个文件,在显示每个文件的正文之前将会增加下列标题信息作为分隔标志:==>filename<==

命令格式

tail[必要参数][选择参数][文件]
复制代码

命令参数

参数 解释
-c num,--bytes=num 显示指定文件最后 num 个字节的数据,而非最后 num 行数据。此外,如果数字参数 num 前面有一个加号“+”前缀,表示从指定文件前数第 num 个字节位置开始显示文件数据。
`-f, --follow[={name descriptor}]`
-n lines,--lines=lines 显示指定文件最后 lines 行数据。然而,如果在指定的行数之前增加一个“+”前缀(即“+lines”),表示从指定文件前数第 lines 行开始显示文件。
--pid=pid 与 -f 选项一起使用时,可以随着指定进程的终止而自动终止执行 tail 命令。其中 pid 是进程 ID。
-q,--quiet,--silent 禁止输出含有文件名的标题信息。
--retry 与 --follow=name 选项一起使用时,尝试打开指定的文件,即使文件不存在或无法访问。如果未指定此选项,当遇到文件不存在或无法访问的情况时,tail 命令将会在输出错误信息后立即终止运行,不会尝试再次检测。
-s n,--sleep-interval=n 修改循环检测的时间间隔(单位为秒),默认值是 1.0 秒。每次循环检测时,检测指定文件的大小是否发生变化。同 -f 选项一起使用时,睡眠 n 秒之后再开始重复显示。
-v,--verbose 总是输出含有文件名的标题信息。
--help 显示命令的用法、概述与选项说明等帮助信息,然后退出。
--version 显示命令的版本、版权与作者等信息,然后退出。

应用实例

head

  1. 显示文件的前 n 行
head -n 5 log.log
复制代码
  1. 输出文件除了最后 n 行的全部内容
head -n -6 log.log
复制代码

tail

  1. 显示文件末尾内容
tail -n 5 log.log
复制代码
  1. 循环查看文件内容
tail -f ping.log
复制代码
  1. 从第 10 行开始显示文件
tail -n +10 log.log
复制代码

参考文档

Guess you like

Origin juejin.im/post/7034532291770581023