Linux实战一天一个小指令--《日志查看》

阿丹:

        在开发的过程中,会发现有一些同学还是不大会去线上查看日志,在日常开发的工作中查看日志是定位线上错误的最有效的方式,为了帮大家弄清除这个问题,阿丹就来聊一聊,从今天开始开个新坑linux指令,有兴趣的同学可以跟着阿丹学习,阿丹会有时间就更新。

实时日志:

tail

tail 是一种非常常见的 Unix/Linux 命令,它用于查看文件的最后一部分内容。它是通过管道命令(pipe)来实现的,并且可以接受多种参数来定制其行为。

tail 的用法


基础用法: tail [options] file


在这个基本用法中,file 是你要查看的文件路径,可以是一个具体的文件路径,也可以是一个文件列表或通配符。例如:


显示文件 'test.txt' 最后10行的内容

tail test.txt

显示当前目录下所有 .txt 文件的最后10行

ls *.txt | xargs tail

显示 /var/log 目录下所有日志文件的最后10行

find /var/log -type f | xargs tail

tail 的常用选项


-n number(较为常用):

显示文件的最后几行。这里的 number 可以是一个整数或一个负数,代表从末尾算起的距离。例如:

显示最后5行

tail -n 5 test.txt

显示倒数第5行开始的内容

tail -n +5 test.txt

显示倒数第6行到最后的内容

tail -n +6 test.txt

-c number(不是很常用):

显示文件的最后几个字符。这里的 number 表示字符的数量。例如:

显示最后5个字符

tail -c 5 test.txt

显示倒数第5个字符开始的内容

tail -c +5 test.txt

显示倒数第6个字符到最后的内容

tail -c +6 test.txt


-f(非常常用):

实时追踪文件变化。当文件增大时,tail 将实时显示新的数据。例如:

实时追踪文件 'test.txt'

tail -f test.txt

这个是平时最长使用的语句。用于查看实时日志。


-q:静默模式,不显示任何错误信息:


静默模式下追踪文件 'test.txt'

tail -q -f test.txt

一般情况下追踪文件 'test.txt'

tail -f test.txt


-s:合并相邻的空行:


合并空行之后,查看最后10行

tail -s test.txt


-S:为每一行加上行号和相对位置:


加上行号之后,查看最后10行

tail -S test.txt


-b:按字节计数,而非按行计数:


显示最后5个字节

tail -b 5 test.txt

显示倒数第5个字节开始的内容

tail -b +5 test.txt

显示倒数第6个字节到最后的内容

tail -b +6 test.txt

查找关键日志:

grep的用法

是一个非常实用的命令行工具,它可以从文本文件中搜索并显示匹配特定模式的行。它具有丰富的选项和功能,可以在很多场合中发挥作用,比如搜索文本文件、查找错误消息、过滤输出等等。

grep 的一些主要用法

基础用法:

grep pattern file

在这个基本用法中,pattern 是要搜索的模式,file 是你要搜索的文件。例如:

# 在 'test.txt' 中搜索 'Hello, World!' 
grep 'Hello, World!' test.txt

常用选项以及参数:

-i:忽略大小写

# 忽略大小写搜索 'Hello, World!'
grep -i 'hello, world!' test.txt

-v:反向选择,显示不包含匹配项的行

# 显示不包含 'Hello, World!' 的行
grep -v 'Hello, World!' test.txt

-w:完整匹配,仅搜索整个单词

# 匹配整个单词 'Hello, World!'
grep -w 'Hello, World!' test.txt

-A NUM:显示匹配行后 NUM 行

# 显示匹配行后2行
grep -A 2 'Hello, World!' test.txt

-B NUM:显示匹配行前 NUM 行

# 显示匹配行前2行
grep -B 2 'Hello, World!' test.txt

-C NUM:显示匹配行及其上下文 NUM 行

# 显示匹配行及其上下文2行
grep -C 2 'Hello, World!' test.txt

正则表达式

grep 支持基本正则表达式(BRE)、扩展正则表达式(ERE)和 Perl 兼容正则表达式(PCRE)

# 匹配 'Hello' 和 'World'
grep -e 'Hello' -e 'World' test.txt

# 使用正则表达式匹配 'Hello' 和 'World'
grep -E 'Hello|World' test.txt

# 使用 Perl 兼容正则表达式匹配 'Hello' 和 'World'
grep -P '(Hello|World)' test.txt

多文件

grep 支持在多个文件中搜索模式,也可以通过管道将多个命令连接起来

# 在多个文件中搜索 'Hello, World!'
grep 'Hello, World!' test.txt another_file.txt

# 使用管道在多个文件中搜索 'Hello, World!'
cat test.txt another_file.txt | grep 'Hello, World!'

综合总结以及组合使用:

greptail 是两个非常有用的命令行工具,它们都可以在文本文件中搜索模式,但各有不同的功能。 grep 主要用于搜索文本文件中特定的模式,并返回所有匹配的行;而 tail 则是显示文件的末尾部分。

我们可以把这两个命令结合起来使用,以达到更好的效果。

在实时追踪文件的同时搜索特定模式

# 实时追踪 'test.txt' 并搜索 'Hello, World!'
tail -f test.txt | grep 'Hello, World!'

在多个文件中搜索特定模式

# 在 'test.txt' 和 'another_file.txt' 中搜索 'Hello, World!'
tail test.txt another_file.txt | grep 'Hello, World!'

根据行号范围筛选匹配的结果

# 只看匹配行的最后10行
tail -n 10 test.txt | grep 'Hello, World!'

查找某个模式出现的次数

# 统计 'Hello, World!' 出现的次数
grep -o 'Hello, World!' test.txt | wc -l

总结:

tail经常来看文件追加等等、grep经常用来查看搜索指定的数据。在实战中可以使用更多的组合来完成需要的日志查看。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值