Linux上查询日志内容--常用日志查询命令: find、grep、head、tail、cat、tac、more、less、nl

发布时间:2022-03-01 10:55:09 作者:yexindonglai@163.com 阅读(1571)

前言

当我们的java项目上线后,一般的java项目都是部署到linux环境的,如果生产出现问题,就需要我们有能力在linux系统上查找问题所在,而常见的查找问题的方式就是看log日志,看看哪个地方出现异常,再根据异常情况进行代码修改;以下命令都是查询日志文件内容可以用到的命令,使用这些工具可以更快地帮我们找到问题所在;

find 查找某个文件

命令为: find / -name fileName

  • find:查找文件的命令
  • / : 从根目录开始查找,会一往所有的子目录一直查询,如果要从当前目录开始查找,这样写find ./ -name fileName
  • -name :根据名称模糊查询
  • fileName 需要查询的文件名称

模糊匹配文件

  1. find / -name fileName*

grep命令—-查找文件内容

linux系统中,利用grep打印匹配的上下几行

  • grep -5 'parttern' inputfile//打印匹配行的前后5行

  • grep -C 5 'parttern' inputfile //打印匹配行的前后5行

  • grep -A 5 'parttern' inputfile //打印匹配行的后5行

  • grep -B 5 'parttern' inputfile //打印匹配行的前5行

另外,grep命令还可以和其他命令组合 一起使用,就像这样

  • tail -10f xxx.log |grep -5 '%s*' // 查看xxx日志中匹配某字符串的后面5行
  • ps -ef | grep java // 查询所有带java字符的进程

head命令 查看文件内容头几行

  • head fileName :打印文件内容头10行内容,等同于命令:head -n 10 fileName;
  • head -n 50 fileName :打印文件内容前50行;
  • head -n 50 fileName >> head.txt :将文件前50行的内容保存到head.txt里面

tail命令 查看文件内容末尾几行

  • tail fileName //打印文件末尾10行内容,等同于命令:tail -n 10 fileName
  • tail -n 50 fileName,打印文件末尾50行内容
  • tail -n +50 fileName,打印文件从第50行开始一直到末尾的内容
  • tail -f fileName ,持续跟踪文件的增长情况,实时输出文件的更新内容;当文件改名或被删除,则跟踪停止;常用于查看实时日志情况;可以简写为tailf fileName
  • tail -F fileName : 注意这里是大写的F, ,持续跟踪文件的增长情况,实时输出文件的更新内容;并保持重试,当文件改名或被删除后,后面又创建了相同的文件,则会继续跟踪;
  • tail -f -s 10 fileName:每次间隔10秒打印一次文件的最新内容
  • tail -n 50 fileName >> tail.txt :将文件末尾50行的内容保存到tail.txt文件中
  • tail -c 50 fileName :打印文件末尾50个字节的字符

cat命令 升序查看文件所有内容

如果文件太大,慎用cat命令,因为会将文件内的所有内容都打印出来;

  • cat -n fileName:从1开始对文件内容的每一行输出行号
  • cat -b fileName:从1开始对文件内容的每一行输出行号,和-n相似,不过会对空行不编号
  • cat -s fileName:当遇到有连续两行以上的空白行,就代换为一行的空白行。
  • cat -E fileName:在每行结束处显示 $。
  • cat -n textfile1 > textfile2 :把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里
  • cat fileName | grep VM :查找文件内所有带有VM字符的行
  • cat fileName | grep -2 VM:查找文件内所有带有VM字符的行和前后2行;

tac命令 倒序查看文件所有内容

tac和cat使用方法相同,区别是cat升序展示,tac倒叙展示,其实cat字母反过来就是tac,cattac命令执行对比图
在这里插入图片描述

more命令 翻页展示

more命令可以将文件内容分页展示,空格键:space查看下一页,B键查看上一页;需要注意的是more命令不能直接定位到末尾开始翻页。

  • more fileName:默认根据窗口大小,一页一页地显示文件内容;
  • more -10 fileName : 翻页时每页显示10行
  • more +10 fileName:从第10行开始分页
  • more -d fileName :提示,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果你按错键了会提示: [Press ‘h’ for instructions.] ,按下H键会展示帮助信息,告诉你有哪些可以使用的命令;
  • more -l fileName :取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
  • more -f fileName:计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
  • more -p fileName :不以卷动的方式显示每一页,而是先清除萤幕后再显示内容(不加-p时下一页上一页都是追加在后面展示的)
  • more -c fileNme :不以卷动的方式显示每一页,而是先显示内容后在清除萤幕(-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料,肉眼看不出区别)
  • more -s fileName : 当遇到有连续两行以上的空白行,就合并为一行的空白行
  • more +/exception fileName:在每个文档显示前搜寻该字串(exception),然后从该字串之后开始显示
  • more fileName1 fileName2 : 展示多个文件内容,到达第一个文件末尾时,按下空格键将自动翻页到下一个文件的展示
  • more -u fileName :不显示下引号输出,百度了下回车旁边的就是下引号,其实就是单引号;在这里插入图片描述

less 命令

less命令和more命令类似,但使用 less 可以随意浏览文件,但若使用了 less 时,就可以使用[pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
在这里插入图片描述

  • less -b 1024 fileName :设置缓冲区大小
  • less -e fileName :当文件显示结束后,再往后翻页将会自动离开
  • less -f fileName : 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
  • less -i fileName :搜索时忽略大小写,搜索命令在下面会提到
  • less -N fileName :展示每行的行号
  • less -s fileName : 当遇到有连续两行以上的空白行,就合并为一行的空白行
  • less -m fileName :查看进度,以百分比的方式展示,和more命令最下面的百分比类似。在这里插入图片描述

less 命令内常用操作

符号 描述
/字符串 向下搜索“字符串”的功能
?字符串 向上搜索“字符串”的功能
n 重复前一个搜索(与 / 或 ? 有关)
N 反向重复前一个搜索(与 / 或 ? 有关)
b 向前翻一页
d 向后翻半页
q 退出 less 命令
空格键 向后翻一页
向上键 向上翻动一行
向下键 向下翻动一行

使用less命令从末尾开始往前翻页

  1. 先用less命令打开文件
    1. less project.log
  2. 按下快捷键 shift + G 跳转到日志末尾处最后一行

  3. 使用命令ctrl+b往前一页一页翻页查看

less的其他命令参考:

  1. 全屏导航
    • ctrl + F: 向前移动一屏
    • ctrl + B : 向后移动一屏
    • ctrl + D : 向前移动半屏
    • ctrl + U : 向后移动半屏
  2. 单行导航
    • j: 向前移动一行
    • k:向后移动一行
  3. 其它导航
    • G:移动到最后一行
    • g :移动到第一行
    • q / ZZ : 退出 less 命令

      nl命令 展示行号

  • nl -b a fileName: 无论是否空行,都展示出行号,和cat -n fileName命令一样
  • nl -b t fileName: 如果有空行,空的那一行不显示行号(默认值)
  • nl -n ln fileName:行号在命令行的最左边展示
  • nl -n rn fileName :行号在最右边展示,且不加0
  • nl -w 2 fileName :行号占用的位数;
  • nl -n rz fileName :行号在最左边展示,加0 。如下图

在这里插入图片描述

关键字linux