当前位置: 首页 > 科技观察

六个例子让你入门size命令

时间:2023-03-20 11:04:33 科技观察

众所周知,Linux中的目标文件或可执行文件由多个段(例如文本段和数据段)组成。如果你想知道每个段的大小,确实有这样一个命令行工具——它就是size。在本教程中,我们将通过几个通俗易懂的案例来讲解该工具的基本使用方法。在我们开始之前,有必要声明本文中的所有示例都是在Ubuntu16.04LTS上测试的。Linuxsize命令size命令基本上输出指定输入文件的段的大小及其总和。该命令的语法如下:size[-A|-B|--format=compatibility][--help][-d|-o|-x|--radix=number][--common][-t|--totals][--target=bfdname][-V|--version][objfile...]手册页是这样描述的:GNU大小的程序列出了每个目标文件或存档库文件参数列表段大小和总大小。默认情况下,为存档中的每个目标文件或模块生成一行输出。objfile...是要检查的目标文件。如果未指定,则默认为文件a.out。以下是一些问答方式的例子,希望能让大家对size命令有更好的理解。Q1。如何使用大小命令?size的基本用法很简单。您只需要目标文件/可执行文件名称作为输入。下面是一个例子:sizeapl这个命令在我的系统中的输出如下:如何使用size命令前三部分分别是text段、data段和bss段以及它们对应的大小。然后是十进制和十六进制格式的总大小。***是文件名。Q2。如何在不同的输出格式之间切换?根据手册页,size的默认输出格式类似于Berkeley的格式。但是,如果需要,您也可以使用SystemV规范。为此,您可以使用带有SysV值的--format选项。sizeapl--format=SysV下面是它的输出:如何切换不同的输出格式Q3、如何切换使用其他单位?默认情况下,段大小以十进制显示。但是,如果需要,您也可以使用八进制或十六进制表示。对应的命令行参数分别是o和-x。如何在不同大小单位之间切换关于这些参数,手册页是这样说的:-d-o-x--radix=number使用这些选项,您可以使每个段的大小以十进制表示(-d或--radix10),显示在八进制(-o或--radix8);或十六进制(-x或--radix16)数字。--radixnumber仅支持三个数字参数(8、10、16)。总大小以两个基数给出;-d或-x的十进制和十六进制输出,或-o的八进制和十六进制输出。Q4.如何让size命令显示所有目标文件的总大小?如果使用size一次查找多个文件的段大小,也可以通过-t选项让它显示列值的总和。size-t[file1][file2]...以下是命令执行的屏幕截图:如何使size命令显示所有目标文件的总数-t选项使其添加***行。Q5.如何让size输出每个文件中publicsymbols的总大小?如果你以多个输入文件作为参数提供大小,并希望它在每个文件中显示公共符号(公共段中的符号)的大小,你可以传递--common选项。size--common[file1][file2]...另请注意,在使用Berkeley格式时,这些常用符号的大小将计入bss大小。Q6.还有哪些其他选择?除了刚刚提到的选项外,size还有一些通用的命令行选项,比如v(显示版本信息)和-h(可选参数和选项的汇总)。还有哪些其他可用的命令行选项此外,您还可以使用@file选项使大小从文件中读取命令行选项。下面是详细说明:read选项将被插入并替换为原来的@file选项。如果文件不存在或无法读取,则不会替换该选项,而是按字面解释该选项。文件中的选项以空格分隔。Whenanoptioncontainsspaces,youneedtowraptheentireoptioninsingleordoublequotes.任何字符,包括反斜杠本身,都可以通过在字符前面加上反斜杠来包含在选项中。文件本身也可以包含其他@file选项;递归处理任何此类选项。结论很明显,size命令并不适合所有人。它针对那些需要在Linux中处理目标文件/可执行结构的人。因此,如果您碰巧是目标受众,请尝试我们在此处提到的尽可能多的选项,并且您应该准备好每天使用此工具。要了解有关大小的更多信息,请阅读其手册页。