Linux strings 命令17 Mar 2025 | 4 分钟阅读 Linux strings 命令用于从文件中返回字符串字符。它主要侧重于确定二进制文件(非文本文件)的内容并从中提取文本。 对于人类来说,从可执行文件中查找文本是一项复杂任务。可执行文件,如程序文件,包含人类可读的文本。这些文件通常体积庞大,如果我们使用 cat 或 less 命令,可能会导致终端无响应。 文件中的字符可以分为两类:可打印字符和不可打印字符。字母数字字符、标点符号或空格被称为可打印字符;除了可打印字符之外,所有字符都被称为不可打印字符。 简单来说,我们可以说它从文件中提取可打印字符,以便其他命令可以使用这些字符串而无需处理不可打印字符。 那么,问题来了,为什么我们要将文本放在可执行文件中?当应用程序或软件部署时,大多数开发者会将二进制文件打包。但将一些 ASCII 文本打包到二进制文件中也是有益的。这将有助于用户和开发人员更深入地了解可执行文件。 因此,strings 命令对于确定非文本文件的内容非常有用。 如何使用它?strings 命令的使用非常直接,只需将文件名作为参数传递并执行即可。让我们通过一个例子来理解。 我们有一个名为 gyp.el 的系统文件。要从该文件中提取字符串,请按以下方式执行命令: 考虑下面的输出 ![]() 自定义字符限制默认情况下,strings 命令仅打印至少四个字符长的字符序列。但是,我们可以使用-n选项强制更改此限制。它允许我们传递一个数字来指定限制。 建议使用较高的限制,因为您使用的数字越短,看到的“垃圾”信息就越多。 要将限制设置为两个字符,请执行以下命令: 考虑下面的输出 ![]() 虽然上面的输出包含过多的字符串,使得识别两个字符的字符串变得复杂,但我们可以理解 strings 命令是如何工作的。 通过管道传递限制如果文件包含大量输出,我们可以通过 less 对其进行管道化。它将显示更少的输出,我们可以根据需要滚动和追加输出。 要将限制通过管道传递给 less,请按以下方式执行命令: 考虑下面的输出 ![]() 我们可以通过向下滚动来追加上述输出。 如何使用 Strings 命令查看 RAM?strings 命令不仅限于文件。它允许我们查看我们计算机系统的 RAM。我们需要使用 Sudo 权限,因为我们正在访问/dev/mem,它保存了我们系统主内存的蓝图。按以下方式执行命令: 在上面的命令中,我们使用 less 来限制输出。请看下面的输出: ![]() 包含空格strings 命令的默认行为将空格视为可打印字符。因此,如果我们有一个字符串,“Javatpoint 是学习技术的最佳平台之一”,那么 strings 命令将返回整个文本。 它不将换行符和回车符视为可打印字符。 要打印一个将换行符和回车符识别为可打印字符的字符串,请按以下方式执行命令: 更改编码strings 命令提供四种类型的编码选项,如下所示: s:7 位字节(用于 ASCII、ISO 8859) S:8 位字节 b:16 位大端序 l:16 位小端序 默认选项是's',即 7 位字节。 我们可以更改编码;要更改它,请执行以下命令: 或 在上面的命令中,我们将编码指定为'S',表示 8 位字节编码。您可以指定上述任何选项,只需将'S'替换为您选择的编码字母即可。 从文件中读取选项如果您反复使用相同的选项,则无需每次都指定。相反,您可以创建一个文件并将选项指定在该文件中。 要创建用于指定选项的文件,请执行以下命令: 上面的命令将打开 vi 编辑器。这里我们使用 vi 编辑器创建一个文件;您可以选择任何您喜欢的编辑器。 按ESC和'i'键进入插入模式。输入您要指定的选项,如下所示: >输入选项后,按ESC和:wq!键保存文件。请看下面的图片: ![]() 要使用指定的选项运行 strings 命令,请按以下方式执行命令: 上面的命令将使用指定的选项执行命令。gyp.el 是我们使用的文件名;您可以输入您的文件名。请看下面的输出: ![]() 获取帮助如果您在使用 strings 命令时遇到任何问题。您可以通过帮助选项从终端获取帮助。要获得帮助,请执行以下命令: 考虑下面的输出 ![]() 您也可以随时通过执行以下命令来阅读手册: 检查 Strings 版本要检查您正在使用的 strings 的版本,请执行以下命令之一: 上面的命令将显示已安装的 strings 版本。请看下面的输出: ![]() 下一主题Linux Print |
我们请求您订阅我们的新闻通讯以获取最新更新。