Linux xxd
xxd ist ein Befehlszeilentool unter Linux, mit dem Dateien oder Daten zur Anzeige in das Hexadezimalformat konvertiert werden, ähnlich einem Hex-Viewer.
Der Befehl xxd kann Hexadezimaldaten auch wieder in Binärdateien umwandeln.
Der Befehl xxd wird häufig zum Debuggen, zur Analyse von Dateiinhalten und zur Datenkonvertierung verwendet.
Syntaxformat
xxd [options] [inputfile [outputfile]]
- inputfile: Eingabedatei. Wenn nicht angegeben, wird von der Standardeingabe gelesen.
- outputfile: Ausgabedatei. Wenn nicht angegeben, wird auf die Standardausgabe ausgegeben.
Beschreibungen der Optionsparameter:
-r: Hexadezimale Daten zurück in Binärdaten umwandeln (umgekehrte Operation).-p: Ausgabe in fortlaufendem reinem Hex (ohne Offset-Adressen und ASCII).-c cols: Wie viele Bytes pro Zeile, Standard ist 16.-g bytes: Wie viele Bytes pro Gruppe, Standard ist 2.-s offset: Liest ab einem bestimmten Offset in der Datei (negative Zahlen bedeuten, vom Ende der Datei aus zu starten).-l length: Nur Bytes der angegebenen Länge anzeigen.-u: Die ausgegebenen hexadezimalen Zeichen in Großbuchstaben umwandeln.-i: Ausgabe im Format eines C-Arrays.-b: Ausgabe in Binärformat statt Hexadezimal konvertieren.
Häufige Verwendung
Eine Datei im Hexadezimalformat ausgeben:
xxd filename
Dieser Befehl zeigt die Datei `filename` im Hexadezimalformat an.
Standardeingabe in Hexadezimal umwandeln:
echo "Hello World" | xxd
Dies wandelt die Zeichenkette "Hello World" in Hexadezimal um und gibt sie aus.
Die Anzahl der Bytes pro Zeile angeben: Standardmäßig gibt xxd 16 Bytes pro Zeile aus. Sie können den Parameter -c verwenden, um dies zu ändern:
xxd -c 8 filename
Der obige Befehl zeigt 8 Bytes Daten pro Zeile an.
Zurück in die ursprünglichen Daten konvertieren: xxd kann mithilfe des Parameters -r das Hexadezimalformat auch zurück in ursprüngliche Binärdaten konvertieren:
xxd -r hexfile
Dieser Befehl stellt die Hexadezimaldaten in `hexfile` als Binärdatei wieder her.
Nur Hexadezimal anzeigen (ohne ASCII): Verwenden Sie die Option -p, um nur reines Hex ohne die entsprechenden ASCII-Zeichen anzuzeigen:
xxd -p filename
Den Ausgabebereich steuern: Verwenden Sie den Parameter -s, um die Ausgabe ab einem bestimmten Offset in der Datei zu starten, und -l, um die Byte-Länge der Ausgabe anzugeben:
xxd -s 0x10 -l 0x20 filename
Dieser Befehl beginnt bei Offset 0x10 und gibt 0x20 Bytes an Daten aus.
Beispiele
1. Dateiinhalt hexadezimal anzeigen
xxd filename.txt
Dieser Befehl gibt die hexadezimale Darstellung der Datei `filename.txt` aus, standardmäßig mit 16 Datenbytes pro Zeile.
Beispielausgabe:
00000000: 4865 6c6c 6f0a Hello.
2. Anzahl der Bytes pro Zeile angeben
xxd -c 8 filename.txt
8 Bytes pro Zeile anzeigen.
Beispielausgabe:
00000000: 4865 6c6c 6f0a 0000 Hello...
3. Hexadezimale Daten zurück in die Originaldatei wiederherstellen
xxd -r hexfile.txt original.bin
Dieser Befehl stellt die hexadezimalen Daten in `hexfile.txt` in der Binärdatei `original.bin` wieder her.
4. Ab einem bestimmten Offset in der Datei anzeigen
xxd -s 0x10 filename.txt
Hexadezimalen Inhalt ab Offset 0x10 anzeigen.
5. Ausgabe im reinen Hex-Format (ohne Offset-Adressen und ASCII)
xxd -p filename.txt
Gibt reine Hex-Daten aus, alle Daten fortlaufend angeordnet.
Beispielausgabe:
48656c6c6f0a
6. Array-Format in der Sprache C erzeugen
xxd -i filename.txt
Dieser Befehl gibt den Dateiinhalt in Form eines Arrays in der Sprache C aus.
Beispielausgabe:
unsigned char filename_txt[] = {
0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x0a
};
unsigned int filename_txt_len = 6;
7. Hexadezimale Buchstaben der Ausgabe in Großbuchstaben umwandeln
xxd -u filename.txt
Dieser Befehl gibt hexadezimale Buchstaben in Großbuchstaben aus.
Beispielausgabe:
00000000: 4865 6C6C 6F0A Hello.
8. Nur Daten einer bestimmten Länge anzeigen
xxd -l 16 filename.txt
Dieser Befehl zeigt nur die ersten 16 Bytes der Daten an.
9. Daten in binärer Form ausgeben
xxd -b filename.txt
Dieser Befehl zeigt den Dateiinhalt in Binärbits statt in Hexadezimal an.
Beispielausgabe:
00000000: 01001000 01100101 01101100 01101100 01101111 00001010 Hello.Andere Erweiterungen
Linux-Befehlsenzyklopädie