strings 和 grep 都是 Linux 下常用的文本工具,但用途和适用场景完全不同。下面从“是什么、做什么、怎么用、区别”几个角度说明。

strings 用来从二进制文件(或任意文件)中提取可打印的字符串。
strings /bin/ls输出类似:
/lib64/ld-linux-x86-64.so.2usage: %s [-AbCGHhklLnrRSTtUuVvWwZ] [file ...]
...
grep 用来在文本中搜索匹配的内容(按行)。
grep "error" app.log输出:
2024-01-01 10:00:01 error: connection failed它们经常一起用:
strings binary_file | grep "password"含义:
strings 从二进制文件中提取字符串grep 在这些字符串中搜索 passwordstrings 是“从二进制里掏字符串”,grep 是“在文本里找匹配”。
如果你愿意,我也可以:
strings -n、grep -a 这种容易混淆的点grep -a 和 strings 的区别