Linux xxd

Linux 命令大全Linux-Befehlsenzyklopädie

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.

Linux 命令大全Linux-Befehlsenzyklopädie

Andere Erweiterungen