HEXDUMP(1) Dienstprogramme fur Benutzer HEXDUMP(1) BEZEICHNUNG hexdump - Dateiinhalte hexadezimal, dezimal, oktal oder in ASCII ausgeben UBERSICHT hexdump Optionen Datei ... hd Optionen Datei ... 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). OPTIONEN Nachfolgend kann den Argumenten Grosse und Versatz eines der multiplikativen Suffixe KiB (=1024), MiB (=1024*1024) und so weiter fur 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 fur 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 Leerraume getrennten, dreispaltigen, mittels Nullen aufgefullten 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 Leerraume getrennten, zweispaltigen, mittels Nullen aufgefullten 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 Leerraume getrennten, dreispaltigen, mittels Leerraumen aufgefullten Zeichen der Eingabedaten pro Zeile an. -C, --canonical Kanonische Hex+ASCII-Anzeige. Dies zeigt den Eingabeversatz in hexadezimaler Form , gefolgt von sechzehn durch Leerraume 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 Leerraume getrennten, funfspaltigen, mittels Nullen aufgefullten Zwei-Byte-Einheiten der Eingabedaten und in vorzeichenloser dezimaler Notation pro Zeile an. -e, --format Formatzeichenkette gibt eine Formatzeichenkette an, die fur die Anzeige der Daten verwendet werden soll. -f, --format-file Datei gibt eine Datei an, die eine oder mehrere durch Zeilenvorschube getrennte Formatzeichenketten enthalt. Leere Zeilen und solche, deren erstes auf eventuellen Leerraum folgende Zeichen eine Raute ist (#), werden ignoriert. -L, --color[=when] akzeptiert Farbeinheiten fur die Ausgabe. Das optionale Argument wann kann auto (automatisch), never (niemals) oder always (immer) sein. Falls das Argument wann nicht angegeben wird, dann wird standardmassig auto verwendet. Die Farben konnen 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 Lange wertet nur die angegebene Lange an Bytes der Eingabe aus. -o, --two-bytes-octal Oktale Zwei-Byte-Anzeige. Dies zeigt den Eingabeversatz in hexadezimaler Form, gefolgt von acht durch Leerraume getrennten, sechsspaltigen, mittels Nullen aufgefullten Zwei-Byte-Einheiten der Eingabedaten und in oktaler Notation pro Zeile an. -s, --skip Versatz uberspringt den angegebenen Versatz an Bytes vom Beginn der Eingabe. -v, --no-squeezing veranlasst hexdump, alle Eingabedaten anzuzeigen. Ohne die Option -v wird samtliche Anzahl Ausgabezeilengruppen, die identisch zur unmittelbar vorausgehenden Ausgabezeilengruppe waren (ausser den Eingabeversatzen), 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 Leerraume getrennten, vierspaltigen, mittels Nullen aufgefullten 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. Fur 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. FORMATE Eine Formatzeichenkette enthalt eine beliebige Anzahl an Formatierungseinheiten, die durch Leerzeichen getrennt sind. Eine Formatierungseinheit einhalt bis zu drei Eintrage: Einen Iterationszahler, einen Byte-Zahler und ein Format. Der Iterationszahler ist eine optionale positive Ganzzahl, deren Vorgabe 1 ist. Jedes Format wird so oft angewendet, wie der Iterationszahler angibt. Der Byte-Zahler 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-Zahler angegeben ist, muss nach dem Iterationszahler und/oder vor dem Byte-Zahler ein einzelner Schragstrich gesetzt werden, um die beiden Angaben eindeutig voneinander zu trennen. Samtlicher Leerraum vor oder nach dem Schragstrich wird ignoriert. Das Format ist verpflichtend und muss in doppelte Anfuhrungszeichen (" ") 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-Zahler oder eine Feldgenauigkeit ist fur 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 unterstutzt. 4. Die im C-Standard beschriebenen aus einem Zeichen bestehenden Escape-Sequenzen werden unterstutzt: +-----------------------+----+ |NULL | \0 | +-----------------------+----+ |<Warnzeichen> | \a | +-----------------------+----+ |<Ruckschritt> | \b | +-----------------------+----+ |<Seitenvorschub> | \f | +-----------------------+----+ |<neue Zeile> | \n | +-----------------------+----+ |<Wagenrucklauf> | \r | +-----------------------+----+ |<Tabulator> | \t | +-----------------------+----+ |<vertikaler Tabulator> | \v | +-----------------------+----+ Konversionszeichenketten Das Dienstprogramm hexdump unterstutzt auch die folgenden zusatzlichen Konversionszeichenketten. _a[dox] zeigt den Eingabeversatz des nachsten anzuzeigenden Bytes kumulativ fur alle Eingabedateien an. Die angehangten 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 ausgefuhrt wird, wenn samtliche Eingabedateien verarbeitet wurden. _c gibt Zeichen im Standard-Zeichensatz aus. Nicht darstellbare Zeichen werden in einer aus drei Zeichen bestehenden, mit Nullen aufgefullten oktalen Schreibweise dargestellt. Das gilt nicht fur jene, die in der Standard-Escape-Notation dargestellt werden konnen (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 grosser 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 vollstandige 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 Ubereinstimmung gepruft wird, dargestellt in hexadezimaler oder oktaler Basis oder als Zeichenkette. Bitte beachten Sie, dass die ublichen C-Escape-Sequenzen innerhalb von Farbeinheiten von hexdump nicht interpretiert werden. VERSATZ Ein Versatz oder Versatzbereich, in dem auf Ubereinstimmung gepruft werden soll. Bitte beachten Sie, dass ein einzelner VERSATZ_BEGINN den gleichen Wert fur ENDE verwendet. Zahler Die vorgegebenen und unterstutzten Byte-Zahler fur die Konversionszeichen sind wie folgt: %_c, %_p, %_u, %c Nur Ein-Byte-Zahler. %d, %i, %o, %u, %X, %x Vier Byte als Standard, aber auch ein, zwei und vier Byte werden unterstutzt. %E, %e, %f, %G, %g Acht Byte als Standard, aber auch Vier-Byte-Zahler werden unterstutzt. Die Menge der von jeder Formatzeichenkette interpretierten Daten ist die Summe der fur jede Formateinheit erforderlichen Daten, welches das Produkt aus dem Iterationszahler mit dem Byte-Zahler oder, falls der Byte-Zahler nicht angegeben ist, das Produkt aus dem Iterationszahler mit der Anzahl vom Format benotigten Bytes ist. Die Eingabe wird in Blocken verarbeitet, wobei ein Block als die grosste Menge der von einer Formatzeichenkette bezeichneten Daten definiert ist. Bei Formatzeichenketten, die weniger als eine Eingabeblockgrosse an Daten auswerten und deren letzte Formateinheit sowohl einen Anteil an Bytes interpretiert und als auch keinen angegebenen Iterationszahler haben, wird der Iterationszahler erhoht, bis der gesamte Eingabeblock verarbeitet wurde oder es nicht mehr genug verbleibende Daten im Block gibt, um der Formatzeichenkette zu entsprechen. Falls ein Iterationszahler grosser als 1 ist, entweder als Ergebnis der Benutzerangabe oder wenn hexdump den Iterationszahler wie oben beschrieben verandert hat, werden wahrend der letzten Iteration keine abschliessenden Leerzeichen ausgegeben. Es ist ein Fehler, sowohl einen Byte-Zahler 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 aufgefullt, um alle verfugbaren Daten anzuzeigen (das heisst, jede Formateinheit, die uber das Ende der Daten hinausgeht, zeigt einige NULL-Bytes an). Weitere Ausgaben solcher Formatzeichenketten werden durch die aquivalente Anzahl Leerzeichen ersetzt. Eine aquivalente Anzahl Leerzeichen ist als die Anzahl der durch das Konversionszeichen s ausgegebenen Leerzeichen definiert. Diese haben die gleiche Feldbreite und Genauigkeit wie das ursprungliche Konversionszeichen oder die ursprungliche Konversionszeichenkette, aber bei allen werden die Konversionszeichen >>+<<, >> << und >>#<< entfernt und referenzieren eine NULL-Zeichenkette. Falls keine Formatzeichenketten angegeben sind, ist die standardmassige Anzeige sehr ahnlich zum Ausgabeformat mit der Option -x (die Option -x verursacht mehr Platzverbrauch zwischen den Formateinheiten als in der standardmassigen Ausgabe). EXIT-STATUS hexdump gibt 0 bei Erfolg und > 0 zuruck, wenn ein Fehler aufgetreten ist. KONFORM ZU Der Befehl hexdump sollte zu IEEE Std 1003.2 (>>POSIX.2<<) kompatibel sein. BEISPIELE 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 fur MBR-Bootsignatur: Die Adressen in Cyan hervorheben und die Bytes an Position 510 und 511 grun 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" FARBEN Die farbige Darstellung der Ausgabe wird uber die Funktionen in terminal-colors.d(5) gesteuert. Die implizierte Einfarbung kann deaktiviert werden, indem Sie folgende (leere) Datei anlegen: /etc/terminal-colors.d/hexdump.disable fur den Befehl hexdump oder fur 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 ausser Kraft. Beachten Sie, dass die Einfarbung der Ausgabe standardmassig aktiviert sein konnte und in diesem Fall die terminal-colors.d-Verzeichnisse noch nicht zwangslaufig vorhanden sein mussen. FEHLER MELDEN For bug reports, use the issue tracker <https://github.com/util-linux/util-linux/issues>. VERFUGBARKEIT Der Befehl hexdump ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv <https://www.kernel.org/pub/linux/utils/util-linux/> heruntergeladen werden kann. util-linux 2.41 2025-03-29 HEXDUMP(1)