彭某的技术折腾笔记

彭某的技术折腾笔记

Linux 查找文件中的字符串 -- strings

34
2023-07-20

Linux 查找文件中的字符串 – strings

2023年7月20日

摘要

在 Linux 中,我们有时会需要去查找文件中的字符串,或是在一堆文件中查找某个字符串,这个时候我们就可以使用 strings 命令来完成。

命令简介

基本用法

strings 可以查找文件中的有效字符串,无论是文本文件还是二进制文件,时常搭配 grep 一起使用。最简单的用法是:

strings FILE | grep TARGET

strings 将查找出 FILE 中的所有字符串,然后通过管线传输至 grep 进行筛选。

常用选项

strings 命令有一些常用选项:

  • -d - 只搜索数据段
  • -a - 搜索整个文件,不止是数据段
  • -n N - 指定字符串最少包含多少字符,默认为 4,最大 4096
  • -t [d/o/x] - 以十进制(d)或八进制(o)或十六进制(x)显示找到的字符串的偏移量
  • -f 显示结果时也显示文件名,在多文件搜索时常用

其他场景

搜索 GLIBC 支持的版本

例如系统内安装的 libc/lib64/libc.so.6,我们想查看其中支持的 GLIBC 版本,就可以:

strings /lib64/libc.so.6 | grep GLIBC

可以得到:

GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
GLIBC_2.22
GLIBC_2.23
GLIBC_2.24
GLIBC_2.25
GLIBC_2.26

从多个文件中查找某一字符串

这个场景不用过多解释,使用以下命令:

find -name "*" | xargs strings -f | grep TARGET

其中 xargsfind 的用法以后再写。

  • 0