在 Debian(或一般 Linux)系统里,strings 命令“无输出”通常并不是命令坏了,而是输入对象或参数不符合预期。下面按常见原因逐一说明。
strings 任何文件最常见的误用:
strings
这样它会等待标准输入,看起来像“没输出”,实际上在等你在终端输入内容(Ctrl+D 才结束)。
✅ 正确用法:
strings /bin/ls
strings 只提取可打印字符序列(默认长度 ≥ 4)。
例如:
strings empty.txt
strings file.txt # 纯文本但太短
如果文件:
就可能完全无输出。
✅ 试试:
strings -n 1 file
例如:
strings README.md
README 本身是文本,strings 会原样输出,但你可能期待“隐藏信息”,结果觉得“没东西”。
很多现代程序:
结果 strings 几乎没内容。
✅ 示例:
strings binary | head
如果很少,说明字符串本来就少。
例如在 amd64 Debian 上看 arm64 二进制:
strings arm_binary
strings 仍能工作,但如果你期待某些字符串却没看到,可能是因为:
strings 被 alias 或 PATH 影响检查:
which strings
strings --version
Debian 中通常来自 binutils:
dpkg -l binutils
例如:
strings /dev/null
strings /proc/self/mem
这些本来就没内容。
file yourfile
ls -l yourfile
strings -n 4 yourfile | head
如果你愿意,可以把具体命令 + 文件类型贴出来(比如某个二进制或日志),我可以直接告诉你为什么没输出。