GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux xxd Command Tutorial für Anfänger (mit Beispielen)

Benötigen Sie einen Hex-Dump für eine Textdatei? Suchen Sie nach einem Befehlszeilendienstprogramm, das dies kann? Nun, Sie haben Glück, denn es gibt einen Befehl namens xxd das kann das für dich tun. In diesem Tutorial werden wir xxd anhand einiger leicht verständlicher Beispiele besprechen. Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele hier auf einem Ubuntu 18.04 LTS-Rechner getestet wurden.

Wofür wird der Linux-xxd-Befehl verwendet?

Mit dem Befehl xxd in Linux können Sie einen Hexdump erstellen oder sogar das Gegenteil tun. Es folgt die Syntax:

xxd [OPTIONEN] [Datei]

Und so erklärt es die Manpage des Tools:

xxd  erstellt  einen Hex-Dump einer bestimmten Datei oder Standardeingabe. Es kann auch einen Hex-Dump zurück in seine ursprüngliche binäre Form konvertieren. Wie
uuencode(1) und uudecode(1) ermöglicht es die Übertragung von Binärdaten in einer "mail-sicheren" ASCII-Darstellung, hat aber den  Vorteil
der Dekodierung zur Standardausgabe. Außerdem kann es zum Patchen von Binärdateien verwendet werden.

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie xxd funktioniert.

Q1. Wie verwende ich den xxd-Befehl?

Es ist einfach. Angenommen, Sie haben eine Textdatei „test.txt“ mit folgendem Inhalt:

Nein.|Land|Ja/Nein
01|Indien|J
02|USA|J
03|Australien|J

04|China| N
05|Russland|Y
06|Japan|Y

07|Singapur|Y
08|Südkorea|N
09|Finnland| Y
10|Irland|Y

So können Sie xxd verwenden, um den Dateiinhalt in Hex umzuwandeln:

xxd test.txt

Und hier ist die Ausgabe:

00000000:4e6f 2e7c 436f 756e 7472 797c 5965 732f  Nein.|Land|Ja/
00000010:4e6f 0a30 317c 496e 6469 617c 590a 3032  Nr.01|Indien|Y.05 537c 590a 3033 7c41 7573 7472 616c | US | Y.03 | Austral
00000030:6961 7c59 0a0a 3034 7c43 6869 6e61 7c4e ia | y..04 | China | N
00000040:0a30 357C 5275 73 73 7373 6969 7c59 0a30 367c .05 | Russland | Y.06 |
00000050:4A61 7061 6e7c 590a 0a30 377c 5369 6e67 Japan | Y..07 | Sing
000060:7061 6f72 657c 590a 3038 7C53061 6f72 657c 590a 3038 7C53 6f75 7f72 657c 590a 3038 7c53 6f75 Y.08|Süd
00000070:204b 6f72 6561 7c4e 0a30 397c 4669 6e61   Korea|N.09|Fina
00000080:6c61 6e64 7c59 0a31 307c 4972 656c /Irelan.10  Land|>00000090:647c 590a                               d|Y.

Q2. Wie überspringe ich ein paar Zeilen mit xxd?

Angenommen, Sie möchten keinen Hex-Dump der vollständigen Datei. Stattdessen möchten Sie, dass das Tool mit der Konvertierung ab einer bestimmten Zeile beginnt. Dann kann dies mit dem Befehl -s erreicht werden.

Wenn Sie zum Beispiel möchten, dass xxd ab Zeile 3 einen Hex-Dump erzeugt, dann teilen Sie xxd dies folgendermaßen mit:

xxd -s 0x30 test.txt

Hier ist die erzeugte Ausgabe:

00000030:6961 7c59 0a0a 3034 7c43 6869 6e61 7c4e  ia|Y..04|China|N
00000040:0a30 357c 5275 7373 6961 7c59 0a30 367c  .05|
Y.05|Russland| 00000050:4A61 7061 6E7C 590A 0A30 377C 5369 6E67 Japan | Y..07 | Sing
00000060:7061 6f72 657c 590a 3038 7c53 6f75 7468 Paore | Y.08 | South | 397c 4669 6e61 Korea | N.09 | Fina
00000080:6c61 6e64 7c59 0a31 307c 4972 656c 616e Land | Y.10 | Irelan
00000090:647c 590a d | y.

Sie können also sehen, dass der Hex-Dump in diesem Fall ab Zeile 3 erzeugt wird.

Q3. Wie kann man die xxd-Ausgabe auf eine bestimmte Länge begrenzen?

Im vorherigen Abschnitt haben wir besprochen, wie man xxd dazu bringen kann, von einem bestimmten Punkt an mit der Konvertierung zu beginnen. Aber es gibt auch eine Möglichkeit, die Konvertierung auf einen bestimmten Punkt zu beschränken. Dies kann mit der Befehlszeilenoption -l erfolgen.

Um beispielsweise sicherzustellen, dass xxd nur für die ersten drei Zeilen von test.txt einen Dump erstellt, verwenden Sie es folgendermaßen:

xxd -l 0x30 test.txt

Hier ist die Ausgabe, die es produziert hat:

00000000:4e6f 2e7c 436f 756e 7472 797c 5965 732f  Nein.|Land|Ja/
00000010:4e6f 0a30 317c 496e 6469 617c 590a 3032  Nr.01|Indien|Y.05 537c 590a 3033 7c41 7573 7472 616c  |US|Y.03|Austral

Q4. Wie wird die Spaltenlänge eingestellt?

Wenn Sie möchten, dass xxd weniger oder mehr Spalten in der Ausgabe erzeugt, verwenden Sie die Option -c und geben Sie dort die Anzahl der Spalten an. Hier ist ein Beispielbefehl, der diese Option verwendet:

xxd -c 5 test.txt

Und hier ist die Ausgabe:

00000000:4e6f 2e7c 43  Nein.|C
00000005:6f75 6e74 72  ountr
0000000a:797c 5965 73  j|Ja
0000000f:2f4e 6f0a 30  /Nr.0
>00000014:317c 496e 64  1|Ind
00000019:6961 7c59 0a  ia|Y.
0000001e:3032 7c55 53  02|US
00000023:7c59 0a30 33  |Y.03
>00000028:7c41 7573 74  |Aust
0000002d:7261 6c69 61  ralia
00000032:7c59 0a0a 30  |Y..0
00000037:347c 4368 69  4|Chi0
030:0 6e61 7c4e 0a  na|N.
00000041:3035 7c52 75  05|Ru
00000046:7373 6961 7c  ssia|
0000004b:590a 3036 7c  Y.06|
000040610:000040050 7061 6e  Japan
00000055:7c59 0a0a 30  |Y..0
0000005a:377c 5369 6e  7|Sin
0000005f:6770 616f 72  gpaor
00000064:657c 30 9 0a| Y.0
00000069:387c 536f 75  8|Sou
0000006e:7468 204b 6f  th Ko
00000073:7265 617c 4e  rea|N
00000078:0a30 397c 46.  .09 | F
0000007d:696e 616c 61  inala
00000082:6e64 7c59 0a  nd|Y.
00000087:3130 7c49 72  10|Ir
0000008c:656c 616e 64  eland
00000091:7c59 0a       |Y.

Sie können also sehen, dass nur 5 Spalten in der Ausgabe erzeugt wurden.

F5. Wie bringt man xxd dazu, einen Binär-Dump zu erzeugen?

Ja, das ist auch möglich. Die Befehlszeilenoption -b bewirkt, dass xxd einen Dump in Binärziffern erzeugt. Hier ist, was die Manpage über dieses Tool sagt:

-b | -bits
Wechselt zu Bit-Dump (Binärziffern) statt Hexdump. Diese Option schreibt Oktetts als achtstellige "1" und  "0" statt
eines normalen hexadezimalen Dumps. Jeder Zeile geht eine hexadezimale Zeilennummer voran, gefolgt von einer ASCII- (oder ebcdic)
Darstellung. Die Befehlszeilenschalter -r, -p, -i funktionieren in diesem Modus nicht.

Hier ist ein Beispiel:

Schlussfolgerung

Wie Sie sehen, ist der Befehl xxd nützlich, wenn Sie mit dem Inhalt von Hex- und Binärdateien arbeiten. Hier, in diesem Tutorial, haben wir nur einige grundlegende Optionen besprochen, die xxd bietet. Wenn Sie mit dem Üben fertig sind, gehen Sie zur Manpage des Tools, um mehr darüber zu erfahren.


Linux
  1. Linux expand Command Tutorial für Anfänger (mit Beispielen)

  2. Linux-Factor-Befehls-Tutorial für Anfänger (mit Beispielen)

  3. Linux yes Command Tutorial für Anfänger (mit Beispielen)

  4. Linux nproc Command Tutorial für Anfänger (mit Beispielen)

  5. Linux tac Command Tutorial für Anfänger (mit Beispielen)

Linux sha1sum Command Tutorial für Anfänger (mit Beispielen)

Linux Look Command Tutorial für Anfänger (mit Beispielen)

Linux-Lsattr-Befehls-Tutorial für Anfänger (mit Beispielen)

Linux tload Command Tutorial für Anfänger (mit Beispielen)

Linux znew Command Tutorial für Anfänger (mit Beispielen)

Linux tr Command Tutorial für Anfänger (mit Beispielen)