温馨提示×

linux strings支持哪些参数

小樊
40
2026-09-02 10:43:01
栏目: 智能运维

strings 是 Linux 中用于从二进制文件(或其他非文本文件)中提取可打印字符串的常用命令,通常来自 binutils 包。下面按常用程度功能分类介绍其支持的参数(以 GNU strings 为例,不同版本略有差异)。


一、基本用法

strings [选项] 文件...

二、常用参数

1. 最少字符串长度

-n <长度>

--bytes=<长度>

只显示长度 ≥ 指定值的字符串。

示例:

strings -n 6 file.bin

2. 指定字符编码

-e <编码>

可选值:

  • s:7-bit ASCII(默认)
  • S:8-bit ASCII
  • b:16-bit big-endian
  • l:16-bit little-endian
  • B:32-bit big-endian
  • L:32-bit little-endian

示例:

strings -e l file.bin

3. 显示字符串在文件中的偏移

-t <格式>

--radix=<格式>

格式:

  • o:八进制
  • x:十六进制
  • d:十进制

示例:

strings -t x file.bin

4. 只扫描指定 section(ELF 文件)

--section=<name>

只从指定段中提取字符串。

示例:

strings --section=.rodata app

三、文件与编码控制

5. 编码显示方式

--encoding=<s|S|b|l|B|L>

-e 类似,但更明确。


6. 包含全部字符(不忽略空格等)

-a

--all

扫描整个文件,而不是只扫描可加载段(对 ELF 默认只扫数据段)。


四、输出控制

7. 输出文件名

-f

--print-file-name

在每行前加上文件名。

示例:

strings -f *.bin

8. 只显示匹配正则的字符串

--include-all-whitespace

(较少用)

更常见的是配合 grep

strings file | grep PASS

五、帮助与版本

-h, --help

显示帮助信息。

-V, --version

显示版本信息。


六、典型示例

# 提取长度 ≥ 8 的字符串
strings -n 8 binary

# 显示偏移(十六进制)
strings -t x binary

# 扫描整个文件
strings -a binary

# 提取 UTF-16 LE 字符串
strings -e l binary

# 显示文件名 + 字符串
strings -f binary

如果你使用的是 BusyBoxBSD strings,参数会少很多(通常只有 -n-a)。需要的话我也可以对比说明。

0