Come alcuni di voi potrebbero già sapere, un oggetto o un file eseguibile in Linux è costituito da diverse sezioni (come txt e dati). Nel caso in cui desideri conoscere la dimensione di ciascuna sezione, esiste un'utilità della riga di comando, denominata dimensione - che ti fornisce queste informazioni. In questo tutorial, discuteremo le basi di questo strumento utilizzando alcuni esempi di facile comprensione.
Ma prima di farlo, vale la pena ricordare che tutti gli esempi menzionati in questo articolo sono stati testati su Ubuntu 16.04LTS.
Comando per la dimensione di Linux
Il comando size fondamentalmente elenca le dimensioni della sezione e la dimensione totale per i file oggetto di input. Ecco la sintassi del comando:
size [-A|-B|--format=compatibility]
[--help]
[-d|-o|-x|--radix=number]
[--common]
[-t|--totals]
[--target=bfdname] [-V|--version]
[objfile...]
Ed ecco come la pagina man descrive questa utility:
The GNU size utility lists the section sizes---and the total size---for each of the object or
archive files objfile in its argument list. By default, one line of output is generated for each
object file or each module in an archive.
objfile... are the object files to be examined. If none are specified, the file "a.out" will be
used.
Di seguito sono riportati alcuni esempi in stile domande e risposte che ti daranno un'idea migliore di come funziona il comando size.
Q1. Come usare il comando size?
L'utilizzo di base delle dimensioni è molto semplice. Tutto quello che devi fare è passare il nome dell'oggetto/file eseguibile come input allo strumento. Segue un esempio:
size apl
Di seguito è riportato l'output del comando sopra prodotto sul nostro sistema:
Le prime tre voci sono per le sezioni di testo, dati e bss, con le dimensioni corrispondenti. Quindi arriva il totale in formato decimale ed esadecimale. E infine, l'ultima voce è per il nome del file.
Q2. Come passare da un formato di output all'altro?
Il formato di output predefinito, dice la pagina man per le dimensioni, è simile al formato di Berkeley. Tuttavia, se lo desideri, puoi anche optare per la convenzione System V. Per questo, dovrai utilizzare il --formato opzione con SysV come valore.
size apl --format=SysV
Ecco l'output in questo caso:
T3. Come passare da unità di dimensioni diverse?
Per impostazione predefinita, la dimensione delle sezioni viene visualizzata in decimale. Tuttavia, se lo desideri, puoi avere queste informazioni sia su ottale che su esadecimale. Per questo, usa -o e -x opzioni della riga di comando.
Ecco cosa dice la pagina man su queste opzioni:
-d
-o
-x
--radix=number
Using one of these options, you can control whether the size of each section is given in decimal
(-d, or --radix=10); octal (-o, or --radix=8); or hexadecimal (-x, or --radix=16). In
--radix=number, only the three values (8, 10, 16) are supported. The total size is always given in
two radices; decimal and hexadecimal for -d or -x output, or octal and hexadecimal if you're using
-o.
Q4. Come fare in modo che il comando size mostri i totali di tutti i file oggetto?
Se stai utilizzando la dimensione per scoprire le dimensioni delle sezioni per più file in una volta sola, se lo desideri, puoi anche fare in modo che lo strumento fornisca i totali di tutti i valori delle colonne. Puoi abilitare questa funzione utilizzando -t opzione della riga di comando.
size -t [file1] [file2] ...
Lo screenshot seguente mostra questa opzione della riga di comando in azione:
L'ultima riga nell'output è stata aggiunta da -t opzione della riga di comando.
Q5. Come si fa a stampare la dimensione della dimensione totale dei simboli comuni in ogni file?
Se stai eseguendo il comando size con più file di input e desideri che il comando visualizzi simboli comuni in ogni file, puoi farlo con --common opzione della riga di comando.
size --common [file1] [file2] ...
Vale anche la pena ricordare che quando si utilizza il formato Berkeley questi sono inclusi nella dimensione bss.
Q6. Quali sono le altre opzioni della riga di comando disponibili?
Oltre a quelle discusse fino ad ora, size offre anche alcune opzioni generiche della riga di comando come -v (per informazioni sulla versione) e -h (per il riepilogo degli argomenti e delle opzioni ammissibili)
Inoltre, puoi anche creare dimensioni leggere le opzioni della riga di comando da un file. Puoi farlo usando il @file opzione. Di seguito sono riportati alcuni dettagli relativi a questa opzione:
The options read are inserted in place of the original @file option. If file does not exist, or
cannot be read, then the option will be treated literally, and not removed. Options in file are
separated by whitespace. A whitespace character may be included in an option by surrounding the
entire option in either single or double quotes. Any character (including a backslash) may be
included by prefixing the character to be included with a backslash. The file may itself contain
additional @file options; any such options will be processed recursively.
Conclusione
Una cosa è chiara, il comando size non è per tutti. È rivolto solo a coloro che si occupano della struttura di oggetti/file eseguibili in Linux. Quindi, se fai parte del pubblico di destinazione, esercitati con le opzioni che abbiamo discusso qui e dovresti essere pronto a utilizzare lo strumento su base giornaliera. Per ulteriori informazioni sulle dimensioni, vai alla sua pagina man.