Linux查看日志的实用方法

  作为一名测试工程师,测试任务中和Linux打交道的地方有很多,比如查看日志、定位bug、修改文件、部署环境等。产品部署在Linux上,如果某个功能发生错误,就需要我们去排查出错的原因,所以熟练的掌握查看log的方法显得尤为重要。
  谈到查看log的方法,最常使用的命令可以说是cat与more及less了,但是如果查看一个很大的文件,并且只想看到该文件最后几行的结果输出时,你还记得用什么吗?对了,就是tail,此外tac也可以达到这个目的。接下来文章将通过实例来讲解各个查看日志的命令。

cat:由第一行开始显示文件内容
tac:从最后一行开始显示,不知道你是否观察出来,tac是cat倒着写的,所以功能上两个是相反的
nl :显示的时候,同时输出行号 
more:一页一页地显示文件内容
less :与more类似,相比于more,可以往前翻页
head:只看前面几行
tail:只看后面几行

想要直接查看一个文件的内容,可以使用cat/tac/nl命令行。

1. cat(concatenate,串联)
cat [-AbEnTv] 文件
选项与参数:
-A : 相当于-vET的整合,可列出一些特殊字符而不是空白而已;
-b : 列出行号,仅针对非空白行做出行号显示,空白行不标行号;
-E : 将结尾的换行符$显示出来;
-n : 打印出行号,连同空白行也会有行号,与-b的选项不同;
-T : 将[tab]按键以^I显示出来 ;
-v : 列出一些看不出来的特殊字符;

实例1:查看/etc/spring.log的文件内容。
cat  /etc/spring.log
\a
\ab
\abc
实例2:查看/etc/spring.log的文件内容并打印行号。
cat  -n  /etc/spring.log
1 \a
2 \ab
3 \abc
#如果对于大文件,cat -n 可以解决找特定行的需求。
实例3:将/etc/spring.log的内容完整的显示出来(包含特殊字符)。
cat  -A  /etc/spring.log
\a$
\ab$
\abc$

  在一般情况下,使用[tab]与空格键的效果差不多,都是一堆空白,无法区分出两者,但是如果使用cat -A 就能够发现空白的地方到底是什么,其中[tab]是以^I表示,换行符则是以$表示。当文件内容的行数超过40行以上时,根本来不及在屏幕上看到结果。所以cat配合less或者more是不错的选择。

2. tac(反向列示)
实例1:反向输出/etc/spring.log的文件内容。
cat  /etc/spring.log
\abc
\ab
\a
3. nl(添加行号打印)
nl  [-bnw]  文件
选项与参数:
-b : 指定行号指定的方式:主要2种:
         -b a :表示不论是否为空行,也同样列出行号(类似cat -n);
         -b t :如果有空行,空的那一行不要列出行号(默认值);
-n : 列出行号表示的方法,主要3种:
         -n ln :行号在屏幕的最左方表示;
         -n rn :行号在自己栏位的最右方显示,且不加0;
         -n rz :行号在自己栏位的最右方显示,且加0;      
-w : 行号栏位的占用的字符数。

实例1:用nl列出/etc/spring.log的内容。
nl /etc/spring.log
1  \a
2  \ab
#其实文件有三行,第三行为空白(没有任何字符),因为是空白行,所以nl不会加上行号。
#如果想加上行号,使用nl -b a /etc/spring.log
实例2:
nl -b a /etc/spring.log
1  \a
2  \ab
3  
#如果想在行号前面自动补上0,使用nl -b a -n rz /etc/spring.log
实例3:
nl -b a -n rz /etc/spring.log
000001 \a
000002 \ab
000003 
# 默认6位数,想改为3位数可以使用nl -b a -n rz -w -3 /etc/spring.log
实例4:
nl -b a -n rz -w -3 /etc/spring.log
001 \a
002 \ab
003 

  nl可以将输出的文件内容自动地加上行号,其默认的结果与cat -n不太一样,nl可以将行号做比较多的显示设计,包括位数与是否自动补齐0等的功能。
  想要一页一页的查看文件的内容,可以使用more和less命令。

1. more(一页一页翻动)
more 文件
实例1:
more /etc/spring.log
OpenJDK 64-Bit Server VM (25.171-b10) for linux-amd64 JRE (1.8.0_171-b10), built on May  9 2018 13:15:45 by "mockbuild" with gcc 4.8.5 201
50623 (Red Hat 4.8.5-28)
Memory: 4k page, physical 3881804k(1452992k free), swap 0k(0k free)
....省略....
--More--(75%)  #这一行为重点,如果文件内容行数大于屏幕输出的行数时,就会展示出目前文件展示的百分比,此时光标也会停留在这里等待你输入信息,在more展示文件时,有几个功能按键可供使用:
1. 空格键(space): 代表向下翻一页
2. Enter : 代表向下翻一行
3. /字符串 : 代表在这个显示的内容中,向下查找字符串这个关键词
4. :f :立刻显示出文件名以及当前显示的行数
5. q :  代表立刻离开more,不再显示该文件内容
6. b或[ctrl]-b :代表往回翻页
2. less(一页一页翻动)
less 文件
实例1:
less /etc/spring.log
OpenJDK 64-Bit Server VM (25.171-b10) for linux-amd64 JRE (1.8.0_171-b10), built on May  9 2018 13:15:45 by "mockbuild" with gcc 4.8.5 201
50623 (Red Hat 4.8.5-28)
Memory: 4k page, physical 3881804k(1452992k free), swap 0k(0k free)
....省略....
:    #这一行等待你输入信息,展示文件时,有几个功能按键可供使用:
1. 空格键(space): 代表往下翻动一页
2. [pagedown] : 代表向下翻动一页
3. [pageup] :代表向上翻动一页
4. /字符串 : 向下查找字符串这个关键词
5. ?字符串 : 向上查找字符串这个关键词
6. n :  重复前一个查找(与/或?有关)
7. N:反向的重复前一个查找(与/或?有关)
8. g:前进到这个数据的第一行
9. G:前进到这个数据的最后一行
10. q :  退出

  对比less和more,less的用法更加的灵活,more的缺点是没有办法向前翻页,只能往后翻,但是less既能往后翻也能往前翻页。
  如果只想关注日志内容的前一段或者最后一段的内容,使用head/tail。

1. head(取出前面几行)
head [-n number] 文件
选项与参数:
-n : 后面接数字,代表显示几行的意思。
# 默认情况下是显示前10行,如果想要显示前20行,使用head -n 20 文件
实例1:
head -n 20 /etc/spring.log
# 行数可以为正数,也可以为负数,为负数的时候,这样理解,比如一个文件有131行,我不想看最后的100行,也就是说想看前31行,其实有2种命令方式:
1. head -n 31 /etc/spring.log
2. head -n -100 /etc/spring.log
2. tail(取出后面几行)
tail [-n number] 文件
选项与参数:
-n : 后面接数字,代表显示几行的意思。
-f  : 表示持续刷新显示后面所接文件中的内容,按下ctrl -c 才会结束
# 默认情况下是显示最后10行,如果想要显示最后20行,使用tail -n 20 文件
实例1:如果不知道文件有多少行,但是想要列出100行以后的数据?
tail -n +100 /etc/spring.log
实例2:持续检测/etc/spring.log的内容。
tail -f /etc/spring.log

  几种查看log的方式总结的也差不多了,想要熟练的使用还需要多练。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容