Zum Inhalt springen

Hexdump: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''hexdump''' - Dateiinhalte hexadezimal, dezimal, oktal oder in ASCII   ausgeben
'''hexdump''' - Dateiinhalte hexadezimal, dezimal, oktal oder in ASCII ausgeben


== Beschreibung ==
== Beschreibung ==
Das Dienstprogramm '''hexdump''' ist ein Filter, der in einem   benutzerspezifischen Format die angegebenen Dateien oder den Inhalt der   Standardeingabe anzeigt (falls keine Dateien angegeben sind).
Das Dienstprogramm '''hexdump''' ist ein Filter, der in einem benutzerspezifischen Format die angegebenen Dateien oder den Inhalt der Standardeingabe anzeigt (falls keine Dateien angegeben sind)
* '''hexdump''' sollte zu IEEE Std 1003.2   (»POSIX.2«) kompatibel sein.
* '''hexdump''' sollte zu IEEE Std 1003.2 (»POSIX.2«) kompatibel sein


== Installation ==
== Installation ==
'''hexdump''' ist Teil des [[Pakets]] [[util-linux]]
'''hexdump''' ist Teil des [[Pakets]] [[util-linux]]
== Aufruf ==
<syntaxhighlight lang="bash" highlight="1-2" line>
hexdump Optionen Datei ...
hd Optionen Datei ...
</syntaxhighlight>
=== Optionen ===
{| class="wikitable sortable options gnu big"
|-
! Unix !! GNU !! Parameter !! Beschreibung
|-
| || || ||
|-
|}
Nachfolgend kann den Argumenten '''Größe''' und    '''Versatz''' eines der multiplikativen Suffixe KiB (=1024), MiB    (=1024*1024) und so weiter für GiB, TiB, PiB, EiB, ZiB und YiB folgen    (das »iB« ist optional, zum Beispiel ist »K«    gleichbedeutend mit »KiB«) oder die Suffixe KB (=1000), MB    (=1000*1000) und so weiter für GB, TB, PB, EB, ZB und YB folgen.
'''-b''', '''--one-byte-octal'''
''Oktale Ein-Byte-Anzeige''. Dies zeigt den  Eingabeversatz in hexadezimaler Form, gefolgt von sechzehn durch  Leerräume getrennten, dreispaltigen, mittels Nullen aufgefüllten  Zeichen der Eingabedaten in oktaler Notation pro Zeile an.
'''-X''', '''--one-byte-hex'''
''Hexadezimale Ein-Byte-Anzeige''. Dies zeigt den  Eingabeversatz in hexadezimaler Form, gefolgt von sechzehn durch  Leerräume getrennten, zweispaltigen, mittels Nullen aufgefüllten  Zeichen der Eingabedaten in hexadezimaler Notation pro Zeile an.
'''-c''', '''--one-byte-char'''
''Zeichenbasierte Ein-Byte-Anzeige''. Dies zeigt den  Eingabeversatz in hexadezimaler Form, gefolgt von sechzehn durch  Leerräume getrennten, dreispaltigen, mittels Leerräumen  aufgefüllten Zeichen der Eingabedaten pro Zeile an.
'''-C''', '''--canonical'''
''Kanonische Hex+ASCII-Anzeige''. Dies zeigt den  Eingabeversatz in hexadezimaler Form , gefolgt von sechzehn durch  Leerräume getrennten, zweispaltigen hexadezimalen Bytes an, gefolgt von  den gleichen sechzehn Bytes im Format '''%_p''', in '''|''' eingeschlossen.  Der Aufruf des Programms als '''hd''' impliziert diese Option.
'''-d''', '''--two-bytes-decimal'''
''Dezimale Zwei-Byte-Anzeige''. Dies zeigt den  Eingabeversatz in hexadezimaler Form an, gefolgt von acht durch  Leerräume getrennten, fünfspaltigen, mittels Nullen  aufgefüllten Zwei-Byte-Einheiten der Eingabedaten und in  vorzeichenloser dezimaler Notation pro Zeile an.
'''-e''', '''--format''' ''Formatzeichenkette''
gibt eine Formatzeichenkette an, die für die  Anzeige der Daten verwendet werden soll.
'''-f''', '''--format-file''' ''Datei''
gibt eine Datei an, die eine oder mehrere durch  Zeilenvorschübe getrennte Formatzeichenketten enthält. Leere  Zeilen und solche, deren erstes auf eventuellen Leerraum folgende Zeichen eine  Raute ist (#), werden ignoriert.
'''-L''', '''--color'''['''='''''when'']
akzeptiert Farbeinheiten für die Ausgabe. Das  optionale Argument ''wann'' kann '''auto''' (automatisch), '''never'''  (niemals) oder '''always''' (immer) sein. Falls das Argument wann nicht  angegeben wird, dann wird standardmäßig '''auto''' verwendet.  Die Farben können deaktiviert werden; die aktuelle eingebaute  Voreinstellung finden Sie in der Ausgabe der Option '''--help'''. Siehe auch  den Unterabschnitt '''Farben''' und den nachfolgenden Abschnitt  '''FARBEN'''.
'''-n''', '''--length''' ''Länge''
wertet nur die angegebene '''Länge''' an Bytes  der Eingabe aus.
'''-o''', '''--two-bytes-octal'''
''Oktale Zwei-Byte-Anzeige''. Dies zeigt den  Eingabeversatz in hexadezimaler Form, gefolgt von acht durch Leerräume  getrennten, sechsspaltigen, mittels Nullen aufgefüllten  Zwei-Byte-Einheiten der Eingabedaten und in oktaler Notation pro Zeile  an.
'''-s''', '''--skip''' ''Versatz''
überspringt den angegebenen ''Versatz'' an  Bytes vom Beginn der Eingabe.
'''-v''', '''--no-squeezing'''
veranlasst '''hexdump''', alle Eingabedaten anzuzeigen.  Ohne die Option '''-v''' wird sämtliche Anzahl Ausgabezeilengruppen,  die identisch zur unmittelbar vorausgehenden Ausgabezeilengruppe wären  (außer den Eingabeversätzen), durch eine aus einem einzelnen  Stern bestehende Zeile ersetzt.
'''-x''', '''--two-bytes-hex'''
''Hexadezimale Zwei-Byte-Anzeige''. Dies zeigt den  Eingabeversatz in hexadezimaler Form, gefolgt von acht durch Leerräume  getrennten, vierspaltigen, mittels Nullen aufgefüllten  Zwei-Byte-Einheiten der Eingabedaten und in hexadezimaler Notation pro Zeile  an.
'''-h''', '''--help'''
zeigt einen Hilfetext an und beendet das Programm.
'''-V''', '''--version'''
Display version and exit.
Für jede Eingabedatei kopiert '''hexdump''' die Eingabe    sequenziell in die Standardausgabe, wobei die Daten anhand der in den    Optionen '''-e''' und '''-f''' angegebenen Formatzeichenketten in deren    angegebener Reihenfolge umgewandelt werden.
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
{| class="wikitable options col1center big"
|-
! Wert !! Beschreibung
|-
| 0 || Erfolg
|-
| >0  || Fehler
|}


== Anwendung ==
== Anwendung ==
Zeile 104: Zeile 13:


Die Eingabe im Durchsichtsformat anzeigen:
Die Eingabe im Durchsichtsformat anzeigen:
   
  "%06.6_ao " 12/1 "%3_u "
    "%06.6_ao " 12/1 "%3_u "
  "\t" "%_p "
 
  "\n"
   
    "\t" "%_p "
 
   
    "\n"
Die Option '''-x''' implementieren:
    "%07.7_Ax\n"


   
  Die Option '''-x''' implementieren:
    "%07.7_ax " 8/2 "%04x " "\n"
"%07.7_Ax\n"
Beispiel für MBR-Bootsignatur: Die Adressen in Cyan    hervorheben und die Bytes an Position 510 und 511 grün hervorheben,    falls deren Wert 0xAA55 ist, anderenfalls rot.
"%07.7_ax " 8/2 "%04x " "\n"
    "%07.7_Ax_L[cyan]\n"


   
Beispiel für MBR-Bootsignatur: Die Adressen in Cyan hervorheben und die Bytes an Position 510 und 511 grün hervorheben, falls deren Wert 0xAA55 ist, anderenfalls rot
    "%07.7_ax_L[cyan] " 8/2 "   %04x_L[green:0xAA55@510-511,!red:0xAA55@510-511] " "\n"
  "%07.7_Ax_L[cyan]\n"
"%07.7_ax_L[cyan] " 8/2 " %04x_L[green:0xAA55@510-511,!red:0xAA55@510-511] " "\n"


= Formate =
== Formate ==
Eine Formatzeichenkette enthält eine beliebige Anzahl an   Formatierungseinheiten, die durch Leerzeichen getrennt sind. Eine   Formatierungseinheit einhält bis zu drei Einträge: Einen   Iterationszähler, einen Byte-Zähler und ein Format.
Eine Formatzeichenkette enthält eine beliebige Anzahl an Formatierungseinheiten, die durch Leerzeichen getrennt sind
* Eine Formatierungseinheit einhält bis zu drei Einträge: Einen Iterationszähler, einen Byte-Zähler und ein Format


Der Iterationszähler ist eine optionale positive Ganzzahl,   deren Vorgabe 1 ist. Jedes Format wird so oft angewendet, wie der   Iterationszähler angibt.
Der Iterationszähler ist eine optionale positive Ganzzahl, deren Vorgabe 1 ist
* Jedes Format wird so oft angewendet, wie der Iterationszähler angibt


Der Byte-Zähler ist eine optionale positive Ganzzahl. Falls   diese angegeben wird, gibt sie die Anzahl an Bytes an, die bei jeder   Iteration des Formats interpretiert werden sollen.
Der Byte-Zähler ist eine optionale positive Ganzzahl
* Falls diese angegeben wird, gibt sie die Anzahl an Bytes an, die bei jeder Iteration des Formats interpretiert werden sollen


Falls ein Iterations- oder Byte-Zähler angegeben ist, muss   nach dem Iterationszähler und/oder vor dem Byte-Zähler ein   einzelner Schrägstrich gesetzt werden, um die beiden Angaben   eindeutig voneinander zu trennen. Sämtlicher Leerraum vor oder nach   dem Schrägstrich wird ignoriert.
Falls ein Iterations- oder Byte-Zähler angegeben ist, muss nach dem Iterationszähler und/oder vor dem Byte-Zähler ein einzelner Schrägstrich gesetzt werden, um die beiden Angaben eindeutig voneinander zu trennen
* Sämtlicher Leerraum vor oder nach dem Schrägstrich wird ignoriert


Das Format ist verpflichtend und muss in doppelte   Anführungszeichen (" ") eingeschlossen werden. Es wird als   eine Formatzeichenkette im Fprintf-Stil (siehe fprintf(3)) mit den   folgenden Ausnahmen interpretiert:
Das Format ist verpflichtend und muss in doppelte Anführungszeichen (" ") eingeschlossen werden
* Es wird als eine Formatzeichenkette im Fprintf-Stil (siehe fprintf(3)) mit den folgenden Ausnahmen interpretiert:


1.
1


Ein Stern (*) darf nicht zur Angabe der Feldbreite oder Genauigkeit verwendet werden.
Ein Stern (*) darf nicht zur Angabe der Feldbreite oder Genauigkeit verwendet werden


2.
2


Ein Byte-Zähler oder eine Feldgenauigkeit ''ist'' für jedes '''s'''-Konversionszeichen erforderlich (im Gegensatz zur Standardeinstellung in fprintf(3), wo die gesamte Zeichenkette ausgegeben wird, falls keine Genauigkeit angegeben ist).
Ein Byte-Zähler oder eine Feldgenauigkeit ''ist'' für jedes '''s'''-Konversionszeichen erforderlich (im Gegensatz zur Standardeinstellung in fprintf(3), wo die gesamte Zeichenkette ausgegeben wird, falls keine Genauigkeit angegeben ist)


3.
3


Die Konversionszeichen '''h''', '''l''', '''n''', '''p''' und '''q''' werden nicht unterstützt.
Die Konversionszeichen '''h''', '''l''', '''n''', '''p''' und '''q''' werden nicht unterstützt


4.
4


Die im C-Standard beschriebenen aus einem Zeichen bestehenden Escape-Sequenzen werden unterstützt:
Die im C-Standard beschriebenen aus einem Zeichen bestehenden Escape-Sequenzen werden unterstützt:
{| class="wikitable"
{| class="wikitable"
|NULL
|NULL
Zeile 178: Zeile 83:


== Konversionszeichenketten ==
== Konversionszeichenketten ==
Das Dienstprogramm '''hexdump''' unterstützt auch die   folgenden zusätzlichen Konversionszeichenketten.
Das Dienstprogramm '''hexdump''' unterstützt auch die folgenden zusätzlichen Konversionszeichenketten


'''_a[dox]'''
'''_a[dox]'''


zeigt den Eingabeversatz des nächsten anzuzeigenden Bytes kumulativ für alle Eingabedateien an. Die angehängten Zeichen '''d''', '''o''' und '''x''' geben die Basis der Anzeige als dezimal, oktal beziehungsweise hexadezimal an.
zeigt den Eingabeversatz des nächsten anzuzeigenden Bytes kumulativ für alle Eingabedateien an
* Die angehängten Zeichen '''d''', '''o''' und '''x''' geben die Basis der Anzeige als dezimal, oktal beziehungsweise hexadezimal an


'''_A[dox]'''
'''_A[dox]'''


ist weitgehend identisch mit der Konversionszeichenkette '''_a''', mit der Ausnahme, dass es nur einmal ausgeführt wird, wenn sämtliche Eingabedateien verarbeitet wurden.
ist weitgehend identisch mit der Konversionszeichenkette '''_a''', mit der Ausnahme, dass es nur einmal ausgeführt wird, wenn sämtliche Eingabedateien verarbeitet wurden


'''_c'''
'''_c'''


gibt Zeichen im Standard-Zeichensatz aus. Nicht darstellbare Zeichen werden in einer aus drei Zeichen bestehenden, mit Nullen aufgefüllten oktalen Schreibweise dargestellt. Das gilt nicht für jene, die in der Standard-Escape-Notation dargestellt werden können (siehe oben), wo die Anzeige in aus zwei Zeichen bestehenden Zeichenketten erfolgt.
gibt Zeichen im Standard-Zeichensatz aus
* Nicht darstellbare Zeichen werden in einer aus drei Zeichen bestehenden, mit Nullen aufgefüllten oktalen Schreibweise dargestellt
* Das gilt nicht für jene, die in der Standard-Escape-Notation dargestellt werden können (siehe oben), wo die Anzeige in aus zwei Zeichen bestehenden Zeichenketten erfolgt


'''_p'''
'''_p'''


gibt Zeichen im Standard-Zeichensatz aus. Nicht darstellbare Zeichen werden als einzelner »'''.'''« angezeigt.
gibt Zeichen im Standard-Zeichensatz aus
* Nicht darstellbare Zeichen werden als einzelner »'''.'''« angezeigt


'''_u'''
'''_u'''


gibt US-ASCII-Zeichen aus, mit der Ausnahme, dass Steuerzeichen in den folgenden, klein geschriebenen Namen angezeigt werdenZeichen größer als 0xff hexadezimal werden als hexadezimale Zeichenketten angezeigt.
gibt US-ASCII-Zeichen aus, mit der Ausnahme, dass Steuerzeichen in den folgenden, klein geschriebenen Namen angezeigt werden
* Zeichen größer als 0xff hexadezimal werden als hexadezimale Zeichenketten angezeigt
{| class="wikitable"
{| class="wikitable"
|000 nul
|000 nul
Zeile 244: Zeile 154:


== Farben ==
== Farben ==
Wenn an das Ende eines Formatbezeichners gesetzt, hebt   '''hexdump''' die jeweilige Zeichenkette in der angegebenen Farbe hervor.    Bedingungen werden, sofern vorhanden, bei der Anwendung der Hervorhebung   bevorzugt.
Wenn an das Ende eines Formatbezeichners gesetzt, hebt '''hexdump''' die jeweilige Zeichenkette in der angegebenen Farbe hervor
* Bedingungen werden, sofern vorhanden, bei der Anwendung der Hervorhebung bevorzugt


'''_L[Farbeinheit_1,Farbeinheit_2,...,Farbeinheit_n]'''
'''_L[Farbeinheit_1,Farbeinheit_2,...,Farbeinheit_n]'''


Die vollständige Syntax einer Farbeinheit ist wie folgt:
Die vollständige Syntax einer Farbeinheit ist wie folgt:


'''[!]FARBE[:WERT][@VERSATZ_BEGINN[-ENDE]]'''
'''[!]FARBE[:WERT][@VERSATZ_BEGINN[-ENDE]]'''
Zeile 254: Zeile 165:
'''!'''
'''!'''


negiert die Bedingung. Bitte beachten Sie, dass die Negierung einer Einheit nur Sinn ergibt, wenn sowohl Wert/Zeichenkette als auch Versatz angegeben sind. In einem solchen Fall wird die entsprechende Ausgabezeichenkette nur dann hervorgehoben, wenn Wert/Zeichenkette nicht zu jener passt, die im Versatz angegeben ist.
negiert die Bedingung
* Bitte beachten Sie, dass die Negierung einer Einheit nur Sinn ergibt, wenn sowohl Wert/Zeichenkette als auch Versatz angegeben sind
* In einem solchen Fall wird die entsprechende Ausgabezeichenkette nur dann hervorgehoben, wenn Wert/Zeichenkette nicht zu jener passt, die im Versatz angegeben ist


'''FARBE'''
'''FARBE'''


Eine der acht grundlegenden Shell-Farben.
Eine der acht grundlegenden Shell-Farben


'''WERT'''
'''WERT'''


Ein Wert, der auf Übereinstimmung geprüft wird, dargestellt in hexadezimaler oder oktaler Basis oder als ZeichenketteBitte beachten Sie, dass die üblichen C-Escape-Sequenzen innerhalb von Farbeinheiten von '''hexdump''' nicht interpretiert werden.
Ein Wert, der auf Übereinstimmung geprüft wird, dargestellt in hexadezimaler oder oktaler Basis oder als Zeichenkette
* Bitte beachten Sie, dass die üblichen C-Escape-Sequenzen innerhalb von Farbeinheiten von '''hexdump''' nicht interpretiert werden


'''VERSATZ'''
'''VERSATZ'''


Ein Versatz oder Versatzbereich, in dem auf Übereinstimmung geprüft werden soll. Bitte beachten Sie, dass ein einzelner VERSATZ_BEGINN den gleichen Wert für ENDE verwendet.
Ein Versatz oder Versatzbereich, in dem auf Übereinstimmung geprüft werden soll
* Bitte beachten Sie, dass ein einzelner VERSATZ_BEGINN den gleichen Wert für ENDE verwendet


== Zähler ==
== Zähler ==
Die vorgegebenen und unterstützten Byte-Zähler   für die Konversionszeichen sind wie folgt:
Die vorgegebenen und unterstützten Byte-Zähler für die Konversionszeichen sind wie folgt:


'''%_c''', '''%_p''', '''%_u''', '''%c'''
'''%_c''', '''%_p''', '''%_u''', '''%c'''


Nur Ein-Byte-Zähler.
Nur Ein-Byte-Zähler


'''%d''', '''%i''', '''%o''', '''%u''', '''%X''', '''%x'''
'''%d''', '''%i''', '''%o''', '''%u''', '''%X''', '''%x'''


Vier Byte als Standard, aber auch ein, zwei und vier Byte werden unterstützt.
Vier Byte als Standard, aber auch ein, zwei und vier Byte werden unterstützt


'''%E''', '''%e''', '''%f''', '''%G''', '''%g'''
'''%E''', '''%e''', '''%f''', '''%G''', '''%g'''


Acht Byte als Standard, aber auch Vier-Byte-Zähler werden unterstützt.
Acht Byte als Standard, aber auch Vier-Byte-Zähler werden unterstützt


Die Menge der von jeder Formatzeichenkette interpretierten Daten   ist die Summe der für jede Formateinheit erforderlichen Daten,   welches das Produkt aus dem Iterationszähler mit dem   Byte-Zähler oder, falls der Byte-Zähler nicht angegeben ist,   das Produkt aus dem Iterationszähler mit der Anzahl vom Format   benötigten Bytes ist.
Die Menge der von jeder Formatzeichenkette interpretierten Daten ist die Summe der für jede Formateinheit erforderlichen Daten, welches das Produkt aus dem Iterationszähler mit dem Byte-Zähler oder, falls der Byte-Zähler nicht angegeben ist, das Produkt aus dem Iterationszähler mit der Anzahl vom Format benötigten Bytes ist


Die Eingabe wird in ''Blöcken'' verarbeitet, wobei ein   Block als die größte Menge der von einer Formatzeichenkette   bezeichneten Daten definiert ist. Bei Formatzeichenketten, die weniger als   eine Eingabeblockgröße an Daten auswerten und deren letzte   Formateinheit sowohl einen Anteil an Bytes interpretiert und als auch keinen   angegebenen Iterationszähler haben, wird der Iterationszähler   erhöht, bis der gesamte Eingabeblock verarbeitet wurde oder es nicht   mehr genug verbleibende Daten im Block gibt, um der Formatzeichenkette zu   entsprechen.
Die Eingabe wird in ''Blöcken'' verarbeitet, wobei ein Block als die größte Menge der von einer Formatzeichenkette bezeichneten Daten definiert ist
* Bei Formatzeichenketten, die weniger als eine Eingabeblockgröße an Daten auswerten und deren letzte Formateinheit sowohl einen Anteil an Bytes interpretiert und als auch keinen angegebenen Iterationszähler haben, wird der Iterationszähler erhöht, bis der gesamte Eingabeblock verarbeitet wurde oder es nicht mehr genug verbleibende Daten im Block gibt, um der Formatzeichenkette zu entsprechen


Falls ein Iterationszähler größer als 1 ist,   entweder als Ergebnis der Benutzerangabe oder wenn '''hexdump''' den   Iterationszähler wie oben beschrieben verändert hat, werden   während der letzten Iteration keine abschließenden Leerzeichen   ausgegeben.
Falls ein Iterationszähler größer als 1 ist, entweder als Ergebnis der Benutzerangabe oder wenn '''hexdump''' den Iterationszähler wie oben beschrieben verändert hat, werden während der letzten Iteration keine abschließenden Leerzeichen ausgegeben


Es ist ein Fehler, sowohl einen Byte-Zähler als auch   mehrere Konversionszeichen oder -zeichenketten anzugeben, es sei denn, alle   Konversionszeichen oder -zeichenketten bis auf eine sind '''_a''' oder   '''_A'''.
Es ist ein Fehler, sowohl einen Byte-Zähler als auch mehrere Konversionszeichen oder -zeichenketten anzugeben, es sei denn, alle Konversionszeichen oder -zeichenketten bis auf eine sind '''_a''' oder '''_A'''


Falls, als Ergebnis der Angabe der Option '''-n''' oder wenn das   Ende der Datei erreicht ist, die Eingabedaten einer Formatzeichenkette nur   teilweise entsprechen, wird der Eingabeblock mit Nullen aufgefüllt,   um alle verfügbaren Daten anzuzeigen (das heißt, jede   Formateinheit, die über das Ende der Daten hinausgeht, zeigt einige   NULL-Bytes an).
Falls, als Ergebnis der Angabe der Option '''-n''' oder wenn das Ende der Datei erreicht ist, die Eingabedaten einer Formatzeichenkette nur teilweise entsprechen, wird der Eingabeblock mit Nullen aufgefüllt, um alle verfügbaren Daten anzuzeigen (das heißt, jede Formateinheit, die über das Ende der Daten hinausgeht, zeigt einige NULL-Bytes an)


Weitere Ausgaben solcher Formatzeichenketten werden durch die   äquivalente Anzahl Leerzeichen ersetzt. Eine äquivalente   Anzahl Leerzeichen ist als die Anzahl der durch das Konversionszeichen   '''s''' ausgegebenen Leerzeichen definiert. Diese haben die gleiche   Feldbreite und Genauigkeit wie das ursprüngliche Konversionszeichen   oder die ursprüngliche Konversionszeichenkette, aber bei allen werden   die Konversionszeichen »+«, » « und   »#« entfernt und referenzieren eine NULL-Zeichenkette.
Weitere Ausgaben solcher Formatzeichenketten werden durch die äquivalente Anzahl Leerzeichen ersetzt
* Eine äquivalente Anzahl Leerzeichen ist als die Anzahl der durch das Konversionszeichen '''s''' ausgegebenen Leerzeichen definiert
* Diese haben die gleiche Feldbreite und Genauigkeit wie das ursprüngliche Konversionszeichen oder die ursprüngliche Konversionszeichenkette, aber bei allen werden die Konversionszeichen »+«, » « und »#« entfernt und referenzieren eine NULL-Zeichenkette


Falls keine Formatzeichenketten angegeben sind, ist die   standardmäßige Anzeige sehr ähnlich zum Ausgabeformat   mit der Option '''-x''' (die Option '''-x''' verursacht mehr   Platzverbrauch zwischen den Formateinheiten als in der   standardmäßigen Ausgabe).
Falls keine Formatzeichenketten angegeben sind, ist die standardmäßige Anzeige sehr ähnlich zum Ausgabeformat mit der Option '''-x''' (die Option '''-x''' verursacht mehr Platzverbrauch zwischen den Formateinheiten als in der standardmäßigen Ausgabe)


= Farben =
== Farben ==
Die farbige Darstellung der Ausgabe wird über die   Funktionen in terminal-colors.d(5) gesteuert. Die implizierte   Einfärbung kann deaktiviert werden, indem Sie folgende (leere) Datei   anlegen:
Die farbige Darstellung der Ausgabe wird über die Funktionen in terminal-colors.d(5) gesteuert
* Die implizierte Einfärbung kann deaktiviert werden, indem Sie folgende (leere) Datei anlegen:


''/etc/terminal-colors.d/hexdump.disable''
''/etc/terminal-colors.d/hexdump.disable''


für den Befehl '''hexdump''' oder für alle Befehle   mit
für den Befehl '''hexdump''' oder für alle Befehle mit


''/etc/terminal-colors.d/disable''
''/etc/terminal-colors.d/disable''


Since version 2.41, the $NO_COLOR environment variable is also   supported to disable output colorization unless explicitly enabled by a   command-line option.
Since version 2.41, the $NO_COLOR environment variable is also supported to disable output colorization unless explicitly enabled by a command-line option


Die benutzerspezifischen Dateien   ''$XDG_CONFIG_HOME/terminal−colors.d'' oder   ''$HOME/.config/terminal−colors.d'' setzen die globale Einstellung   außer Kraft.
Die benutzerspezifischen Dateien ''$XDG_CONFIG_HOME/terminal−colors.d'' oder ''$HOME/.config/terminal−colors.d'' setzen die globale Einstellung außer Kraft


Beachten Sie, dass die Einfärbung der Ausgabe   standardmäßig aktiviert sein könnte und in diesem Fall   die ''terminal-colors.d''-Verzeichnisse noch nicht zwangsläufig   vorhanden sein müssen.
Beachten Sie, dass die Einfärbung der Ausgabe standardmäßig aktiviert sein könnte und in diesem Fall die ''terminal-colors.d''-Verzeichnisse noch nicht zwangsläufig vorhanden sein müssen


<noinclude>
== Aufruf ==
<syntaxhighlight lang="bash" highlight="1-2" line>
hexdump Optionen Datei ..
hd Optionen Datei ..
</syntaxhighlight>
=== Optionen ===
{| class="wikitable sortable options gnu big"
|-
! Unix !! GNU !! Parameter !! Beschreibung
|-
| || || ||
|-
|}
Nachfolgend kann den Argumenten '''Größe''' und '''Versatz''' eines der multiplikativen Suffixe KiB (=1024), MiB (=1024*1024) und so weiter für GiB, TiB, PiB, EiB, ZiB und YiB folgen (das »iB« ist optional, zum Beispiel ist »K« gleichbedeutend mit »KiB«) oder die Suffixe KB (=1000), MB (=1000*1000) und so weiter für GB, TB, PB, EB, ZB und YB folgen
'''-b''', '''--one-byte-octal'''
''Oktale Ein-Byte-Anzeige''
* Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von sechzehn durch Leerräume getrennten, dreispaltigen, mittels Nullen aufgefüllten Zeichen der Eingabedaten in oktaler Notation pro Zeile an
'''-X''', '''--one-byte-hex'''
''Hexadezimale Ein-Byte-Anzeige''
* Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von sechzehn durch Leerräume getrennten, zweispaltigen, mittels Nullen aufgefüllten Zeichen der Eingabedaten in hexadezimaler Notation pro Zeile an
'''-c''', '''--one-byte-char'''
''Zeichenbasierte Ein-Byte-Anzeige''
* Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von sechzehn durch Leerräume getrennten, dreispaltigen, mittels Leerräumen aufgefüllten Zeichen der Eingabedaten pro Zeile an
'''-C''', '''--canonical'''
''Kanonische Hex+ASCII-Anzeige''
* Dies zeigt den Eingabeversatz in hexadezimaler Form , gefolgt von sechzehn durch Leerräume getrennten, zweispaltigen hexadezimalen Bytes an, gefolgt von den gleichen sechzehn Bytes im Format '''%_p''', in '''|''' eingeschlossen
* Der Aufruf des Programms als '''hd''' impliziert diese Option
'''-d''', '''--two-bytes-decimal'''
''Dezimale Zwei-Byte-Anzeige''
* Dies zeigt den Eingabeversatz in hexadezimaler Form an, gefolgt von acht durch Leerräume getrennten, fünfspaltigen, mittels Nullen aufgefüllten Zwei-Byte-Einheiten der Eingabedaten und in vorzeichenloser dezimaler Notation pro Zeile an
'''-e''', '''--format''' ''Formatzeichenkette''
gibt eine Formatzeichenkette an, die für die Anzeige der Daten verwendet werden soll
'''-f''', '''--format-file''' ''Datei''
gibt eine Datei an, die eine oder mehrere durch Zeilenvorschübe getrennte Formatzeichenketten enthält
* Leere Zeilen und solche, deren erstes auf eventuellen Leerraum folgende Zeichen eine Raute ist (#), werden ignoriert
'''-L''', '''--color'''['''='''''when'']
akzeptiert Farbeinheiten für die Ausgabe
* Das optionale Argument ''wann'' kann '''auto''' (automatisch), '''never''' (niemals) oder '''always''' (immer) sein
* Falls das Argument wann nicht angegeben wird, dann wird standardmäßig '''auto''' verwendet
* Die Farben können deaktiviert werden; die aktuelle eingebaute Voreinstellung finden Sie in der Ausgabe der Option '''--help'''
* Siehe auch den Unterabschnitt '''Farben''' und den nachfolgenden Abschnitt '''FARBEN'''
'''-n''', '''--length''' ''Länge''
wertet nur die angegebene '''Länge''' an Bytes der Eingabe aus
'''-o''', '''--two-bytes-octal'''
''Oktale Zwei-Byte-Anzeige''
* Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von acht durch Leerräume getrennten, sechsspaltigen, mittels Nullen aufgefüllten Zwei-Byte-Einheiten der Eingabedaten und in oktaler Notation pro Zeile an
'''-s''', '''--skip''' ''Versatz''
überspringt den angegebenen ''Versatz'' an Bytes vom Beginn der Eingabe
'''-v''', '''--no-squeezing'''
veranlasst '''hexdump''', alle Eingabedaten anzuzeigen
* Ohne die Option '''-v''' wird sämtliche Anzahl Ausgabezeilengruppen, die identisch zur unmittelbar vorausgehenden Ausgabezeilengruppe wären (außer den Eingabeversätzen), durch eine aus einem einzelnen Stern bestehende Zeile ersetzt
'''-x''', '''--two-bytes-hex'''
''Hexadezimale Zwei-Byte-Anzeige''
* Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von acht durch Leerräume getrennten, vierspaltigen, mittels Nullen aufgefüllten Zwei-Byte-Einheiten der Eingabedaten und in hexadezimaler Notation pro Zeile an
'''-h''', '''--help'''


<noinclude>
zeigt einen Hilfetext an und beendet das Programm
 
'''-V''', '''--version'''
 
Display version and exit
 
Für jede Eingabedatei kopiert '''hexdump''' die Eingabe sequenziell in die Standardausgabe, wobei die Daten anhand der in den Optionen '''-e''' und '''-f''' angegebenen Formatzeichenketten in deren angegebener Reihenfolge umgewandelt werden
 
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
{| class="wikitable options col1center big"
|-
! Wert !! Beschreibung
|-
| 0 || Erfolg
|-
| >0 || Fehler
|}


== Anhang ==
== Anhang ==
Zeile 324: Zeile 347:


=== Dokumentation ===
=== Dokumentation ===
; Man-Page  
; Man-Page
# [https://manpages.debian.org/stable/util-linux-locales/hexdump.1.de.html hexdump(1)]
# [https://manpages.debian.org/stable/util-linux-locales/hexdump.1.de.html hexdump(1)]


Zeile 330: Zeile 353:
==== Projekt ====
==== Projekt ====
==== Weblinks ====
==== Weblinks ====
{{DEFAULTSORT:hexdump}}
{{DEFAULTSORT:hexdump}}
{{DISPLAYTITLE:hexdump}}
{{DISPLAYTITLE:hexdump}}

Aktuelle Version vom 9. Oktober 2025, 10:42 Uhr

hexdump - Dateiinhalte hexadezimal, dezimal, oktal oder in ASCII ausgeben

Beschreibung

Das Dienstprogramm hexdump ist ein Filter, der in einem benutzerspezifischen Format die angegebenen Dateien oder den Inhalt der Standardeingabe anzeigt (falls keine Dateien angegeben sind)

  • hexdump sollte zu IEEE Std 1003.2 (»POSIX.2«) kompatibel sein

Installation

hexdump ist Teil des Pakets util-linux

Anwendung

Die Eingabe im Durchsichtsformat anzeigen:

"%06.6_ao " 12/1 "%3_u "
"\t" "%_p "
"\n"
Die Option -x implementieren:
"%07.7_Ax\n"
"%07.7_ax " 8/2 "%04x " "\n"

Beispiel für MBR-Bootsignatur: Die Adressen in Cyan hervorheben und die Bytes an Position 510 und 511 grün hervorheben, falls deren Wert 0xAA55 ist, anderenfalls rot

"%07.7_Ax_L[cyan]\n"
"%07.7_ax_L[cyan] " 8/2 " %04x_L[green:0xAA55@510-511,!red:0xAA55@510-511] " "\n"

Formate

Eine Formatzeichenkette enthält eine beliebige Anzahl an Formatierungseinheiten, die durch Leerzeichen getrennt sind

  • Eine Formatierungseinheit einhält bis zu drei Einträge: Einen Iterationszähler, einen Byte-Zähler und ein Format

Der Iterationszähler ist eine optionale positive Ganzzahl, deren Vorgabe 1 ist

  • Jedes Format wird so oft angewendet, wie der Iterationszähler angibt

Der Byte-Zähler ist eine optionale positive Ganzzahl

  • Falls diese angegeben wird, gibt sie die Anzahl an Bytes an, die bei jeder Iteration des Formats interpretiert werden sollen

Falls ein Iterations- oder Byte-Zähler angegeben ist, muss nach dem Iterationszähler und/oder vor dem Byte-Zähler ein einzelner Schrägstrich gesetzt werden, um die beiden Angaben eindeutig voneinander zu trennen

  • Sämtlicher Leerraum vor oder nach dem Schrägstrich wird ignoriert

Das Format ist verpflichtend und muss in doppelte Anführungszeichen (" ") eingeschlossen werden

  • Es wird als eine Formatzeichenkette im Fprintf-Stil (siehe fprintf(3)) mit den folgenden Ausnahmen interpretiert:

1

Ein Stern (*) darf nicht zur Angabe der Feldbreite oder Genauigkeit verwendet werden

2

Ein Byte-Zähler oder eine Feldgenauigkeit ist für jedes s-Konversionszeichen erforderlich (im Gegensatz zur Standardeinstellung in fprintf(3), wo die gesamte Zeichenkette ausgegeben wird, falls keine Genauigkeit angegeben ist)

3

Die Konversionszeichen h, l, n, p und q werden nicht unterstützt

4

Die im C-Standard beschriebenen aus einem Zeichen bestehenden Escape-Sequenzen werden unterstützt:

NULL \0
<Warnzeichen> \a
<Rückschritt> \b
<Seitenvorschub> \f
<neue Zeile> \n
<Wagenrücklauf> \r
<Tabulator> \t
<vertikaler Tabulator> \v

Konversionszeichenketten

Das Dienstprogramm hexdump unterstützt auch die folgenden zusätzlichen Konversionszeichenketten

_a[dox]

zeigt den Eingabeversatz des nächsten anzuzeigenden Bytes kumulativ für alle Eingabedateien an

  • Die angehängten Zeichen d, o und x geben die Basis der Anzeige als dezimal, oktal beziehungsweise hexadezimal an

_A[dox]

ist weitgehend identisch mit der Konversionszeichenkette _a, mit der Ausnahme, dass es nur einmal ausgeführt wird, wenn sämtliche Eingabedateien verarbeitet wurden

_c

gibt Zeichen im Standard-Zeichensatz aus

  • Nicht darstellbare Zeichen werden in einer aus drei Zeichen bestehenden, mit Nullen aufgefüllten oktalen Schreibweise dargestellt
  • Das gilt nicht für jene, die in der Standard-Escape-Notation dargestellt werden können (siehe oben), wo die Anzeige in aus zwei Zeichen bestehenden Zeichenketten erfolgt

_p

gibt Zeichen im Standard-Zeichensatz aus

  • Nicht darstellbare Zeichen werden als einzelner ».« angezeigt

_u

gibt US-ASCII-Zeichen aus, mit der Ausnahme, dass Steuerzeichen in den folgenden, klein geschriebenen Namen angezeigt werden

  • Zeichen größer als 0xff hexadezimal werden als hexadezimale Zeichenketten angezeigt
000 nul 001 soh 002 stx 003 etx 004 eot 005 enq
006 ack 007 bel 008 bs 009 ht 00A lf 00B vt
00C ff 00D cr 00E so 00F si 010 dle 011 dc1
012 dc2 013 dc3 014 dc4 015 nak 016 syn 017 etb
018 can 019 em 01A sub 01B esc 01C fs 01D gs
01E rs 01F us 0FF del

Farben

Wenn an das Ende eines Formatbezeichners gesetzt, hebt hexdump die jeweilige Zeichenkette in der angegebenen Farbe hervor

  • Bedingungen werden, sofern vorhanden, bei der Anwendung der Hervorhebung bevorzugt

_L[Farbeinheit_1,Farbeinheit_2,...,Farbeinheit_n]

Die vollständige Syntax einer Farbeinheit ist wie folgt:

[!]FARBE[:WERT][@VERSATZ_BEGINN[-ENDE]]

!

negiert die Bedingung

  • Bitte beachten Sie, dass die Negierung einer Einheit nur Sinn ergibt, wenn sowohl Wert/Zeichenkette als auch Versatz angegeben sind
  • In einem solchen Fall wird die entsprechende Ausgabezeichenkette nur dann hervorgehoben, wenn Wert/Zeichenkette nicht zu jener passt, die im Versatz angegeben ist

FARBE

Eine der acht grundlegenden Shell-Farben

WERT

Ein Wert, der auf Übereinstimmung geprüft wird, dargestellt in hexadezimaler oder oktaler Basis oder als Zeichenkette

  • Bitte beachten Sie, dass die üblichen C-Escape-Sequenzen innerhalb von Farbeinheiten von hexdump nicht interpretiert werden

VERSATZ

Ein Versatz oder Versatzbereich, in dem auf Übereinstimmung geprüft werden soll

  • Bitte beachten Sie, dass ein einzelner VERSATZ_BEGINN den gleichen Wert für ENDE verwendet

Zähler

Die vorgegebenen und unterstützten Byte-Zähler für die Konversionszeichen sind wie folgt:

%_c, %_p, %_u, %c

Nur Ein-Byte-Zähler

%d, %i, %o, %u, %X, %x

Vier Byte als Standard, aber auch ein, zwei und vier Byte werden unterstützt

%E, %e, %f, %G, %g

Acht Byte als Standard, aber auch Vier-Byte-Zähler werden unterstützt

Die Menge der von jeder Formatzeichenkette interpretierten Daten ist die Summe der für jede Formateinheit erforderlichen Daten, welches das Produkt aus dem Iterationszähler mit dem Byte-Zähler oder, falls der Byte-Zähler nicht angegeben ist, das Produkt aus dem Iterationszähler mit der Anzahl vom Format benötigten Bytes ist

Die Eingabe wird in Blöcken verarbeitet, wobei ein Block als die größte Menge der von einer Formatzeichenkette bezeichneten Daten definiert ist

  • Bei Formatzeichenketten, die weniger als eine Eingabeblockgröße an Daten auswerten und deren letzte Formateinheit sowohl einen Anteil an Bytes interpretiert und als auch keinen angegebenen Iterationszähler haben, wird der Iterationszähler erhöht, bis der gesamte Eingabeblock verarbeitet wurde oder es nicht mehr genug verbleibende Daten im Block gibt, um der Formatzeichenkette zu entsprechen

Falls ein Iterationszähler größer als 1 ist, entweder als Ergebnis der Benutzerangabe oder wenn hexdump den Iterationszähler wie oben beschrieben verändert hat, werden während der letzten Iteration keine abschließenden Leerzeichen ausgegeben

Es ist ein Fehler, sowohl einen Byte-Zähler als auch mehrere Konversionszeichen oder -zeichenketten anzugeben, es sei denn, alle Konversionszeichen oder -zeichenketten bis auf eine sind _a oder _A

Falls, als Ergebnis der Angabe der Option -n oder wenn das Ende der Datei erreicht ist, die Eingabedaten einer Formatzeichenkette nur teilweise entsprechen, wird der Eingabeblock mit Nullen aufgefüllt, um alle verfügbaren Daten anzuzeigen (das heißt, jede Formateinheit, die über das Ende der Daten hinausgeht, zeigt einige NULL-Bytes an)

Weitere Ausgaben solcher Formatzeichenketten werden durch die äquivalente Anzahl Leerzeichen ersetzt

  • Eine äquivalente Anzahl Leerzeichen ist als die Anzahl der durch das Konversionszeichen s ausgegebenen Leerzeichen definiert
  • Diese haben die gleiche Feldbreite und Genauigkeit wie das ursprüngliche Konversionszeichen oder die ursprüngliche Konversionszeichenkette, aber bei allen werden die Konversionszeichen »+«, » « und »#« entfernt und referenzieren eine NULL-Zeichenkette

Falls keine Formatzeichenketten angegeben sind, ist die standardmäßige Anzeige sehr ähnlich zum Ausgabeformat mit der Option -x (die Option -x verursacht mehr Platzverbrauch zwischen den Formateinheiten als in der standardmäßigen Ausgabe)

Farben

Die farbige Darstellung der Ausgabe wird über die Funktionen in terminal-colors.d(5) gesteuert

  • Die implizierte Einfärbung kann deaktiviert werden, indem Sie folgende (leere) Datei anlegen:

/etc/terminal-colors.d/hexdump.disable

für den Befehl hexdump oder für alle Befehle mit

/etc/terminal-colors.d/disable

Since version 2.41, the $NO_COLOR environment variable is also supported to disable output colorization unless explicitly enabled by a command-line option

Die benutzerspezifischen Dateien $XDG_CONFIG_HOME/terminal−colors.d oder $HOME/.config/terminal−colors.d setzen die globale Einstellung außer Kraft

Beachten Sie, dass die Einfärbung der Ausgabe standardmäßig aktiviert sein könnte und in diesem Fall die terminal-colors.d-Verzeichnisse noch nicht zwangsläufig vorhanden sein müssen


Aufruf

hexdump Optionen Datei ..
hd Optionen Datei ..

Optionen

Unix GNU Parameter Beschreibung

Nachfolgend kann den Argumenten Größe und Versatz eines der multiplikativen Suffixe KiB (=1024), MiB (=1024*1024) und so weiter für GiB, TiB, PiB, EiB, ZiB und YiB folgen (das »iB« ist optional, zum Beispiel ist »K« gleichbedeutend mit »KiB«) oder die Suffixe KB (=1000), MB (=1000*1000) und so weiter für GB, TB, PB, EB, ZB und YB folgen

-b, --one-byte-octal

Oktale Ein-Byte-Anzeige

  • Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von sechzehn durch Leerräume getrennten, dreispaltigen, mittels Nullen aufgefüllten Zeichen der Eingabedaten in oktaler Notation pro Zeile an

-X, --one-byte-hex

Hexadezimale Ein-Byte-Anzeige

  • Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von sechzehn durch Leerräume getrennten, zweispaltigen, mittels Nullen aufgefüllten Zeichen der Eingabedaten in hexadezimaler Notation pro Zeile an

-c, --one-byte-char

Zeichenbasierte Ein-Byte-Anzeige

  • Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von sechzehn durch Leerräume getrennten, dreispaltigen, mittels Leerräumen aufgefüllten Zeichen der Eingabedaten pro Zeile an

-C, --canonical

Kanonische Hex+ASCII-Anzeige

  • Dies zeigt den Eingabeversatz in hexadezimaler Form , gefolgt von sechzehn durch Leerräume getrennten, zweispaltigen hexadezimalen Bytes an, gefolgt von den gleichen sechzehn Bytes im Format %_p, in | eingeschlossen
  • Der Aufruf des Programms als hd impliziert diese Option

-d, --two-bytes-decimal

Dezimale Zwei-Byte-Anzeige

  • Dies zeigt den Eingabeversatz in hexadezimaler Form an, gefolgt von acht durch Leerräume getrennten, fünfspaltigen, mittels Nullen aufgefüllten Zwei-Byte-Einheiten der Eingabedaten und in vorzeichenloser dezimaler Notation pro Zeile an

-e, --format Formatzeichenkette

gibt eine Formatzeichenkette an, die für die Anzeige der Daten verwendet werden soll

-f, --format-file Datei

gibt eine Datei an, die eine oder mehrere durch Zeilenvorschübe getrennte Formatzeichenketten enthält

  • Leere Zeilen und solche, deren erstes auf eventuellen Leerraum folgende Zeichen eine Raute ist (#), werden ignoriert

-L, --color[=when]

akzeptiert Farbeinheiten für die Ausgabe

  • Das optionale Argument wann kann auto (automatisch), never (niemals) oder always (immer) sein
  • Falls das Argument wann nicht angegeben wird, dann wird standardmäßig auto verwendet
  • Die Farben können deaktiviert werden; die aktuelle eingebaute Voreinstellung finden Sie in der Ausgabe der Option --help
  • Siehe auch den Unterabschnitt Farben und den nachfolgenden Abschnitt FARBEN

-n, --length Länge

wertet nur die angegebene Länge an Bytes der Eingabe aus

-o, --two-bytes-octal

Oktale Zwei-Byte-Anzeige

  • Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von acht durch Leerräume getrennten, sechsspaltigen, mittels Nullen aufgefüllten Zwei-Byte-Einheiten der Eingabedaten und in oktaler Notation pro Zeile an

-s, --skip Versatz

überspringt den angegebenen Versatz an Bytes vom Beginn der Eingabe

-v, --no-squeezing

veranlasst hexdump, alle Eingabedaten anzuzeigen

  • Ohne die Option -v wird sämtliche Anzahl Ausgabezeilengruppen, die identisch zur unmittelbar vorausgehenden Ausgabezeilengruppe wären (außer den Eingabeversätzen), durch eine aus einem einzelnen Stern bestehende Zeile ersetzt

-x, --two-bytes-hex

Hexadezimale Zwei-Byte-Anzeige

  • Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von acht durch Leerräume getrennten, vierspaltigen, mittels Nullen aufgefüllten Zwei-Byte-Einheiten der Eingabedaten und in hexadezimaler Notation pro Zeile an

-h, --help

zeigt einen Hilfetext an und beendet das Programm

-V, --version

Display version and exit

Für jede Eingabedatei kopiert hexdump die Eingabe sequenziell in die Standardausgabe, wobei die Daten anhand der in den Optionen -e und -f angegebenen Formatzeichenketten in deren angegebener Reihenfolge umgewandelt werden

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anhang

Siehe auch



Dokumentation

Man-Page
  1. hexdump(1)

Links

Projekt

Weblinks