在 Debian(及其他 Linux 系统)中,strings 通常指两件事之一:
strings 命令:从二进制文件中提取可打印字符串.po、.pot 文件中的内容下面分别说明。
strings 命令提取二进制中的字符串strings /path/to/binary
# 提取可执行文件中的字符串
strings /bin/ls
# 提取并排序去重
strings /usr/bin/python3 | sort | uniq
# 只显示长度大于等于 8 的字符串
strings -n 8 /usr/bin/bash
# 从动态库提取
strings /lib/x86_64-linux-gnu/libc.so.6
strings /usr/bin/apt | grep -i "error"
如果你是想提取 Debian 包里的可翻译字符串(如桌面程序、系统工具):
apt-get source packagename
cd packagename-*
.pot / .po 文件find . -name "*.pot"
find . -name "*.po"
msgcat po/*.po
# 或
less po/zh_CN.po
apt install gettext
# 从源码提取字符串(通常是 autotools 项目)
xgettext -f POTFILES.in -o messages.pot
dpkg -l | grep packagename
apt show packagename
dpkg -L packagename
strings /usr/bin/xxx
| 目的 | 方法 |
|---|---|
| 分析二进制程序 | strings binary |
| 提取错误信息 | `strings |
| 本地化翻译 | .po / .pot |
| 安全分析 | strings + objdump |
如果你有具体目标(例如:某个 Debian 包、某个二进制、某个语言翻译),可以告诉我,我可以给你更精确的命令。