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

Beispiele für Linux-OD-Befehle (oktaler Dump)

Der Befehl od in Linux wird verwendet, um den Inhalt einer Datei in verschiedenen Formaten auszugeben, wobei das Oktalformat der Standard ist.

Dieser Befehl ist besonders nützlich beim Debuggen von Linux-Skripten auf unerwünschte Änderungen oder Zeichen.

Dieser Artikel erklärt anhand einiger Beispiele die Verwendung des Befehls od.

Die grundlegende Syntax dieses Befehls lautet:

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

1. Zeigt den Inhalt der Datei im Oktalformat mit der Option -b an

Die folgende Eingabedatei wird für dieses Beispiel verwendet:

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

Führen Sie nun den od-Befehl für diese Eingabedatei aus.

$ 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

Wir sehen also, dass die Ausgabe im Oktalformat erzeugt wurde. Die erste Spalte in der Ausgabe von od repräsentiert den Byte-Offset in file.

2. Zeigen Sie den Inhalt der Datei im Zeichenformat mit der Option -c an

Verwendung derselben Eingabedatei (wie in Beispiel 1 oben).

$ 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

Wir sehen also, dass die Ausgabe im Zeichenformat erzeugt wurde.

3. Zeigen Sie die Byte-Offsets in verschiedenen Formaten mit der Option -A

an

Der Byte-Offset kann in einem der folgenden Formate angezeigt werden:

  • Hexadezimal (unter Verwendung von -x zusammen mit -A)
  • Oktal (unter Verwendung von -o zusammen mit -A)
  • Dezimal (unter Verwendung von -d zusammen mit -A)

Im Folgenden finden Sie Beispiele für Offsets in verschiedenen Formaten:

$ 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

Wir sehen also, dass gemäß der Eingabe an die Option -A die erste Spalte (die den Byte-Offset enthält) in verschiedenen Formaten angezeigt wird.

4. Zeigen Sie keine Offset-Informationen mit der Option „-An“ an

Betrachten Sie das folgende Beispiel:

$ 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

Wir sehen also, dass Informationen zum Byte-Offset nicht angezeigt wurden.

5. Zeigt die Ausgabe an, nachdem einige Bytes übersprungen wurden

Dies wird durch die Verwendung der Option -j erreicht. Hier ist ein Beispiel:

$ 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

Wenn wir die obige Ausgabe mit der Ausgabe in Beispiel 2 vergleichen, können wir sehen, dass die ersten 9 Bytes von der Ausgabe übersprungen wurden.

6. Zeige begrenzte Bytes in der Ausgabe mit der Option -N an

Dies ist das Gegenteil der Option -j, die oben in Beispiel 5 besprochen wurde. Hier ist ein Beispiel:

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

Wir sehen also, dass nur 9 Bytes in der Ausgabe angezeigt wurden.

7. Anzeige der Ausgabe als Dezimalzahlen mit der Option -i

Betrachten Sie das folgende Beispiel:

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

Wenn wir -i mit -b kombinieren, erhalten Sie mehr Informationen darüber, wie Dezimalzahlen angezeigt werden. Hier ist ein Beispiel:

$ 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

Die obige Ausgabe zeigt also, wie die oktale Ausgabe als ganzzahlige Ausgabe angezeigt wird.

8. Zeigt die Ausgabe als hexadezimale 2-Byte-Einheiten mit der Option -x an

Betrachten Sie das folgende Beispiel:

$ 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

Wir sehen also, dass die Ausgabe in hexadezimalen 2-Byte-Einheiten angezeigt wurde.

9. Zeigen Sie den Inhalt mit der Option -o

als Zwei-Byte-Oktaleinheiten an

Betrachten Sie das folgende Beispiel:

$ 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

Beachten Sie, dass der Befehl od dieselbe Ausgabe anzeigt, wenn er ohne Option ausgeführt wird. Hier ist ein Beispiel:

$ 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. Passen Sie die Ausgabebreite mit der Option -w an

Betrachten Sie das folgende Beispiel:

$ 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

Wir sehen also, dass die Ausgabebreite in der obigen Ausgabe auf 1 reduziert wurde.

11. Duplikate mit der Option -v ausgeben

Wie in der Ausgabe von Beispiel 10 oben zu sehen ist, wurde ein * gedruckt. Dies geschieht, um die Ausgabe gleicher oder doppelter Zeilen zu unterdrücken. Aber durch die Option -v können diese Zeilen auch gedruckt werden. Hier ist ein Beispiel:

$ 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. Akzeptieren Sie Eingaben von der Befehlszeile mit –

Betrachten Sie das folgende Beispiel:

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

Wir sehen also, dass zuerst die Eingabe über stdin erfolgte und dann nach mehrmaligem Drücken von Strg+d die Ausgabe des od-Befehls angezeigt wurde.

13. Zeigt versteckte Zeichen mit dem od-Befehl an

Betrachten Sie die folgende Eingabe:

The Geek ^MStuff

Wenn eine Datei, die die obige Zeichenfolge enthält, mit dem cat-Befehl gedruckt wird, wird die folgende Ausgabe angezeigt:

 $ cat input
Stuffeek

Aber wie Sie sehen können, ist dies nicht genau das, was die Datei enthält.

Jetzt können wir den od-Befehl mit der Option -c darüber verwenden:

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

So zeigt der od-Befehl deutlich an, dass zwischen den Strings ein Wagenrücklauf ohne Zeilenvorschub eingefügt wurde, wodurch der cat-Befehl eine verkorkste Ausgabe anzeigte.


Linux
  1. 7 Beispiele für Linux-df-Befehle

  2. sa-Befehlsbeispiele in Linux

  3. ac-Befehlsbeispiele in Linux

  4. df-Befehlsbeispiele in Linux

  5. du-Befehlsbeispiele in Linux

9 Beispiele für tee-Befehle unter Linux

9 diff-Befehlsbeispiele in Linux

Linux-IP-Befehl mit Beispielen

15 Linux-PS-Befehl mit Beispielen

8 Beispiele für LDD-Befehle unter Linux

id-Befehlsbeispiele in Linux