那天蹲在电脑前面敲代码,盯着屏幕愣半天,满脑子都在想tail是什么意思啊,之前只在单词表里扫过一眼,知道是尾巴,可放到终端里面完全不是一回事,翻了好几个网页,越看越乱,不同人写的用法看着差不多,跑起来结果又不一样。
最先只是简单以为,它就是拿来看文件末尾内容的工具,敲完命令,屏幕刷出来最后十行文字,当时还觉得这下搞懂了,随手关掉窗口,转头再去别的机器上试,就卡壳了。同一个文件,换了参数之后输出的行数变了,还会一直停在那里刷新,不会自动退出,光标就在末尾一直闪,半天没动静,还以为是程序卡死了,直接按了强制关闭。
身边一起学的朋友说,他平时看日志全都靠这个,服务器出问题的时候,不用把整个大文件下载下来,不用翻前面一大堆早就看过的旧记录,直接抓后面新生成的内容就行。我当时听着觉得挺简单,自己上手的时候,老是记错参数,一会少打个减号,一会数字写在别的位置,命令抛出来报错,一行红色文字堆在窗口里,看着就头疼。
其实单词本身的本意确实是尾巴,动物的尾巴,东西的尾部,这个是词典里的释义,只是放到linux终端里面,变成了一个工具的名字,专门读取文本文件尾部的内容。就是这两层含义混在一起,最开始把我绕进去了,一会想英文词义,一会要记命令的效果,脑子来回跳转,越记越混。
试过加-f参数那回,印象最深。打开日志文件之后,窗口不会结束,只要后台有新日志写入,内容就会实时往下滚动,像盯着流水一样看实时消息。一开始不知道要按Ctrl+C才能退出,盯着滚动的文字干等,以为等文件写完它自己就会停下来,在那坐了十多分钟,后来才反应过来,这个模式就是用来持续监听文件新增内容的,不会自己结束。
也踩过一个没必要的误区,总想着把所有参数一次性全部记牢,什么-n、-f混在一起背,觉得全部记住才算弄懂,结果隔一天就忘,下次打开终端还是要重新搜。后来索性不硬背全部,只分两种自己常用的场景,单纯看末尾几行,和实时跟着日志刷新,别的参数碰到了再临时查,压力一下子轻不少。
文件太大的时候感受最明显,一个日志文件几个G,要是用别的指令直接打开,电脑会卡很久,加载半天才能显示内容,tail不用通读全部内容,直接定位到文件尾部,一瞬间就把内容抛出来,这点确实省事。但也不是什么文件都适合,碰到二进制文件的时候,跑出来一堆乱码,屏幕上全是看不懂的符号,试了一次之后就记住,只拿它看纯文本日志。
换了台新的虚拟机,环境配置不一样,输出的默认行数看着好像有差别,我还以为是命令本身变了,来回核对了好久,才发现只是默认配置的小差异,不是tail本身的作用改了。折腾这一通之后才慢慢分得清,单词释义和命令工具,是两个分开的东西,只是刚好共用同一个拼写而已。
这些感受仅代表我自己摸索时候的情况,每个人接触的场景不一样,使用的系统版本不同,碰到的细节体验也会不一样。
合上终端窗口的时候,桌面右下角的时间已经很晚了,没有整理笔记,就只是把刚才敲成功的那条命令,在记事本里随手复制粘贴了一行。