strings 在 Ubuntu 上没有输出,通常不是命令“坏了”,而是你查看的对象或方式不对。下面按最常见原因给你逐项排查。
strings 只能从文件里提取可打印字符串。
strings 文件名
❌ 错误示例:
strings
strings /proc/1
✅ 正确示例:
strings /bin/ls
如果文件是:
那 strings 可能几乎没有输出。
file 文件名
strings 默认只显示 长度 ≥ 4 的字符串。
你可以用 -n 降低门槛:
strings -n 1 文件
很多 Ubuntu 系统二进制是 stripped 的:
file /bin/ls
# stripped 会显示
这种仍然有字符串,只是少一些。
比如在 x86_64 上看 ARM 二进制,部分工具可能表现异常(但 strings 一般没事)。
常见情况:
strings 文件 | less
或输出被重定向了:
strings 文件 > out.txt
which strings
strings --version
Ubuntu 一般来自 binutils:
sudo apt install binutils
echo "hello world" > test.txt
strings test.txt
如果有输出,说明 strings 没问题。
如果你愿意,可以把:
file 输出)发出来,我可以直接帮你定位是哪一类问题。