GNU/Linux >> Linux Esercitazione >  >> Linux

Esempi di comandi OD Linux (Octal Dump)

Il comando od in Linux viene utilizzato per generare il contenuto di un file in diversi formati con il formato ottale come predefinito.

Questo comando è particolarmente utile durante il debug di script Linux per modifiche o caratteri indesiderati.

Questo articolo spiega come usare od command con alcuni esempi.

La sintassi di base di questo comando è:

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

1. Visualizza il contenuto del file in formato ottale usando l'opzione -b

Quello che segue è il file di input utilizzato per questo esempio:

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

Ora esegui od comando su questo file di input.

$ 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

Quindi vediamo che l'output è stato prodotto in formato ottale. La prima colonna nell'output di od rappresenta l'offset di byte nel file.

2. Visualizza il contenuto del file in formato carattere usando l'opzione -c

Utilizzando lo stesso file di input (come nell'esempio 1 sopra).

$ 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

Quindi vediamo che l'output è stato prodotto nel formato del carattere.

3. Visualizza gli offset dei byte in diversi formati usando l'opzione -A

L'offset di byte può essere visualizzato in uno dei seguenti formati:

  • Esadecimale (usando -x insieme a -A)
  • Ottale (usando -o insieme a -A)
  • Decimale (usando -d insieme a -A)

Di seguito sono riportati esempi di offset in diversi formati :

$ 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

Quindi vediamo che secondo l'input fornito all'opzione -A, la prima colonna (che contiene l'offset di byte) viene visualizzata in diversi formati.

4. Non visualizzare informazioni sull'offset utilizzando l'opzione '-An'

Considera il seguente esempio:

$ 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

Quindi vediamo che le informazioni relative all'offset dei byte non sono state visualizzate.

5. Visualizza l'output dopo aver saltato alcuni byte

Ciò si ottiene usando l'opzione -j. Ecco un esempio :

$ 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

Se confrontiamo l'output sopra con l'output nell'esempio 2, possiamo vedere che i 9 byte iniziali sono stati ignorati dall'output.

6. Visualizza i byte limitati nell'output usando l'opzione -N

Questo è l'opposto dell'opzione -j discussa nell'esempio 5 sopra. Ecco un esempio :

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

Quindi vediamo che nell'output sono stati visualizzati solo 9 byte.

7. Visualizza l'output come numeri interi decimali usando l'opzione -i

Considera il seguente esempio:

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

Se combiniamo -i con -b, fornisce maggiori informazioni su come vengono visualizzati gli interi decimali. Ecco un esempio :

$ 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

Quindi l'output sopra mostra come l'output ottale viene visualizzato come output intero.

8. Visualizza l'output come unità esadecimali a 2 byte utilizzando l'opzione -x

Considera il seguente esempio:

$ 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

Quindi vediamo che l'output è stato visualizzato in termini di unità esadecimali a 2 byte.

9. Visualizza i contenuti come unità ottali a due byte usando l'opzione -o

Considera il seguente esempio:

$ 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

Si noti che il comando od visualizza lo stesso output quando viene eseguito senza alcuna opzione. Ecco un esempio:

$ 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. Personalizza la larghezza dell'output usando l'opzione -w

Considera il seguente esempio:

$ 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

Quindi vediamo che la larghezza dell'output è stata ridotta a 1 nell'output sopra.

11. Output duplicati usando l'opzione -v

Come si può osservare nell'output dell'esempio 10 sopra, è stato stampato un *. Questo viene fatto per sopprimere l'output di righe uguali o duplicate. Ma tramite l'opzione -v queste righe possono anche essere stampate. Ecco un esempio :

$ 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. Accetta l'input dalla riga di comando usando –

Considera il seguente esempio:

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

Quindi vediamo che prima l'input è stato dato tramite stdin e poi dopo aver premuto ctrl+d un paio di volte è stato visualizzato l'output del comando od.

13. Mostra i caratteri nascosti usando il comando od

Considera il seguente input :

The Geek ^MStuff

Se un file contenente la stringa precedente viene stampato utilizzando il comando cat, viene visualizzato il seguente output:

 $ cat input
Stuffeek

Ma come puoi vedere, questo non è esattamente ciò che contiene il file.

Ora usiamo il comando od con l'opzione -c su questo:

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

Quindi il comando od mostra chiaramente che un ritorno a capo senza un avanzamento riga è stato inserito tra le stringhe a causa del quale veniva mostrato un output incasinato dal comando cat.


Linux
  1. sa Esempi di comandi in Linux

  2. w Esempi di comandi in Linux

  3. ac Esempi di comandi in Linux

  4. Esempi di comandi df in Linux

  5. du Esempi di comandi in Linux

9 Esempi di comandi tee in Linux

9 esempi di comandi diff in Linux

Comando IP Linux con esempi

15 Comando Linux ps con esempi

8 Esempi di comandi LDD in Linux

Esempi di comandi id in Linux