帶你入門(mén)Linux中size命令的6個(gè)例子
前言
正如你所知道的那樣,Linux 中的目標(biāo)文件或著說(shuō)可執(zhí)行文件由多個(gè)段組成(比如文本段和數(shù)據(jù)段)。若你想知道每個(gè)段的大小,那么確實(shí)存在這么一個(gè)命令行工具 —— 那就是 size。在本教程中,我們將會(huì)用幾個(gè)簡(jiǎn)單易懂的案例來(lái)講解該工具的基本用法。
在我們開(kāi)始前,有必要先聲明一下,本文的所有案例都在 Ubuntu 16.04 LTS 中測(cè)試過(guò)了。
Linux size 命令
size 命令基本上就是輸出指定輸入文件各段及其總和的大小。下面是該命令的語(yǔ)法:
size [-A|-B|--format=compatibility] [--help] [-d|-o|-x|--radix=number] [--common] [-t|--totals] [--target=bfdname] [-V|--version] [objfile...]
man 頁(yè)是這樣描述它的:
GNU 的 size 程序列出參數(shù)列表中各目標(biāo)文件或存檔庫(kù)文件的段大小 — 以及總大小。默認(rèn)情況下,對(duì)每個(gè)目標(biāo)文件或存檔庫(kù)中的每個(gè)模塊都會(huì)產(chǎn)生一行輸出。
objfile... 是待檢查的目標(biāo)文件。如果沒(méi)有指定,則默認(rèn)為文件 a.out。
下面是一些問(wèn)答方式的案例,希望能讓你對(duì) size 命令有所了解。
Q1、如何使用 size 命令?
size 的基本用法很簡(jiǎn)單。你只需要將目標(biāo)文件/可執(zhí)行文件名稱(chēng)作為輸入就行了。下面是一個(gè)例子:
size apl
該命令在我的系統(tǒng)中的輸出如下:
How to use size command
前三部分的內(nèi)容是文本段、數(shù)據(jù)段和 bss 段及其相應(yīng)的大小。然后是十進(jìn)制格式和十六進(jìn)制格式的總大小。最后是文件名。
Q2、如何切換不同的輸出格式?
根據(jù) man 頁(yè)的說(shuō)法,size 的默認(rèn)輸出格式類(lèi)似于 Berkeley 的格式。然而,如果你想的話(huà),你也可以使用 System V 規(guī)范。要做到這一點(diǎn),你可以使用 --format 選項(xiàng)加上 SysV 值。
size apl --format=SysV
下面是它的輸出:
How to switch between different output formats
Q3、如何切換使用其他的單位?
默認(rèn)情況下,段的大小是以十進(jìn)制的方式來(lái)展示。然而,如果你想的話(huà),也可以使用八進(jìn)制或十六進(jìn)制來(lái)表示。對(duì)應(yīng)的命令行參數(shù)分別為 o 和 -x。
How to switch between different size units
關(guān)于這些參數(shù),man 頁(yè)是這么說(shuō)的:
-d
-o
-x
--radix=number
使用這幾個(gè)選項(xiàng),你可以讓各個(gè)段的大小以十進(jìn)制(-d 或 --radix 10)、八進(jìn)制(-o 或 --radix 8);或十六進(jìn)制(-x 或 --radix 16)數(shù)字的格式顯示。--radix number 只支持三個(gè)數(shù)值參數(shù)(8、 10、 16)??偣泊笮∫?xún)煞N進(jìn)制給出; -d 或 -x 的十進(jìn)制和十六進(jìn)制輸出,或 -o 的八進(jìn)制和十六進(jìn)制輸出。
Q4、如何讓 size 命令顯示所有對(duì)象文件的總大???
如果你用 size 一次性查找多個(gè)文件的段大小,則通過(guò)使用 -t 選項(xiàng)還可以讓它顯示各列值的總和。
size -t [file1] [file2] ...
下面是該命令的執(zhí)行的截屏:
How to make size command show totals of all object files
-t 選項(xiàng)讓它多加了最后那一行。
Q5、如何讓 size 輸出每個(gè)文件中公共符號(hào)的總大???
若你為 size 提供多個(gè)輸入文件作為參數(shù),而且想讓它顯示每個(gè)文件中公共符號(hào)(指 common segment 中的 symbol)的大小,則你可以帶上 --common 選項(xiàng)。
size --common [file1] [file2] ...
另外需要指出的是,當(dāng)使用 Berkeley 格式時(shí),這些公共符號(hào)的大小被納入了 bss 大小中。
Q6、還有什么其他的選項(xiàng)?
除了剛才提到的那些選項(xiàng)外,size 還有一些一般性的命令行選項(xiàng),比如 v (顯示版本信息)和 -h (可選參數(shù)和選項(xiàng)的匯總)。
What are the other available command line options
除此之外,你也可以使用 @file 選項(xiàng)來(lái)讓 size 從文件中讀取命令行選項(xiàng)。下面是詳細(xì)的相關(guān)說(shuō)明:
讀出來(lái)的選項(xiàng)會(huì)插入并替代原來(lái)的 @file 選項(xiàng)。若文件不存在或著無(wú)法讀取,則該選項(xiàng)不會(huì)被替換,而是會(huì)以字面意義來(lái)解釋該選項(xiàng)。文件中的選項(xiàng)以空格分隔。當(dāng)選項(xiàng)中要包含空格時(shí)需要用單引號(hào)或雙引號(hào)將整個(gè)選項(xiàng)包起來(lái)。通過(guò)在字符前面添加一個(gè)反斜杠可以將任何字符(包括反斜杠本身)納入到選項(xiàng)中。文件本身也能包含其他的 @file 選項(xiàng);任何這樣的選項(xiàng)都會(huì)被遞歸處理。
結(jié)論
很明顯,size 命令并不適用于所有人。它的目標(biāo)群體是那些需要處理 Linux 中目標(biāo)文件/可執(zhí)行文件結(jié)構(gòu)的人。因此,如果你剛好是目標(biāo)受眾,那么多試試我們這里提到的那些選項(xiàng),你應(yīng)該做好每天都使用這個(gè)工具的準(zhǔn)備。想了解關(guān)于 size 的更多信息,請(qǐng)閱讀它的 man 頁(yè) 。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Linux網(wǎng)絡(luò)搭建基礎(chǔ)實(shí)驗(yàn)(1)
這篇文章主要為大家詳細(xì)介紹了Linux網(wǎng)絡(luò)搭建基礎(chǔ)實(shí)驗(yàn)過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04Linux系統(tǒng)關(guān)機(jī)命令之間的區(qū)別及用法詳解
在本篇文章里小編給大家整理了一篇關(guān)于Linux系統(tǒng)關(guān)機(jī)命令之間的區(qū)別及用法詳解內(nèi)容,有需要的朋友們參考學(xué)習(xí)下。2020-12-12服務(wù)器Centos部署MySql并連接Navicat過(guò)程詳解
這篇文章主要介紹了服務(wù)器Centos部署MySql并連接Navicat過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07阿里云OSS訪(fǎng)問(wèn)權(quán)限配置(RAM權(quán)限控制)實(shí)現(xiàn)
這篇文章主要介紹了阿里云OSS訪(fǎng)問(wèn)權(quán)限配置(RAM權(quán)限控制)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08使用CDN之后APACHE日志記錄中IP地址不正確的解決方案
這篇文章主要介紹了使用CDN之后APACHE日志記錄中IP地址不正確的解決方案,需要的朋友可以參考下2014-12-12如何關(guān)閉http Methods中的Trace 提高安全意識(shí)
在配置文件http.conf 添加 TraceEnable off 即可關(guān)閉2013-02-02深入理解Bash中的尖括號(hào)(適合初學(xué)者)
這篇文章主要給大家介紹了關(guān)于Bash中尖括號(hào)的相關(guān)資料,本文非常適合初學(xué)者,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02Linux下大量SYN_SENT連接問(wèn)題的解決方法
這篇文章主要介紹了Linux下大量SYN_SENT連接問(wèn)題的解決方法,需要的朋友可以參考下2015-01-01Apache日志管理和統(tǒng)計(jì)分析知識(shí)
Apache服務(wù)器具備強(qiáng)大的日志功能,管理員可以方便、準(zhǔn)備、及時(shí)地了解服務(wù)器狀況;可以更好地防范黑客的攻擊2016-04-04Linux使用crontab定時(shí)執(zhí)行腳本任務(wù)的流程詳解
在Linux中可以使用crontab來(lái)定時(shí)執(zhí)行腳本,crontab是一個(gè)用于管理定時(shí)任務(wù)的工具,可以讓在特定的時(shí)間間隔內(nèi)自動(dòng)運(yùn)行腳本或命令,本文我們將使用cron來(lái)定期執(zhí)行一個(gè)寫(xiě)入命令或腳本,需要的朋友可以參考下2023-10-10