📜  Linux字符串命令

📅  最后修改于: 2020-12-07 08:11:41             🧑  作者: Mango

Linux字符串命令

Linux字符串命令用于将字符串字符返回到文件中。它主要侧重于确定二进制文件(非文本文件)的内容并从中提取文本。

从可执行文件中找出文本对于人类来说是一项复杂的任务。二进制文件(例如程序文件)包含人类可读的文本。如果使用cat或更少的命令,这些文件将很大。可能会导致终端挂断。

文件中可以有两种类型的字符:可打印和不可打印。字母数字字符,标点符号或空格称为可打印字符;除可打印字符,所有字符都称为不可打印字符。

用简单的话来说,我们可以说它从文件中提取出可打印的字符,以便其他命令可以使用没有不可打印字符的字符串

在这里,出现了一个问题,为什么我们要在可执行文件中放置文本?部署应用程序或软件时,大多数开发人员都会打包二进制文件。但是最好在二进制文件中打包一些ASCII文本。这将对用户和开发人员了解有关可执行文件的更多信息很有帮助。

因此, 字符串命令对于确定非文本文件的内容很有用。

如何使用它?

使用字符串命令很简单,只需将文件名作为参数传递并执行即可。让我们通过一个例子来理解它。

我们有一个名为gyp.el的系统文件。要从此文件中提取字符串,请执行以下命令:

strings gyp.el

考虑以下输出:

自定义字符限制

默认情况下, 字符串命令仅打印至少四个字符长的字符序列。但是,我们可以使用-n选项强制更改此限制。它允许我们传递数字来表示极限。

建议使用较高的限制,因为使用的数字越短,您看到的垃圾越多。

要设置两个字符的限制,请执行以下命令:

strings -n 2 gyp.el

考虑以下输出:

虽然上面的输出包含了太多的字符串,因此它是复杂的识别这两个<字符>,但我们能理解事情是如何工作的字符串命令。

限制极限

如果我们有一个包含冗长输出的文件,则可以通过更少的管道进行传输。它将显示较少的输出,并且我们可以根据需要滚动和附加输出。

要通过更少的方式传递限制,请执行以下命令:

strings gyp.el | less

考虑以下输出:

我们可以通过向下滚动来附加上面的输出。

如何使用Strings命令查看RAM?

字符串命令不仅限于文件。它使我们可以查看计算机系统的RAM。我们需要使用Sudo特权,因为我们正在访问/ dev / mem,它保存了系统主内存的蓝图。执行以下命令:

sudo strings /dev/mem | less

在上面的命令中,我们使用更少的值来限制输出。考虑以下输出:

包含空格

字符串命令的默认行为包含空格作为可打印字符。因此,如果我们有一个字符串“ Javatpoint是学习技术的最佳平台之一”,那么字符串命令将返回整个文本。

它不考虑新行字符和回车为可打印字符。

要print识别字符和回车作为可打印字符的字符串,执行命令如下:

strings -w File_name

更改编码

字符串命令提供四种类型的编码选项,如下所示:

s: 7位字节(用于ASCII,ISO 8859)

S: 8位字节

b: 16位bigendian

l: 16位littleendian

默认选项是“ s”。一个7位字节。

我们可以更改编码;要更改它,请执行以下命令:

strings -e S file_name

要么

strings --encoding=S file_name

在上述命令中,我们将编码指定为'S ',这意味着8位字节编码。您可以指定上述任何一个选项,只需将“ S”替换为您选择的编码字母即可。

从文件读取选项

如果重复使用相同的选项,则无需每次都指定。相反,您可以创建一个文件并在该文件中指定选项。

要创建用于指定选项的文件,请执行以下命令:

vi stringout

上面的命令将打开vi编辑器。在这里,我们使用vi编辑器创建文件;您可以选择任何编辑器。

ESC'i'键进入插入模式。键入您要指定的选项,如下所示:

-f -o -n -S

输入选项后,按ESC:wq!保存文件。按键考虑下图:

要使用指定的选项运行字符串命令,请执行以下命令:

strings @stringsopts gyp.el

上面的命令将使用指定的选项执行该命令。 gyp.el是我们正在使用的文件名;您可以输入文件名。考虑以下输出:

获得帮助

如果在使用字符串命令时卡在任何地方。您可以使用帮助选项从终端获取帮助。要获取帮助,请执行以下命令:

strings -help

考虑以下输出:

您还可以通过执行以下命令随时阅读本手册:

man strings

检查字符串版本

要检查所使用的字符串的版本,请执行以下命令之一:

strings -v
strings -V
strings -version

上面的命令将显示字符串的安装版本。考虑以下输出: