我的编程空间,编程开发者的网络收藏夹
学习永远不晚

一天一个shell命令 linux文本操作系列-head,tail命令详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

一天一个shell命令 linux文本操作系列-head,tail命令详解

head命令中文介绍:


用法:head [选项]... [文件]...
将每个指定文件的头10 行显示到标准输出。
如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。
如果不指定文件,或者文件为"-",则从标准输入读取数据。

长选项必须使用的参数对于短选项时也是必需使用的。
 -c, --bytes=[-]K	显示每个文件的前K 字节内容;
			如果附加"-"参数,则除了每个文件的最后K字节数据外
			显示剩余全部内容
 -n, --lines=[-]K	显示每个文件的前K 行内容;
			如果附加"-"参数,则除了每个文件的最后K 行外显示
			剩余全部内容
 -q, --quiet, --silent	不显示包含给定文件名的文件头
 -v, --verbose		总是显示包含给定文件名的文件头
   --help		显示此帮助信息并退出
   --version		显示版本信息并退出

K 后面可以跟乘号:
b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,
GB 1000*1000*1000, G 1024*1024*1024, 对于T, P, E, Z, Y 同样适用。

tail命令详解


用法:tail [选项]... [文件]...
显示每个指定文件的最后10 行到标准输出。
若指定了多于一个文件,程序会在每段输出的开始添加相应文件名作为头。
如果不指定文件或文件为"-" ,则从标准输入读取数据。

长选项必须使用的参数对于短选项时也是必需使用的。
 -c, --bytes=K		输出最后K 字节;另外,使用-c +K 从每个文件的
			第K 字节输出
 -f, --follow[={name|descriptor}]
		即时输出文件变化后追加的数据。
			-f, --follow 等于--follow=descriptor 
 -F		即--follow=name --retry
 -n, --lines=K	输出最后K 行,代替最后10 行;使用-n +K 从每个文件的第K 字节输出
   --max-unchanged-stats=N
			使用--follow=name, 重新打开一个在N(默认为5)
				次迭代后没有改变大小的文件来看它是否被解除连
				接或重命名(这是循环日志文件的通常情况)。
				由于有inotify,这个选项很少使用。
   --pid=PID		同 -f 一起使用,当 PID 所对应的进程死去后终止
 -q, --quiet, --silent	不输出给出文件名的头
   --retry		即使目标文件不可访问依然试图打开;在与参数
			--follow=name 同时使用时常常有用。
 -s, --sleep-interval=N  with -f, sleep for approximately N seconds
               (default 1.0) between iterations.
               With inotify and --pid=P, check process P at
               least once every N seconds.
 -v, --verbose      always output headers giving file names
   --help		显示此帮助信息并退出
   --version		显示版本信息并退出

如果字节数或行数K 的第一个字符是"+",输出从文件开始第K 个项目,否则输出文件
最后K 个项目。K 可以使用一下几种单位之一:
b 512,kB 1000,K 1024,MB 1000*1000,M 1024*1024,
GB 1000*1000*1000,G 1024*1024*1024,以及T,P,E,Z,Y。

如果您希望即时追查一个文件的有效名称而非描述内容(例如循环日志),默认
的程序动作并不如您所愿。在这种场合可以使用--follow=name 选项,它会使
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 行显示到标准输出。 

 如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。 

 如果不指定文件,或者文件为"-",则从标准输入读取数据。 

长选项必须使用的参数对于短选项时也是必需使用的。 

-c, --bytes=[-]K         显示每个文件的前K 字节内容; 

 如果附加"-"参数,则除了每个文件的最后K字节数据外 

 显示剩余全部内容 

-n, --lines=[-]K           显示每个文件的前K 行内容; 

 如果附加"-"参数,则除了每个文件的最后K 行外显示 

 剩余全部内容 

-q, --quiet, --silent       不显示包含给定文件名的文件头 

-v, --verbose               总是显示包含给定文件名的文件头 

--help                          显示此帮助信息并退出 

--version                     显示版本信息并退出

K 后面可以跟乘号:  

b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, 

 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 行到标准输出。 
 若指定了多于一个文件,程序会在每段输出的开始添加相应文件名作为头。 
 如果不指定文件或文件为"-" ,则从标准输入读取数据。 
长选项必须使用的参数对于短选项时也是必需使用的。 
-c, --bytes=K      输出最后K 字节;另外,使用-c +K 从每个文件的第K 字节输出 
-f, --follow[={name|descriptor}]  即时输出文件变化后追加的数据。 
-F            即--follow=name --retry 
-n          --lines=K 输出最后K 行,代替最后10 行;
span style="color: #000000">-n +K  从每个文件的第K 字节输出
--max-unchanged-stats=N
     使用--follow=name, 重新打开一个在N(默认为5) 次迭代后没有改变大小的文件来看它是否被解除连 接或重命名(这是循环日志文件的通常情况)。 由于有inotify,这个选项很少使用。 
--pid=PID       同 -f 一起使用,当 PID 所对应的进程死去后终止 
-q              --quiet, --silent      不输出给出文件名的头 
--retry           即使目标文件不可访问依然试图打开;在与参数 
--follow=name       同时使用时常常有用。 
-s             --sleep-interval=N with -f, sleep for approximately N seconds (default 1.0) between iterations. With inotify and--pid=P, check process P at least once every N seconds. 
-v          --verbose always output headers giving file names 
            --help 显示此帮助信息并退出 
             --version 显示版本信息并退出 
 如果字节数或行数K 的第一个字符是"+",输出从文件开始第K 个项目,否则输出文件 
 最后K 个项目。K 可以使用一下几种单位之一: 
b 512,kB 1000,K 1024,MB 1000*1000,M 1024*1024, 
 GB 1000*1000*1000,G 1024*1024*1024,以及T,P,E,Z,Y。

解读:

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是两个非常常用的命令,熟练掌握方便查看文件内容。两个很简单,也很相似,所以放在一起写出来。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

一天一个shell命令 linux文本操作系列-head,tail命令详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

一天一个shell命令 linux文本操作系列-head,tail命令详解

head命令中文介绍:用法:head [选项]... [文件]... 将每个指定文件的头10 行显示到标准输出。 如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。 如果不指定文件,或者文件为"-",则从标准输入读取数据。长选项
2022-06-04

一天一个shell命令 linux文本操作系列-wc命令详解

全称 wc是一个用于统计的工具,全拼为:Word Count(单词统计) 实例: 1. 统计行数 $wc ?l file 2. 统计单词数 $wc ?w file 3. 统计字符数 $wc ?c file 4. 统计流中的字符数 $echo
2022-06-04

一天一个shell命令 linux文本操作系列-tree命令详解

tree命令是以图形化的树结构打印文件和目录的主角。通常linux发行版本中并没有包括这个命令。你需要用包管理器自行安装。 实例: 1. tree 打印当前目录下所有文件 2. tree ?p ${dir} 打印dir目录下所有文件,以及他
2022-06-04

一天一个shell命令 linux文本操作系列-diff命令详解

这又是一个文件比较命令,熟练掌握会节省你很多工作。还记得comm命令吗?diff比他更加复杂,好用,不仅能比较文件,还能比较目录。 当一个文件有多个版本时候,或者更多复杂的文件,目录比较时,你会期望有一个比comm更有用的命令,diff正是
2022-06-04

一天一个shell命令 linux文本操作系列-tac,rev命令详解

说明: tac和rev没有必然联系,唯一相同的是,他们是“反派”。tac其实是cat的反写,cat正常输出,那tac就倒着输出,不过从行的最后一行输出,那rev呢?rev是每行的最后一个字母到第一个字母倒序输出。 简单实例 tac命令 文件
2022-06-04

一天一个shell命令 linux文本内容操作系列-awk命令详解

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk有3个不同版本
2022-06-04

一天一个shell命令 linux文本内容操作系列-grep命令详解

从这篇开始,是文本内容操作,区别于文本操作。 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正
2022-06-04

一天一个shell命令 linux文本内容操作系列-cut命令详解

说明: cut 按列切分文件,你可以指定分隔每列的定界符。在cut的术语中,每列都是一个字段,就是有时候说第一列,可能表述称第一个字段。 实战: 假设有文件data.txt,格式如下 NO Name Mark Percen
2022-06-04

一天一个shell命令 linux文本内容操作系列-sed命令详解

说明: sed是stream editor(流编辑器)的缩写。它能够完美匹配正则表达式。sed和awk是文件编辑最重要的两个命令了。尤其涉及到了很多正则表达式的问题,笔者不敢也有点犯怵,试着写写。 实例: 1.替换文件中的字符串 $sed
2022-06-04

一天一个shell命令 linux文件操作系列-ln命令详解

里提示一下:ubuntu的翻译很多都是字面直译,存在很多问题,所以建议大家参照我这里的解释。当然本来也是有些赶文的嫌疑,望指正。 经常在linux上操作,有在不同的目录下切换某几个固定的命令,或者修改几个固定的文件,这时候,如果能在一个目录
2022-06-04

一天一个shell命令 linux文本操作系列-chmod命令用法

先来熟悉下权限,以上一个例子comm下的文档为例 $ls -l -rw-rw-r-- 1 yjplxq yjplxq 36 7月 30 22:40 A.txt -rw-rw-r-- 1 yjplxq yjplxq 27 7月
2022-06-04

一天一个shell命令 linux文本操作系列-touch命令用法

之前我们学过dd创建测试文件,如果不需要考虑文件大小,创建一个空白文件的话,不妨试试 touch: 将每个文件的访问时间和修改时间改为当前时间。 不存在的文件将会被创建为空文件,除非使用-c 或-h 选项。 入门例子: 1. 如果想生成10
2022-06-04

一天一个shell命令 linux文件内容操作系列-cat命令详解

注:在awk命令之后,没有太多复杂命令,都是一些基础命令。 说明: cat,是单词 concatenate 的缩写, 把文件的内容输出到stdout.当与重定向操作符 (> 或 >>结合使用时, 一般都是用来将多个文件连接起来. 用法:
2022-06-04

一天一个shell命令 文本操作系列-comm命令用法

comm命令比较两个已排序文件每行数据的差异,并将其结果显示出来,如果没有指定任何参数,comm命令读取这两个文件,然后生成三列输出:1>仅在file1中出现的行2>仅在file2中出现的行3>在两个文件中都存在的行。如果为文件名之一指定
2022-06-04

一天一个shell命令 linux文本系列-file命令用法

linux file 命令简介: 该命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的。更多介绍可以查看这篇文章:http://www.lsjlt
2022-06-04

一天一个shell命令 文本操作系列-linux dd使用教程

今天第一天写,先说下写shell脚本的基本知识 1. shell脚本以.sh 为扩展名,通常运行 ./${filename}.sh 或者 sh ${filename}.sh 2. shell 脚本开头以 #!/bin/bash #!读作 “
2022-06-04

一天一个shell命令 linux好管家-进程-ps命令详解

小知识(以ps为例): 查看命令路径 which ps 命令帮助 ps --help 命令完全手册: man ps 说明 ps全称是:Process Status (进程状态),他就是提供进程信息的。 ps命令用于报告当前系统的进程状态
2022-06-04

一天一个shell命令 linux好管家--磁盘--df命令详解

df命令 磁盘管理 df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 语法 df(选项)(参数) 选项 -a或--all:包含全部的文件系统; --blo
2022-06-04

一天一个shell命令 linux好管家-磁盘-du命令详解

du命令 磁盘管理 du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。 语法 du [选项][文件] 选项 -a或-all 显示目录中个别文件的大小。 -b
2022-06-04

编程热搜

目录