Linux字符串初学者命令教程(5个示例)
查看二进制/可执行文件以获取人类可读的字符串并不是每个人都可以做的工作,但是如果要求您这样做呢? 在编辑器中打开文件,并手动查找东西不是一个优雅的解决方案。 那么该怎么办? 是的,你猜对了 - 存在一个命令行实用程序可以为你做到这一点。
相关工具被称为字符串 ,在本教程中,我们将使用一些易于理解的示例来讨论此命令的基础知识。 但在这之前,值得一提的是本文中的所有示例都已在Ubuntu 16.04 LTS机器上进行了测试。
Linux字符串命令
字符串命令基本上在文件中打印可打印字符的字符串。 以下是它的语法:
strings [OPTIONS] FILENAME
下面是该工具的手册页如何描述它:
For each file given, GNU strings prints the printable character
sequences that are at least 4 characters long (or the number given with
the options below) and are followed by an unprintable character.
Depending upon how the strings program was configured it will default
to either displaying all the printable sequences that it can find in
each file, or only those sequences that are in loadable, initialized
data sections. If the file type in unrecognizable, or if strings is
reading from stdin then it will always display all of the printable
sequences that it can find.
For backwards compatibility any file that occurs after a command line
option of just - will also be scanned in full, regardless of the
presence of any -d option.
strings is mainly useful for determining the contents of non-text
files.
以下是一些Q&A样式的示例,它们应该能够帮助您了解字符串命令的工作原理。
Q1。 如何使用字符串命令?
基本用法相当简单 - 只需将文件名称作为输入并执行该命令即可。
请注意,由于Strings主要用于从二进制/可执行文件中提取信息,因此我们将在所有示例中使用一个这样的文件。
例如:
strings test
以下是我的系统上生成的这个命令的输出:
Q2。 如何强制自定义字符限制?
如开头所述,字符串工具的默认行为是仅打印至少4个字符长度的字符序列。 但是,如果需要,可以使用-n命令行选项更改此限制(要求您传递一个表示新限制的数字)。
例如,如果您想将限制设置为2,则可以执行以下操作:
strings -n 2 test
所以现在你可以在输出中看到两个和三个字符串。
Q3。 如何使字符串打印字符序列的偏移量?
如果您希望字符串也显示它在输出中显示的字符序列的偏移量,则可以使用-t命令行选项完成此操作,该选项要求您提供指定偏移量基数的单个字符输入 - 'o'八进制,十六进制'x',或十进制'd'。
例如:
strings -t d test
以下是我在系统上生成的输出:
所以你可以看到输出中的字符串现在在它们各自的偏移之前。
Q4。 如何使字符串扫描整个文件?
根据字符串的配置方式,它可能会或可能不会扫描整个输入文件。 但是,如果要确保该工具读取完整文件(而不仅仅是可加载的,初始化的数据部分),请使用-a命令行选项。
例如:
strings -a test
相反,如果您希望字符串仅显示来自文件中已初始化,加载的数据段的字符串,请使用-d命令行选项。
strings -d test
Q5。 如何更改分隔符?
正如你所看到的,默认情况下,Strings使用的分隔符是换行符。 但是,如果需要,可以使用-s命令行选项来创建自定义分隔符。
例如:
strings -s [[[]]] test
结论
如果您想挖掘二进制文件/可执行文件以获取有用的信息,则Strings命令是非常有用的工具。 我们在这里讨论了一些重要的命令行选项。 因此,练习它们,一旦完成,请前往该工具的手册页获取更多信息。