GNU/Linux >> Znalost Linux >  >> Linux

Linux xxd Command Tutorial pro začátečníky (s příklady)

Potřebujete hexadecimální výpis pro textový soubor? Hledáte nástroj příkazového řádku, který to dokáže? Máte štěstí, protože existuje příkaz nazvaný xxd který to může udělat za vás. V tomto tutoriálu budeme diskutovat o xxd pomocí několika snadno pochopitelných příkladů. Ale než to uděláme, stojí za zmínku, že všechny příklady zde byly testovány na počítači Ubuntu 18.04 LTS.

K čemu se používá příkaz Linux xxd?

Příkaz xxd v Linuxu vám umožňuje vytvořit hexdump nebo dokonce udělat opak. Následuje jeho syntaxe:

xxd [MOŽNOSTI] [soubor]

A zde je návod, jak to vysvětluje manuálová stránka nástroje:

xxd  vytvoří  hexadecimální výpis daného souboru nebo standardního vstupu. Může také převést hexadecimální výpis zpět do jeho původní binární podoby. Podobně jako
uuencode(1) a uudecode(1) umožňuje přenos binárních dat v reprezentaci ASCII „bezpečné pro poštu“, ale má  výhodu
dekódování na standardní výstup. Navíc jej lze použít k provádění oprav binárních souborů.

Následuje několik příkladů ve stylu otázek a odpovědí, které by vám měly poskytnout lepší představu o tom, jak xxd funguje.

O1. Jak používat příkaz xxd?

Je to jednoduché. Předpokládejme například, že máte textový soubor 'test.txt' s obsahem, jak je uvedeno níže:

Ne.|Země|Ano/Ne
01|Indie|A
02|USA|A
03|Austrálie|A

04|Čína| N
05|Rusko|A
06|Japonsko|A

07|Singapur|A
08|Jižní Korea|N
09|Finsko| Y
10|Irsko|Y

Zde je návod, jak můžete pomocí xxd převést obsah souboru na hex:

xxd test.txt

A tady je výstup:

00000000:4e6f 2e7c 436f 756e 7472 797c 5965 732f  Č.|Země|Ano/
00000010:4e6f 0a30 317c 4796e 200.07 00 02 00 0596e 4696e 2 537C 590A 3033 7C41 7573 7472 616C | US | Y.03 | Austral
00000030:6961 7C59 0A0A 3034 7C43 6869 6E61 7C4E IA | Y..04 | Čína | 7C59 0A30 367C .05 | Rusko | Y.06 |
00000050:4A61 7061 6E7C 590A 0A30 377C 5369 6E67 Japonsko Y.08|Jih
00000070:204b 6f72 6561 7c4e 0a30 397c 4669 6e61   Korea|N.09|Fina
00000080:6c61 67519964 67561906 67 619964 707>00000090:647c 590a                                d|Y.

O2. Jak přeskočit pár řádků pomocí xxd?

Předpokládejme, že nechcete hex výpis celého souboru. Místo toho chcete, aby nástroj začal převádět z určitého řádku. Pak toho lze dosáhnout pomocí příkazu -s.

Pokud například chcete, aby xxd vytvořilo hexadecimální výpis od řádku 3, pak takto řeknete xxd, aby to udělal:

xxd -s 0x30 test.txt

Zde je vytvořený výstup:

00000030:6961 7c59 0a0a 3034 7c43 6869 6e61 7c4e  ia|Y..04|Čína|N
00000040:0a30 357c 57376 739.5 R 00000050:4A61 7061 6E7C 590A 0A30 377C 5369 6E67 Japonsko | y..07 | Sing
00000060:7061 6F72 6561 6C 6F72 7468 PAOOR 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.

Takže můžete vidět, že v tomto případě je hexadecimální výpis vytvořen na řádku 3 a dále.

O3. Jak omezit výstup xxd na konkrétní délku?

V předchozí části jsme diskutovali o tom, jak přimět xxd začít konvertovat od určitého bodu. Existuje však také způsob, jak omezit jeho převod na určitý bod. To lze provést pomocí volby příkazového řádku -l.

Chcete-li se například ujistit, že xxd vytvoří výpis pouze pro první tři řádky souboru test.txt, použijte jej následujícím způsobem:

xxd -l 0x30 test.txt

Zde je výstup, který vytvořil:

00000000:4e6f 2e7c 436f 756e 7472 797c 5965 732f  Č.|Země|Ano/
00000010:4e6f 0a30 317c 4796e 200.07 00 02 00 0596e 4696e 2 537c 590a 3033 7c41 7573 7472 616c  |US|Y.03|Austrálie

4. Jak nastavit délku sloupce?

Pokud chcete, aby xxd vytvořilo méně nebo více sloupců ve výstupu, použijte volbu -c a zadejte počet sloupců. Zde je příklad příkazu používajícího tuto volbu:

xxd -c 5 test.txt

A tady je výstup:

00000000:4e6f 2e7c 43  č.|C
00000005:6f75 6e74 72  před
0000000a:797c 5965 73  y|0 f:3 y|006 /004 0.00>00000014:317c 496e 64  1|Ind
00000019:6961 7c59 0a  ia|Y.
0000001e:3032 7c55 53<02|03 03:07
00000028:7c41 7573 74  |Aust
0000002d:7261 6c69 61  ralia
00000032:7c59 0a0a 30  |Y..0
00000041:3035 7c52 75  05|Ru
00000046:7373 6961 7c  ssia|
0000004b:06 06 06 06/06 /06/06 /06 /06 7061 6e  Japonsko
00000055:7c59 0a0a 30  |Y..0
0000005a:377c 5369 6e  7|Sin
0000005f<> 6770 20709 g:6770 20706f Y.0
00000069:387c 536f 75  8|Sou
0000006e:7468 204b 6f  th Ko
00000073:7265 617c 4e / 07 04 03:9 9 F
0000007d:696e 616c 61  inala
00000082:6e64 7c59 0a  nd|Y.
00000087:3130 7c49 72  10>60 008
00000091:7c59 0a       |Y.

Takže můžete vidět, že na výstupu bylo vyrobeno pouze 5 sloupců.

O5. Jak přimět xxd produkovat binární výpis?

Ano, i to je možné. Volba -b příkazového řádku způsobí, že xxd vytvoří výpis v binárních číslicích. Zde je to, co o tomto nástroji říká manuálová stránka:

-b | -bits
Přepne na výpis bitů (binární číslice) místo hexdump. Tato možnost zapíše oktety jako osm číslic „1“ a  „0“ s  namísto 
  normálního  hexadecimálního  výpisu. Každému řádku předchází číslo řádku v šestnáctkové soustavě a za ním následuje zobrazení
ascii (nebo ebcdic). Přepínače příkazového řádku -r, -p, -i v tomto režimu nefungují.

Zde je příklad:

Závěr

Takže můžete vidět, že příkaz xxd je užitečný, pokud pracujete s hexadecimálním a binárním obsahem souborů. Zde, v tomto tutoriálu, jsme právě probrali některé základní možnosti, které xxd nabízí. Až si je procvičíte, přejděte na manuálovou stránku nástroje, kde se o něm dozvíte více.


Linux
  1. Rozšíření Linuxu Command Tutorial pro začátečníky (s příklady)

  2. Výukový program pro Linux tac Command pro začátečníky (s příklady)

  3. Uživatelé Linuxu Výukový program příkazů pro začátečníky (s příklady)

  1. Výukový program příkazů Linux factor pro začátečníky (s příklady)

  2. Výukový program příkazu Linux sum pro začátečníky (s příklady)

  3. Výukový program příkazu spánku pro Linux pro začátečníky (s příklady)

  1. Linux ano Příkazový kurz pro začátečníky (s příklady)

  2. Linux nproc Command Tutorial pro začátečníky (s příklady)

  3. Výukový program příkazů se základním názvem Linuxu pro začátečníky (s příklady)