这是我参与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
- 显示文件的前 n 行
head -n 5 log.log
复制代码
- 输出文件除了最后 n 行的全部内容
head -n -6 log.log
复制代码
tail
- 显示文件末尾内容
tail -n 5 log.log
复制代码
- 循环查看文件内容
tail -f ping.log
复制代码
- 从第 10 行开始显示文件
tail -n +10 log.log
复制代码