6个 Linux size 命令示例教程

正如你们中的一些人可能已经知道的那样,Linux中的对象或可执行文件由多个段(如txt和数据)组成。 如果您想知道每个段的大小,那么存在一个命令行实用程序 - 称为size - 为您提供此信息。 在本教程中,我们将使用一些易于理解的示例来讨论此工具的基础知识。

但在这之前,值得一提的是,本文中提到的所有示例都已在Ubuntu 16.04 LTS上进行了测试。

Linux size命令

size命令基本上列出了输入目标文件的段大小和总大小。 以下是该命令的语法:

size [-A|-B|--format=compatibility]
            [--help]
            [-d|-o|-x|--radix=number]
            [--common]
            [-t|--totals]
            [--target=bfdname] [-V|--version]
            [objfile...]

以下是手册页介绍该实用程序的方式:

GNU尺寸实用程序列出了每个对象或对象的截面尺寸---和总大小---归档文件objfile在其参数列表中。 默认情况下,为每个输出生成一行目标文件或存档中的每个模块。

objfile ...是要检查的对象文件。 如果没有指定,文件“a.out”就是默认文件。

以下是一些Q&A样式的示例,可以让您更好地了解size命令的工作原理。

Q1。 如何使用size命令?

size的基本用法非常简单。 您所要做的就是将对象/可执行文件名作为输入传递给工具。 以下是一个例子:

size apl

以下是在我们的系统上输出的上述命令:

前三个条目是用于文本,数据和bss段,具有相应的大小。 然后是十进制和十六进制格式的总数。 最后,最后一项是文件名。

Q2。 如何在不同的输出格式之间切换?

默认的输出格式,size手册页说,是类似于Berkeley的格式。 但是,如果你愿意,你也可以使用System V惯例。 为此,您必须将SysV的--format选项用作值。

size apl --format=SysV

这里是这种情况下的输出:

6个 Linux size 命令示例教程

Q3。 如何在不同大小的单位之间切换?

默认情况下,段的大小以十进制显示。 然而,如果你愿意,你可以在八进制和十六进制中得到这些信息。 为此,请使用-o和-x命令行选项。

6个 Linux size 命令示例教程

以下是手册页中关于这些选项的说明:

-d
-o
-x
--radix=number

使用这些选项之一,您可以控制每个部分的大小是否以十进制给出(-d或--radix = 10); 八进制(-o或-radix = 8); 或十六进制(-x或--radix = 16)。 在--radix = number,只支持三个值(8,10,16)。 总共大小以两种进制给出; -d或-x输出使用十进制和十六进制,如果使用则使用八进制和十六进制-o。

Q4。 如何使大小命令显示所有目标文件的总数?

如果您一次使用大小来查找多个文件的截面大小,那么如果您愿意,也可以让该工具提供所有列值的总和。 您可以使用-t命令行选项启用此功能。

size -t [file1] [file2] ...

以下屏幕截图显示了此命令行选项的作用:

输出中的最后一行已被-t命令行选项添加。

Q5。 如何在每个文件中打印常用符号的总大小?

如果您正在使用多个输入文件运行size命令,并希望命令在每个文件中显示常用符号,则可以使用--common命令行选项执行此操作。

size --common [file1] [file2] ...

值得一提的是,当使用Berkeley格式时,这些都包含在bss尺寸中。

Q6。其他可用的命令行选项有哪些?

除了直到现在讨论的那些之外,size还提供了一些通用命令行选项,如-v(用于版本信息)和-h(用于合格参数和选项的摘要)

6个 Linux size 命令示例教程

另外,您还可以从文件中创建size读取命令行选项。这可以使用@file选项来完成。以下是与此选项相关的一些详细信息:

读取的选项将插入原始@file选项的位置。如果文件不存在,或者不能被读取,那么该选项将被逐字处理,而不会被删除。文件中的选项是以空格分隔。一个空白字符可能包含在一个选项中整个选项用单引号或双引号。任何字符(包括反斜杠)可能都是通过在包含在反斜杠中的字符加前缀来包含。该文件本身可能包含额外的@file选项;任何这样的选项将被递归处理。

结论

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12872.html