在 Linux 里,strings 命令主要用来从二进制文件或数据中抽取可打印字符串。它并不是专门“查日志”的工具,但在某些场景下很有用,比如:
下面按常见用法说。
strings 文件名
例如:
strings app.log
如果 app.log 是纯文本日志,其实用 cat / less 更合适;strings 主要用于非纯文本。
strings app.bin | grep ERROR
或者:
strings core.12345 | grep "timeout"
这在排查 core dump、服务崩溃、嵌入式日志 时很常见。
默认 strings 只显示长度 ≥ 4 的字符串,可用 -n 调整:
strings -n 6 app.bin
适合过滤掉大量无意义短字符。
strings -a -t x app.bin
或十进制:
strings -a -t d app.bin
strings app.bin | grep -n "failed"
例如:
strings access.log.gz | grep 404
或:
strings system.tar | grep "user login"
(不需要先解压)
strings /proc/<pid>/mem | grep "log"
或:
cat /proc/<pid>/maps
(通常用于调试,需要权限)
❌ 用 strings 查普通文本日志
✅ 直接用:
less app.log
grep "ERROR" app.log
tail -f app.log
strings 不适合实时日志监控。
strings core.8888 | grep -i "segmentation"
strings myserver | grep "%s"
strings unknown.file | head
如果你能说一下:
.log / .bin / core / 压缩包)我可以给你更精确的命令。