Linux 开发中常用搜索技巧

2019/03/31 Linux 共 1418 字,约 5 分钟
山川尽美

本文转载自: Chris_Mo

在我们的实际开发中,一般应用都部署在 Linux 上,为了后期方便排查 bug 或者记录代码执行的流程。对于开发者而言,遇到问题经常需要去看 log 文件(或者使用 Kibana 这样的工具),这里介绍几个开发常用而又重要的日志查找技巧。

Linux 查看日志的几个常见命令

  • grep
  • head
  • cat
  • tail
  • less
  • ack
  • sed
  • vi

grep

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

常见使用方法之:

grep 2017010500345878 --color info.log

这行命令在 info.log 中搜索含有”2017010500345878”关键词的段落并且使用其他颜色标记关键词。 优点:根据关键词快速方便定位并且打印出来段落的上下文。

head 命令是用来查看具体文件的前面几行的内容,该命令默认是前 10 行内容; 常见使用方法之:

head -50 info.log

查看 info.log 文件的前 50 行。 优点:快速定位到文件的前多少行。

tail

tail 命令是用来查看具体文件后面几行的内容,默认情况下,是查看该文件尾 10 行的内容;还可以使用 tail 来观察日志文件被更新的过程。使用 -f 选项,tail 会自动实时更新文件内容。

常见使用方法之:

tail -f info.log

cat

cat 命令是 Linux 下的一个文本输出命令,通常是用于观看某个文件的内容的.常用有三大功能:

  1. 一次显示整个文件
  2. 从键盘创建一个文件
  3. 将几个文件合并为一个文件

这里我们只举例显示一个文件. 常见使用方法之:

cat -n info.log

less

less(less) 命令可以对文件或其它输出进行分页显示 常见使用方法之:

cat -n info.log

ack

ack 是一个基于 Perl 的类似于 grep 的命令行工具,但是搜索速度更快,能力比 grep 更强。 常见使用方法之:

ack -w order

在当前目录递归搜索单词”eat”,不匹配类似于”orderService”或”paymentOrder”的字符串.

sed

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed 主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

常见使用方法之:

sed -n '800,900' info.log

查看 info.log 文件 800 到 900 行之间的内容

vi

使用找一个字符串,在 vi 命令模式下键入“/”,后面跟要查找的字符串,再按回车。vi 将光标定位在该串下一次出现的地方上。键入 n 跳到该串的下一个出现处,键入 N 跳到该串的上一个出现处。

常见组合使用

使用[grep -n 异常 –color info.log ]查询到异常在文件中发生的行数,然后再看前后几十行日志的内容[sed -n ‘800,900’ info.log].

总结

这些命令的功能都比较丰富,这里只是列出非常简单的一些用法,在一般的开发中都是频繁使用得到.具体的用法需要开自己总结使用自己喜欢使用的命令.(我这里的总结也会持续更新)

文档信息

Search

    Table of Contents