GNU/Linux >> Znalost Linux >  >> Linux

Příklady příkazů OD pro Linux (osmičkový výpis)

Příkaz od v Linuxu se používá k výstupu obsahu souboru v různých formátech, přičemž výchozí je osmičkový formát.

Tento příkaz je užitečný zejména při ladění linuxových skriptů na nežádoucí změny nebo znaky.

Tento článek vysvětluje, jak používat příkaz od, na několika příkladech.

Základní syntaxe tohoto příkazu je:

od [OPTION]... [FILE]...

1. Zobrazte obsah souboru v osmičkovém formátu pomocí volby -b

Vstupní soubor použitý pro tento příklad je následující:

$ cat input
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Nyní proveďte příkaz od na tomto vstupním souboru.

$ od -b input
0000000 061 012 062 012 063 012 064 012 065 012 066 012 067 012 070 012
0000020 071 012 061 060 012 061 061 012 061 062 012 061 063 012 061 064
0000040 012 061 065 012 061 066 012 061 067 012 061 070 012 061 071 012
0000060 062 060 012
0000063

Vidíme tedy, že výstup byl vytvořen v osmičkovém formátu. První sloupec ve výstupu od představuje bajtový offset v souboru.

2. Zobrazte obsah souboru ve znakovém formátu pomocí volby -c

Pomocí stejného vstupního souboru (jako v příkladu 1 výše).

$ od -c input
0000000   1  \n   2  \n   3  \n   4  \n   5  \n   6  \n   7  \n   8  \n
0000020   9  \n   1   0  \n   1   1  \n   1   2  \n   1   3  \n   1   4
0000040  \n   1   5  \n   1   6  \n   1   7  \n   1   8  \n   1   9  \n
0000060   2   0  \n
0000063

Vidíme tedy, že výstup byl vytvořen ve znakovém formátu.

3. Zobrazte bajtové offsety v různých formátech pomocí volby -A

Bytový offset lze zobrazit v kterémkoli z následujících formátů:

  • Hexadecimální (pomocí -x spolu s -A)
  • Osmičková (pomocí -o spolu s -A)
  • Desetinné (pomocí -d spolu s -A)

Níže jsou uvedeny příklady offsetů v různých formátech:

$ od -Ax -c input
000000   1  \n   2  \n   3  \n   4  \n   5  \n   6  \n   7  \n   8  \n
000010   9  \n   1   0  \n   1   1  \n   1   2  \n   1   3  \n   1   4
000020  \n   1   5  \n   1   6  \n   1   7  \n   1   8  \n   1   9  \n
000030   2   0  \n
000033
$ od -Ad -c input
0000000   1  \n   2  \n   3  \n   4  \n   5  \n   6  \n   7  \n   8  \n
0000016   9  \n   1   0  \n   1   1  \n   1   2  \n   1   3  \n   1   4
0000032  \n   1   5  \n   1   6  \n   1   7  \n   1   8  \n   1   9  \n
0000048   2   0  \n
0000051
$ od -Ao -c input
0000000   1  \n   2  \n   3  \n   4  \n   5  \n   6  \n   7  \n   8  \n
0000020   9  \n   1   0  \n   1   1  \n   1   2  \n   1   3  \n   1   4
0000040  \n   1   5  \n   1   6  \n   1   7  \n   1   8  \n   1   9  \n
0000060   2   0  \n
0000063

Vidíme tedy, že podle vstupu dodaného do volby -A je první sloupec (který obsahuje bajtový offset) zobrazen v různých formátech.

4. Nezobrazovat žádné informace o posunu pomocí možnosti „-An“

Zvažte následující příklad:

$ od -An -c input
   1  \n   2  \n   3  \n   4  \n   5  \n   6  \n   7  \n   8  \n
   9  \n   1   0  \n   1   1  \n   1   2  \n   1   3  \n   1   4
  \n   1   5  \n   1   6  \n   1   7  \n   1   8  \n   1   9  \n
   2   0  \n

Vidíme tedy, že informace související s posunem bajtů nebyly zobrazeny.

5. Zobrazit výstup po přeskočení některých bajtů

Toho je dosaženo použitím volby -j. Zde je příklad:

$ od -j9 -c input
0000011  \n   6  \n   7  \n   8  \n   9  \n   1   0  \n   1   1  \n   1
0000031   2  \n   1   3  \n   1   4  \n   1   5  \n   1   6  \n   1   7
0000051  \n   1   8  \n   1   9  \n   2   0  \n
0000063

Pokud porovnáme výše uvedený výstup s výstupem v příkladu 2, můžeme vidět, že počátečních 9 bajtů bylo z výstupu vynecháno.

6. Zobrazte omezené bajty ve výstupu pomocí volby -N

Toto je opak volby -j diskutované v příkladu 5 výše. Zde je příklad:

$ od -N9 -c input
0000000   1  \n   2  \n   3  \n   4  \n   5
0000011

Vidíme tedy, že ve výstupu bylo zobrazeno pouze 9 bajtů.

7. Zobrazte výstup jako dekadická celá čísla pomocí volby -i

Zvažte následující příklad:

$ od -i input
0000000   171051569   171182643   171313717   171444791
0000020   808520249   170995978   822751793   875629107
0000040   171258122   822752817   942737975   171520266
0000060      667698
0000063

Pokud zkombinujeme -i s -b, pak to poskytne více informací o tom, jak se zobrazují celá čísla v desítkové soustavě. Zde je příklad:

$ od -ib input
0000000       171051569       171182643       171313717       171444791
        061 012 062 012 063 012 064 012 065 012 066 012 067 012 070 012
0000020       808520249       170995978       822751793       875629107
        071 012 061 060 012 061 061 012 061 062 012 061 063 012 061 064
0000040       171258122       822752817       942737975       171520266
        012 061 065 012 061 066 012 061 067 012 061 070 012 061 071 012
0000060          667698
        062 060 012
0000063

Takže výše uvedený výstup ukazuje, jak je osmičkový výstup zobrazen jako celočíselný.

8. Zobrazte výstup jako hexadecimální 2bajtové jednotky pomocí volby -x

Zvažte následující příklad:

$ od -x input
0000000 0a31 0a32 0a33 0a34 0a35 0a36 0a37 0a38
0000020 0a39 3031 310a 0a31 3231 310a 0a33 3431
0000040 310a 0a35 3631 310a 0a37 3831 310a 0a39
0000060 3032 000a
0000063

Vidíme tedy, že výstup byl zobrazen v hexadecimálních 2bajtových jednotkách.

9. Zobrazte obsah jako dvoubajtové osmičkové jednotky pomocí volby -o

Zvažte následující příklad:

$ od -o input
0000000 005061 005062 005063 005064 005065 005066 005067 005070
0000020 005071 030061 030412 005061 031061 030412 005063 032061
0000040 030412 005065 033061 030412 005067 034061 030412 005071
0000060 030062 000012
0000063

Všimněte si, že příkaz od zobrazuje stejný výstup, když je spuštěn bez jakékoli volby. Zde je příklad:

$ od  input
0000000 005061 005062 005063 005064 005065 005066 005067 005070
0000020 005071 030061 030412 005061 031061 030412 005063 032061
0000040 030412 005065 033061 030412 005067 034061 030412 005071
0000060 030062 000012
0000063

10. Upravte šířku výstupu pomocí volby -w

Zvažte následující příklad:

$ od -w1 -c -Ad input
0000000   1
0000001  \n
0000002   2
0000003  \n
0000004   3
0000005  \n
0000006   4
0000007  \n
0000008   5
0000009  \n
0000010   6
0000011  \n
0000012   7
0000013  \n
0000014   8
0000015  \n
0000016   9
0000017  \n
0000018   1
0000019   0
0000020  \n
0000021   1
*
0000023  \n
0000024   1
0000025   2
0000026  \n
0000027   1
0000028   3
0000029  \n
0000030   1
0000031   4
0000032  \n
0000033   1
0000034   5
0000035  \n
0000036   1
0000037   6
0000038  \n
0000039   1
0000040   7
0000041  \n
0000042   1
0000043   8
0000044  \n
0000045   1
0000046   9
0000047  \n
0000048   2
0000049   0
0000050  \n
0000051

Vidíme tedy, že šířka výstupu byla ve výše uvedeném výstupu snížena na 1.

11. Výstup duplikátů pomocí volby -v

Jak lze pozorovat na výstupu z příkladu 10 výše, bylo vytištěno *. To se provádí za účelem potlačení výstupu řádků, které jsou stejné nebo duplicitní. Ale přes volbu -v lze tyto řádky také vytisknout. Zde je příklad:

$ od -w1 -v -c -Ad input
0000000   1
0000001  \n
0000002   2
0000003  \n
0000004   3
0000005  \n
0000006   4
0000007  \n
0000008   5
0000009  \n
0000010   6
0000011  \n
0000012   7
0000013  \n
0000014   8
0000015  \n
0000016   9
0000017  \n
0000018   1
0000019   0
0000020  \n
0000021 1 
0000022 1
0000023  \n
0000024   1
0000025   2
0000026  \n
0000027   1
0000028   3
0000029  \n
0000030   1
0000031   4
0000032  \n
0000033   1
0000034   5
0000035  \n
0000036   1
0000037   6
0000038  \n
0000039   1
0000040   7
0000041  \n
0000042   1
0000043   8
0000044  \n
0000045   1
0000046   9
0000047  \n
0000048   2
0000049   0
0000050  \n
0000051

12. Přijměte vstup z příkazového řádku pomocí –

Zvažte následující příklad:

$ od -c -
The Geek Stuff0000000   T   h   e       G   e   e   k       S   t   u   f   f
0000016

Vidíme tedy, že nejprve byl vstup zadán přes stdin a poté po několikanásobném stisknutí ctrl+d se zobrazil výstup příkazu od.

13. Zobrazte skryté znaky pomocí příkazu od

Zvažte následující vstup:

The Geek ^MStuff

Pokud je soubor obsahující výše uvedený řetězec vytištěn pomocí příkazu cat, zobrazí se následující výstup:

 $ cat input
Stuffeek

Ale jak vidíte, není to přesně to, co soubor obsahuje.

Nyní použijte příkaz od s volbou -c přes toto:

$ od -c input
0000000   T   h   e       G   e   e   k      \r   S   t   u   f   f  \n
0000020

Příkaz So od jasně ukazuje, že mezi řetězce byl vložen návrat vozíku bez posunu řádku, díky čemuž příkaz cat zobrazoval chybný výstup.


Linux
  1. JQ Command v Linuxu s příklady

  2. Příklady příkazů rm v Linuxu

  3. Příklady příkazů ps v Linuxu

  1. sa Příklady příkazů v Linuxu

  2. w Příklady příkazů v Linuxu

  3. Příklady příkazů ac v Linuxu

  1. 7 Příklady příkazů Linux df

  2. Příklady příkazů df v Linuxu

  3. du příklady příkazů v Linuxu