热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux环境下查看日志文件命令详解_Linux

大家好,本篇文章主要讲的是Linux环境下查看日志文件命令详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收

前言

当日志存储文件很大时,我们就不能用 vi 直接去查看日志了,就需要Linux的一些内置命令去查看日志文件.

系统Log日志位置:

/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一

/var/log/secure 与安全相关的日志信息

/var/log/maillog 与邮件相关的日志信息

/var/log/cron 与定时任务相关的日志信息

/var/log/spooler 与UUCP和news设备相关的日志信息

/var/log/boot.log 守护进程启动和停止相关的日志消息

一、cat命令:


参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
-E --show-ends 在每行结束处显示 $
-e --等价于-vE
cat主要有三大功能:
1. $ cat filename 一次显示整个文件。
2. $ cat > filename 从键盘创建一个文件。(只能创建新文件,不能编辑已有文件)
3. $ cat filename1 filename2 > filename 将几个文件合并为一个文件(如果原本file文件中有内容,会被覆
盖掉) 盖掉)
例:
把 file1 的内容加上行号后输入到 file2 这个文件里
cat -n filename1 > filename2
把 file1 和 file2 的内容加上行号(空白行不加)之后将内容追加到 file3 里
cat -b filename1 filename2 >> filename3
把test.txt文件扔进垃圾箱,赋空值test.txt
cat /dev/null > /etc/test.txt
注意:>意思是创建,>>是追加。千万不要弄混了。

二、more命令:


more 命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。
该命令一次显示一屏文本信息,满屏后停下来,以百分比的形式,以上下翻页,以上下行移动显示查看日志并且在屏幕
的底部给出一个提示信息,从开始至当前己显示的该文件的百分比:–More–(XX%)
**按键 **说明**
按Space键: 显示文本的下一屏内容。
按B键: 显示上一屏内容。
按Enter键: 只显示文本的下一行内容。
按斜线符: 接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
按H键: 显示帮助屏,该屏上有相关的帮助信息。
按Q键: 退出more命令

三、less命令:


less 命令查看日志,和more命令类似,只不过less支持上下键前后翻阅文件。

四、head命令:


参数:
-q 隐藏文件名
-v 显示文件名
-c 显示字节数
-n 显示的行数
从文本文件的头部开始查看,head 命令用于查看一个文本文件的开头部分。
例:
head filename 或 head -n 10 显示文本文件 file 的前十行内容,然后退出命令
head -n 20 filename 显示文本文件 file 的前二十行内容
head -n -10 filename 显示文本文件除了最后10行的其他所有文本文件信息

五、tail命令:


tail 命令用于显示文本文件的末尾内容(默认10行,相当于增加参数 -n 10),并且实时不断有内容被打印出来,
若想中断进程,使用命令 Ctrl-C
参数:
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
参数解释:
-f 该参数用于监视File文件增长。
-c Number 从 Number 字节位置读取指定文件
-n Number 从 Number 行位置读取指定文件。
-m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致
截断,但使用-m则会避免该问题。
-b Number 从 Number 表示的512字节块位置读取指定文件。
-k Number 从 Number 表示的1KB块位置读取指定文件。
File 指定操作的目标文件名称
上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾
部开始计算。
tail 可运行文件一般在/usr/bin/以下。
tail -f filename 监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10)
tail -100f filename 监视filename文件的尾部内容(默认从底部往前100行,相当于增加参数 -n 100)
tail -n 20 filename 显示filename最后20行
tail -r -n 10 filename 逆序显示filename最后10行

六、tac命令:


tac (反向查看日志,会打开整个文件,倒序显示,不常用)
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反。
cat 是由第一行到最后一行连续显示在屏幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来

七、echo命令:


echo 命令用来在标准输出上显示一段字符
echo [ -n ] 字符串其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号
echo "the echo command test!"
echo "the echo command test!">filename 输出内容到文件
用 echo 命令输出加引号的字符串时,将字符串原样输出
用 echo 命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割

八、grep命令:


grep 同时满足多个关键字和满足任意关键字,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹
配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,显示完自动退
出命令
grep [options]
参数:
[options]参数:
-c:只输出匹配行的计数
-I:不区分大 小写(只适用于单字符)
-h:查询多文件时不显示文件名
-l:查询多文件时只输出包含匹配字符的文件名
-n:显示匹配行及 行号
-s:不显示不存在或无匹配文本的错误信息
-v:显示不包含匹配文本的所有行
-A: 显示匹配行及前面多少行, 如: -A3, 则表示显示匹配行及前3行
-B: 显示匹配行及后面多少行, 如: -B3, 则表示显示匹配行及后3行
-C: 显示匹配行前后多少行, 如: -C3, 则表示显示批量行前后3行
pattern正则表达式主要参数:
: 忽略正则表达式中特殊字符的原有含义
^:匹配正则表达式的开始行
$: 匹配正则表达式的结束行
<:从匹配正则表达 式的行开始
>:到匹配正则表达式的行结束
[ ]:单个字符,如[A]即A符合要求
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求
。:所有的单个字符
- :有字符,长度可以为0

grep -n "word" filename 查看文件包含条件的日志,全部显示出来(单引号或者双引号都可以,不区分)
grep -E "word1|word2|word3" filename 满足任意条件(word1、word2和word3之一)将匹配的内容全部打
印出来
grep word1 filename | grep word2 |grep word3 必须同时满足三个条件(word1、word2和word3)才匹配
多管道,多次筛选
使用正则表达式 -E 选项
grep -E "[1-9]+" 或 egrep "[1-9]+"
grep -A100 'word' filename 显示匹配行往后100行
grep -B100 'word' filename 显示匹配行往前100行
grep -C100 'word' filename 显示匹配行往前往后100行

九、sed命令:


sed 本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作
参数
-n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加
上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-p ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
-s ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g

sed -n '5,10p' filename 只查看文件的第5行到第10行
sed -n '/2019-01-04 21:30:00/,/2019-01-04 22:30:30/p' filename 只查看文件包含时间段的区间内容

混合命令:


tail -n +92表示查询92行之后的日志
tail filename -n 300 -f 查看底部即最新300条日志记录,并实时刷新
tail -f filename | grep -E 'word1|word2|word3' 实时打印出匹配规则的文件内容(注意或符号前后最好
不要有空格)
cat -n filename |grep “地形” | more 得到关键日志的行号
cat -n filename |tail -n +92|head -n 20
grep 'nick' | tail filename -C 10 查看字符‘nick'前后10条日志记录, 大写C
head -n 20 则表示在前面的查询结果里再查前20条记录

附加:


vi filename 查看或编辑文件
查找文件内容关键字方法:
先 执行命令>: vi filename
然后输入>: /查找字符串
按n查找下一个

如查找nohup.out日志文件的error关键字:
执行命令: vi nohup.out
输入以下回车: /error
按n查找下一个
将实时日志打印到指定文件:

将实时日志打印到文件newlog.log内,方便查找
执行命令: tail -f nohup.out >newlog.log
备注:newlog.log文件可以不存在,命令执行时会自动新建

前言

当日志存储文件很大时,我们就不能用 vi 直接去查看日志了,就需要Linux的一些内置命令去查看日志文件.

系统Log日志位置:

/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一

/var/log/secure 与安全相关的日志信息

/var/log/maillog 与邮件相关的日志信息

/var/log/cron 与定时任务相关的日志信息

/var/log/spooler 与UUCP和news设备相关的日志信息

/var/log/boot.log 守护进程启动和停止相关的日志消息

一、cat命令:


参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
-E --show-ends 在每行结束处显示 $
-e --等价于-vE
cat主要有三大功能:
1. $ cat filename 一次显示整个文件。
2. $ cat > filename 从键盘创建一个文件。(只能创建新文件,不能编辑已有文件)
3. $ cat filename1 filename2 > filename 将几个文件合并为一个文件(如果原本file文件中有内容,会被覆
盖掉) 盖掉)
例:
把 file1 的内容加上行号后输入到 file2 这个文件里
cat -n filename1 > filename2
把 file1 和 file2 的内容加上行号(空白行不加)之后将内容追加到 file3 里
cat -b filename1 filename2 >> filename3
把test.txt文件扔进垃圾箱,赋空值test.txt
cat /dev/null > /etc/test.txt
注意:>意思是创建,>>是追加。千万不要弄混了。

二、more命令:


more 命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。
该命令一次显示一屏文本信息,满屏后停下来,以百分比的形式,以上下翻页,以上下行移动显示查看日志并且在屏幕
的底部给出一个提示信息,从开始至当前己显示的该文件的百分比:–More–(XX%)
**按键 **说明**
按Space键: 显示文本的下一屏内容。
按B键: 显示上一屏内容。
按Enter键: 只显示文本的下一行内容。
按斜线符: 接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
按H键: 显示帮助屏,该屏上有相关的帮助信息。
按Q键: 退出more命令

三、less命令:


less 命令查看日志,和more命令类似,只不过less支持上下键前后翻阅文件。

四、head命令:


参数:
-q 隐藏文件名
-v 显示文件名
-c 显示字节数
-n 显示的行数
从文本文件的头部开始查看,head 命令用于查看一个文本文件的开头部分。
例:
head filename 或 head -n 10 显示文本文件 file 的前十行内容,然后退出命令
head -n 20 filename 显示文本文件 file 的前二十行内容
head -n -10 filename 显示文本文件除了最后10行的其他所有文本文件信息

五、tail命令:


tail 命令用于显示文本文件的末尾内容(默认10行,相当于增加参数 -n 10),并且实时不断有内容被打印出来,
若想中断进程,使用命令 Ctrl-C
参数:
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
参数解释:
-f 该参数用于监视File文件增长。
-c Number 从 Number 字节位置读取指定文件
-n Number 从 Number 行位置读取指定文件。
-m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致
截断,但使用-m则会避免该问题。
-b Number 从 Number 表示的512字节块位置读取指定文件。
-k Number 从 Number 表示的1KB块位置读取指定文件。
File 指定操作的目标文件名称
上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾
部开始计算。
tail 可运行文件一般在/usr/bin/以下。
tail -f filename 监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10)
tail -100f filename 监视filename文件的尾部内容(默认从底部往前100行,相当于增加参数 -n 100)
tail -n 20 filename 显示filename最后20行
tail -r -n 10 filename 逆序显示filename最后10行

六、tac命令:


tac (反向查看日志,会打开整个文件,倒序显示,不常用)
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反。
cat 是由第一行到最后一行连续显示在屏幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来

七、echo命令:


echo 命令用来在标准输出上显示一段字符
echo [ -n ] 字符串其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号
echo "the echo command test!"
echo "the echo command test!">filename 输出内容到文件
用 echo 命令输出加引号的字符串时,将字符串原样输出
用 echo 命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割

八、grep命令:


grep 同时满足多个关键字和满足任意关键字,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹
配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,显示完自动退
出命令
grep [options]
参数:
[options]参数:
-c:只输出匹配行的计数
-I:不区分大 小写(只适用于单字符)
-h:查询多文件时不显示文件名
-l:查询多文件时只输出包含匹配字符的文件名
-n:显示匹配行及 行号
-s:不显示不存在或无匹配文本的错误信息
-v:显示不包含匹配文本的所有行
-A: 显示匹配行及前面多少行, 如: -A3, 则表示显示匹配行及前3行
-B: 显示匹配行及后面多少行, 如: -B3, 则表示显示匹配行及后3行
-C: 显示匹配行前后多少行, 如: -C3, 则表示显示批量行前后3行
pattern正则表达式主要参数:
: 忽略正则表达式中特殊字符的原有含义
^:匹配正则表达式的开始行
$: 匹配正则表达式的结束行
<:从匹配正则表达 式的行开始
>:到匹配正则表达式的行结束
[ ]:单个字符,如[A]即A符合要求
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求
。:所有的单个字符
- :有字符,长度可以为0

grep -n "word" filename 查看文件包含条件的日志,全部显示出来(单引号或者双引号都可以,不区分)
grep -E "word1|word2|word3" filename 满足任意条件(word1、word2和word3之一)将匹配的内容全部打
印出来
grep word1 filename | grep word2 |grep word3 必须同时满足三个条件(word1、word2和word3)才匹配
多管道,多次筛选
使用正则表达式 -E 选项
grep -E "[1-9]+" 或 egrep "[1-9]+"
grep -A100 'word' filename 显示匹配行往后100行
grep -B100 'word' filename 显示匹配行往前100行
grep -C100 'word' filename 显示匹配行往前往后100行

九、sed命令:


sed 本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作
参数
-n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加
上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-p ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
-s ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g

sed -n '5,10p' filename 只查看文件的第5行到第10行
sed -n '/2019-01-04 21:30:00/,/2019-01-04 22:30:30/p' filename 只查看文件包含时间段的区间内容

混合命令:


tail -n +92表示查询92行之后的日志
tail filename -n 300 -f 查看底部即最新300条日志记录,并实时刷新
tail -f filename | grep -E 'word1|word2|word3' 实时打印出匹配规则的文件内容(注意或符号前后最好
不要有空格)
cat -n filename |grep “地形” | more 得到关键日志的行号
cat -n filename |tail -n +92|head -n 20
grep 'nick' | tail filename -C 10 查看字符‘nick'前后10条日志记录, 大写C
head -n 20 则表示在前面的查询结果里再查前20条记录

附加:


vi filename 查看或编辑文件
查找文件内容关键字方法:
先 执行命令>: vi filename
然后输入>: /查找字符串
按n查找下一个

如查找nohup.out日志文件的error关键字:
执行命令: vi nohup.out
输入以下回车: /error
按n查找下一个
将实时日志打印到指定文件:

将实时日志打印到文件newlog.log内,方便查找
执行命令: tail -f nohup.out >newlog.log
备注:newlog.log文件可以不存在,命令执行时会自动新建


推荐阅读
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • 这个问题困扰了我两天,卸载Dr.COM客户端(我们学校上网要装这个客户端登陆服务器,以后只能在网页里输入用户名和密码了),问题解决了。问题的现象:在实验室机台式机上安装openfire和sp ... [详细]
  • 一、概述nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,相对于其它一些系统资源监控工具来说,nmon所记录的信息是比较全面的 ... [详细]
  • oracle安装时找不到启动,Oracle没有开机自启是怎么回事?这一步骤很重要
    重启Oracle数据库重启Oracle数据库包括启动Oracle数据库服务进程和启动Oracle数据库两步,大家继续往下看。按照《【Oracle】什么?作为DBA&# ... [详细]
  • 网络安全是一个非常重要的课题,基本上你运行的服务后台越多,你就可能打开更多的安全漏洞.如果配置的恰当的话,Linux本身是非常安全可靠的,假使在Linux系统中有某个安全缺陷,由于Linu ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了Arction客户案例——LightningChart被集成到BodeAnalyzerSuite中!相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
  • 后台自动化测试与持续部署实践
    后台自动化测试与持续部署实践https:mp.weixin.qq.comslqwGUCKZM0AvEw_xh-7BDA后台自动化测试与持续部署实践原创 腾讯程序员 腾讯技术工程 2 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
author-avatar
sexy-domey
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有