歡迎光臨
每天分享高質量文章

六個例子帶你入門 size 命令 | Linux 中國

正如你所知道的那樣,Linux 中的標的檔案或著說可執行檔案由多個段組成(比如文字段和資料段)。若你想知道每個段的大小,那麼確實存在這麼一個命令列工具 —— 那就是 size。
— Himanshu Arora


致謝
編譯自 | https://www.howtoforge.com/linux-size-command/ 
 作者 | Himanshu Arora
 譯者 | DarkSun (lujun9972) ? ? ? ? 共計翻譯:77 篇 貢獻時間:123 天

正如你所知道的那樣,Linux 中的標的檔案或著說可執行檔案由多個段組成(比如文字段和資料段)。若你想知道每個段的大小,那麼確實存在這麼一個命令列工具 —— 那就是 size。在本教程中,我們將會用幾個簡單易懂的案例來講解該工具的基本用法。

在我們開始前,有必要先宣告一下,本文的所有案例都在 Ubuntu 16.04 LTS 中測試過了。

Linux size 命令

size 命令基本上就是輸出指定輸入檔案各段及其總和的大小。下麵是該命令的語法:

  1. size [-A|-B|--format=compatibility]

  2.             [--help]

  3.             [-d|-o|-x|--radix=number]

  4.             [--common]

  5.             [-t|--totals]

  6.             [--target=bfdname] [-V|--version]

  7.             [objfile...]

man 頁是這樣描述它的:

GNU 的 size 程式列出引數串列中各標的檔案或存檔庫檔案的段大小 — 以及總大小。預設情況下,對每個標的檔案或存檔庫中的每個模組都會產生一行輸出。

objfile... 是待檢查的標的檔案。如果沒有指定,則預設為檔案 a.out

下麵是一些問答方式的案例,希望能讓你對 size 命令有所瞭解。

Q1、如何使用 size 命令?

size 的基本用法很簡單。你只需要將標的檔案/可執行檔案名稱作為輸入就行了。下麵是一個例子:

  1. size apl

該命令在我的系統中的輸出如下:

How to use size command

前三部分的內容是文字段、資料段和 bss 段及其相應的大小。然後是十進位制格式和十六進位制格式的總大小。最後是檔案名。

Q2、如何切換不同的輸出格式?

根據 man 頁的說法,size 的預設輸出格式類似於 Berkeley 的格式。然而,如果你想的話,你也可以使用 System V 規範。要做到這一點,你可以使用 --format 選項加上 SysV值。

  1. size apl --format=SysV

下麵是它的輸出:

How to switch between different output formats

Q3、如何切換使用其他的單位?

預設情況下,段的大小是以十進位制的方式來展示。然而,如果你想的話,也可以使用八進位制或十六進位制來表示。對應的命令列引數分別為 o 和 -x

How to switch between different size units

關於這些引數,man 頁是這麼說的:

-d

-o

-x

–radix=number

使用這幾個選項,你可以讓各個段的大小以十進位制(-d 或 --radix 10)、八進位制(-o 或 --radix 8);或十六進位制(-x 或 --radix 16)數字的格式顯示。--radix number 只支援三個數值引數(8、 10、 16)。總共大小以兩種進位制給出; -d 或 -x 的十進位制和十六進位制輸出,或 -o 的八進位制和十六進位制輸出。

Q4、如何讓 size 命令顯示所有物件檔案的總大小?

如果你用 size 一次性查詢多個檔案的段大小,則透過使用 -t 選項還可以讓它顯示各列值的總和。

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

下麵是該命令的執行的截圖:

How to make size command show totals of all object files

-t 選項讓它多加了最後那一行。

Q5、如何讓 size 輸出每個檔案中公共符號的總大小?

若你為 size 提供多個輸入檔案作為引數,而且想讓它顯示每個檔案中公共符號(指 common segment 中的 symbol)的大小,則你可以帶上 --common 選項。

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

另外需要指出的是,當使用 Berkeley 格式時,這些公共符號的大小被納入了 bss 大小中。

Q6、還有什麼其他的選項?

除了剛才提到的那些選項外,size 還有一些一般性的命令列選項,比如 v (顯示版本資訊)和 -h (可選引數和選項的彙總)。

What are the other available command line options

除此之外,你也可以使用 @file 選項來讓 size 從檔案中讀取命令列選項。下麵是詳細的相關說明:

讀出來的選項會插入並替代原來的 @file 選項。若檔案不存在或著無法讀取,則該選項不會被替換,而是會以字面意義來解釋該選項。檔案中的選項以空格分隔。當選項中要包含空格時需要用單引號或雙引號將整個選項包起來。透過在字元前面新增一個反斜槓可以將任何字元(包括反斜槓本身)納入到選項中。檔案本身也能包含其他的 @file 選項;任何這樣的選項都會被遞迴處理。

結論

很明顯,size 命令並不適用於所有人。它的標的群體是那些需要處理 Linux 中標的檔案/可執行檔案結構的人。因此,如果你剛好是標的受眾,那麼多試試我們這裡提到的那些選項,你應該做好每天都使用這個工具的準備。想瞭解關於 size 的更多資訊,請閱讀它的 man 頁 [1]


via: https://www.howtoforge.com/linux-size-command/

作者:Himanshu Arora[3] 譯者:lujun9972 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂