Linux size Befehl Tutorial für Anfänger (6 Beispiele)

Wie einige von Ihnen vielleicht schon wissen, besteht ein Objekt oder eine ausführbare Datei unter Linux aus mehreren Abschnitten (wie txt und Daten). Falls Sie die Größe jedes Abschnitts wissen möchten, gibt es ein Befehlszeilenprogramm – die so genannte Größe -, das Ihnen diese Informationen zur Verfügung stellt. In diesem Tutorial werden wir die Grundlagen dieses Tools anhand einiger leicht verständlicher Beispiele diskutieren.

Aber bevor wir das tun, ist es erwähnenswert, dass alle in diesem Artikel genannten Beispiele auf Ubuntu 16.04LTS getestet wurden.

Linux size Befehl

Der Befehl size listet im Wesentlichen die Abschnittsgrößen sowie die Gesamtgröße für die Eingabe-Objektdatei(en) auf. Hier ist die Syntax für den Befehl:

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

Und so beschreibt die Man Page dieses Dienstprogramm:

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.

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln, wie der Größenbefehl funktioniert.

Q1. Wie verwendet man den size Befehl?

Die grundlegende Verwendung der Größe ist sehr einfach. Alles, was Sie tun müssen, ist, den Objekt-/Ausführdateinamen als Eingabe an das Tool zu übergeben. Nachfolgend ein Beispiel:

size apl

Nachfolgend ist die Ausgabe des obigen Befehls, der auf unserem System erzeugt wurde:

Wie man den Größenbefehl verwendet

Die ersten drei Einträge beziehen sich auf Text-, Daten- und BSS-Abschnitte mit den entsprechenden Größen. Dann kommt die Summe in dezimaler und hexadezimaler Form. Und schließlich steht der letzte Eintrag für den Dateinamen.

Q2. Wie kann man zwischen verschiedenen Ausgabeformaten wechseln?

Das standardmäßige Ausgabeformat, wie die Manpage für Größe sagt, ähnelt dem Berkeley-Format. Wenn du willst, kannst du dich aber auch für die System-V-Konvention entscheiden. Dazu müssen Sie die Option –format mit SysV als Wert verwenden.

size apl --format=SysV

Hier ist in diesem Fall die Ausgabe:

Wie man zwischen verschiedenen Ausgabeformaten wechselt

Q3. Wie kann man zwischen verschiedenen Größeneinheiten wechseln?

Standardmäßig wird die Größe der Abschnitte in Dezimalstellen angezeigt. Wenn Sie möchten, können Sie diese Informationen jedoch sowohl oktal als auch hexadezimal erhalten. Verwenden Sie dazu die Kommandozeilenoptionen -o und -x.

Wie man zwischen verschiedenen Größeneinheiten wechselt

Hier ist, was die Man Page über diese Optionen sagt:

-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. Wie kann man den size Befehl dazu bringen, die Summen aller Objektdateien anzuzeigen?

Wenn Sie die Größe verwenden, um die Abschnittsgrößen für mehrere Dateien in einem Durchgang herauszufinden, können Sie sich vom Tool auch Summen aller Spaltenwerte anzeigen lassen. Sie können diese Funktion mit der Befehlszeilenoption -t aktivieren.

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

Der folgende Screenshot zeigt diese Kommandozeilenoption in Aktion:

Wie man den Größenbefehl dazu bringt, die Summen aller Objektdateien anzuzeigen.

Die letzte Zeile in der Ausgabe wurde durch die Kommandozeilenoption -t hinzugefügt.

Q5. Wie kann man die Gesamtgröße der gebräuchlichen Symbole in jeder Datei in der Größe drucken lassen?

Wenn Sie den Größenbefehl mit mehreren Eingabedateien ausführen und möchten, dass der Befehl allgemeine Symbole in jeder Datei anzeigt, können Sie dies mit der Befehlszeilenoption –common tun.

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

Es ist auch erwähnenswert, dass bei der Verwendung des Berkeley-Formats diese in der Größe bss enthalten sind.

Q6. Welche anderen verfügbaren Befehlszeilenoptionen gibt es?

Neben den bisher diskutierten bietet size auch einige generische Kommandozeilenoptionen wie -v (für Versionsinformationen) und -h (für die Zusammenfassung der zulässigen Argumente und Optionen).

Welche anderen verfügbaren Befehlszeilenoptionen gibt es?

Darüber hinaus können Sie auch Größenlese-Kommandozeilenoptionen aus einer Datei erstellen. Dies kannst du mit der Option @file tun. Im Folgenden finden Sie einige Details zu dieser Option:

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.

Fazit

Eines ist klar, der Größenbefehl ist nicht für jeden geeignet. Es richtet sich nur an diejenigen, die sich mit der Struktur von Objekt- und ausführbaren Dateien unter Linux befassen. Wenn Sie also zur Zielgruppe gehören, üben Sie die Optionen, die wir hier besprochen haben, und Sie sollten bereit sein, das Tool täglich zu nutzen. Weitere Informationen zur Größe findest du auf der Man Page.

Das könnte Dich auch interessieren …