linux命令查看日志

首先介绍几个日志查看种常用的简单命令:

1、tail

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

命令格式:

tail [参数] [文件]

参数:

  • -f 循环读取
  • -q 不显示处理信息
  • -v 显示详细的处理信息
  • -c<数目> 显示的字节数
  • -n<行数> 显示文件的尾部 n 行内容
  • --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
  • -q, --quiet, --silent 从不输出给出文件名的首部
  • -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

例如:tail -400f demo.log #监控最后400行日志文件的变化 等价与 tail -n 400 -f (-f参数是实时) 

2、less

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

例如:less demo.log #查看日志文件,支持上下滚屏,查找功能 

3、grep

选项与参数:

-a :将 binary 文件以 text 文件的方式搜寻数据

-c :计算找到 ‘搜寻字符串‘ 的次数

-i :忽略大小写的不同,所以大小写视为相同

-n :顺便输出行号

-v :反向选择,亦即显示出没有 ‘搜寻字符串‘ 内容的那一行!

pattern

1、^       行的开始 ,如‘^google‘匹配所以以google开头的行

2、$       行的结束, 如‘goolge$‘匹配所以以google结束的行

3、.        匹配一个非换行符(‘\n‘)字符, 如‘gr.p‘匹配gr后接一个任意字符

4、*       匹配零个或多个先前字符

5、[]      匹配一个指定范围内的字符,如‘[Gg]rep‘ 匹配Grep和grep

6、[^]   匹配一个不在指定范围内的字符,如:‘[^A-FH-Z]rep‘匹配不包含A-F和H-Z的一个字母开头,紧跟rep的行。

7、\<    锚定单词的开始,如:‘\<grep‘匹配包含以grep开头的单词的行。

8、\>    锚定单词的结束,如‘grep\>‘匹配包含以grep结尾的单词的行。

9、x\{m\}   重复字符x,m次,如:‘o\{5\}‘匹配包含5个o的行。

10、x\{m,\}  重复字符x,至少m次,如:‘o\{5,\}‘匹配至少有5个o的行。

11、x\{m,n\}  重复字符x,至少m次,不多于n次,如:‘o\{5,10\}‘匹配5--10个o的行。

12、\w  匹配文字和数字字符,也就是[A-Za-z0-9],如:‘G\w*p‘匹配以G后跟零个或多个文字或数字字符,然后是p。

13、\W  \w的反置形式,匹配一个或多个非单词字符,如点号句号等。

14、\b  单词锁定符,如: ‘\bgrep\b‘只匹配grep。

15、\+  匹配一个或多个先前的字符。如:‘[a-z]\+able‘,匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。

16、\?  匹配零个或一个先前的字符。如:‘gr\?p‘匹配gr后跟一个或没有字符,然后是p的行。

17、a\|b\|c  匹配a或b或c。如:grep|sed匹配grep或sed

18、\(\)   分组符号,如:love\(ab\le\|rs\)ov\+匹配loveable或lovers,匹配一个或多个ov。

实例

1、 ls -l | grep ‘^a‘         通过管道过滤ls -l输出的内容,只显示以a开头的行。

2、 grep ‘test‘ d*       显示所有以d开头的文件中包含test的行。

3、 grep ‘test‘ aa bb cc  显示在aa,bb,cc文件中匹配test的行。

4、 grep ‘[a-z]\{5\}‘ aa 显示所有包含每个字符串有5个连续小写字符的字符串的行。

5、 grep ‘w\(es\)t.*\1‘ aa  如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用"\"号进行转义,直接写成‘w(es)t.*\1‘就可以了。

6、 ps -ef|grep clustal2       查找指定进程“clustal2”

ps -ef|grep clustal2|wc -l     查找指定进程“clustal2”的运行个数

4、uniq

Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

uniq 可检查文本文件中重复出现的行列。(注意 uniq命令会删除文件内容)

  • -c或--count 在每列旁边显示该行重复出现的次数。
  • -d或--repeated 仅显示重复出现的行列。

testfile中的原有内容为:

$ cat testfile      #原有内容
test
test
test
Hello
Hello
Hello
Hello
Linux
Linux 

使用uniq 命令删除重复的行后,有如下输出结果:

$ uniq testfile     #删除重复行后的内容
test
Hello
Linux 

检查文件并删除文件中重复出现的行,并在行首显示该行重复出现的次数。使用如下命令:

uniq -c testfile 

结果输出如下:

$ uniq -c testfile      #删除重复行后的内容
3 test           #前面的数字的意义为该行共出现了3次
4 Hello          #前面的数字的意义为该行共出现了4次
2 Linux          #前面的数字的意义为该行共出现了2次 

当重复的行并不相邻时,uniq 命令是不起作用的,即若文件内容为以下时,uniq 命令不起作用:

$ cat testfile1      # 原有内容
test
Hello
Linux
test
Hello
Linux
test 

这时我们就可以使用 sort:

$ sort  testfile1 | uniq
Hello
Linux
test 

统计各行在文件中出现的次数:

$ sort testfile1 | uniq -c
   3 Hello
   3 Linux
   3 test 

在文件中找出重复的行:

$ sort testfile1 | uniq -d
Hello 95
Linux 85
test 30
 

原文地址:https://www.cnblogs.com/wsw-seu/p/10579030.html

时间: 2024-08-29 17:05:48

linux命令查看日志的相关文章

Linux下查看日志的命令

最近线上的事故有点多,加上公司的监控系统实在是不好用,所以为了抓更多的信息,需要去线上服务器看实时日志.作为一个萌新,居然傻傻的直接用vim打开了jetty的日志文件,近乎10个G的日志文件被vim读入内存,导致服务器的内存被撑爆,系统自动开始kill进程,最后把jetty进程kill掉了,导致了线上故障. 所以有了这篇文章,主要介绍在Linux环境下,可以用来查看日志文件并且不会占用很大内存的一些命令. Introduction 一般来说在Linux下查看文件内容的命令有以下几种: vim.v

如何用linux命令查看nginx是否在正常运行

有时想知道nigix是否在正常运行,需要用linux命令查看nginx运行情况. 执行命令: ps -A | grep nginx 如果返回结果的话,说明有nginx在运行,服务已经启动. 如果不怕nginx关闭的话.也可以执行: service nginx restart 把nginx服务重启,在重启时,也可以看到具体有没有什么地方出错.

Linux下查看日志

linux下的开发经常要用到日志,这个很好用,可以帮助我们迅速定位错误,比如我们如果做lamp开发时,页面不报错,而也没有调试工具,我们一步步排错非常好时间,而且这种方法也很笨,所以掌握日志的使用方法非常重要. 查看日志的命令: cat tail -f 比如我们可能经常会查看apache的日志,可以迅速定位web项目的错误,apache日志我的默认目录在 var/log/httpd/ 下面,里面有两个日志文件 access_log和error_log文件,我习惯 cat  access_log

Linux中查看日志文件的正确姿势,求你别tail走天下了!

作为一个后端开发工程师,在Linux中查看查看文件内容是基本操作了.尤其是通常要分析日志文件排查问题,那么我们应该如何正确打开日志文件呢?对于笔者这种小菜鸡来说,第一反应就是 cat,tail,vi(或vim)了,是的,我曾经用过好多次vim编辑器来查看日志文件. 千万不要使用vi命令来查看大文件内容, 尤其对于那些几十G的大文件.因为vi仅仅是一个编辑器(可以理解为windows中的记事本),使用vi命令后则会把文件所有内容加载到内存中,如果内存不够大的话,则可能会导致服务器瘫痪. 为了生成测

linux下查看日志基本命令

1.cat命令: 功能:1)显示整个文件. 演示样例: $ cat fileName 2)把文件串连接后传到基本输出,如将几个文件合并为一个文件或输出到屏幕. 演示样例: $ cat file1 file2 > file 说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到还有一个档案)      cat參数具体解释: -n 或 –number 由 1 開始对全部输出的行数编号 -b 或 –number-nonblank 和 -n 相似.仅仅只是对于空白行不编号 -s 或 –s

Linux命令 查看及修改文件属性

chmod [功能说明] 改变文件的访问权限  #Linux中访问权限分为:文件属主(文件的创建者)文件组属主(创建者所处的组)和其他(其他用户) [语法格式] Chmod[参数]mode[文件名或目录名] Chmod[参数]--referecnce=文件名或目录名[文件名或目录名] [选项参数] 若目标文件或目录是符号链接文件,则改变的是符号文件本身的权限,不能对指向的文件改变,并且该命令也没有想chgrp命令那样提供对符号文件权限改变的参数,只有超级用户和文件的拥有者才能更改文件访问权限 M

Linux下查看日志文件

在公司开发的时候,开发的程序在本地测试正常,但是在测试环境却有问题.这个时候第一反应就是查看日志文件,看看日志文件里面有什么错误信息.我潇洒的执行了一下 vim log.txt,然后就直接卡死了,打不开. 那怎么办,我还得查看啊.使用了cat命令,虽然没卡死,但是显示的文档明显不对,怎么办呢? 问了一下公司的前辈才知道,看日志文件,用tail命令,我直接vim打开,不卡死才怪! tail -f log.txt #显示最后的10行 tail -n 100 log.txt #显示最后的100行 原文

Linux常用命令查看日志

cattail -f日 志 文 件 说 明 1 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 2 /var/log/secure 与安全相关的日志信息 3 /var/log/maillog 与邮件相关的日志信息 4 /var/log/cron 与定时任务相关的日志信息 5 /var/log/spooler 与UUCP和news设备相关的日志信息 6 /var/log/boot.log 守护进程启动和停止相关的日志消息 系统: 1 #

我爱java系列---【linux系统查看日志常用命令】

Linux下用less查看文件内容 前提:如何快速找到日志所在的目录呢? find / -name "目录名称*" 1.打开文件 #打开 less xx.log # 直接定位到第100行 less +100g xx.log # 定位到最后一行 less +GG xx.log # 定位到第100个字节的位置 less +100P xx.log # 直接定位到50%的位置 less +100p xx.log 2.less中移动 逐行移动 j – 向前移动一行 k – 向后移动一行 逐页移动