GNU/Linux >> Linux の 問題 >  >> Linux

Linux OD コマンドの例 (8 進ダンプ)

Linux の od コマンドは、ファイルの内容をさまざまな形式で出力するために使用され、デフォルトは 8 進数形式です。

このコマンドは、不要な変更や文字について Linux スクリプトをデバッグする場合に特に役立ちます。

この記事では、od コマンドの使用方法を例を挙げて説明します。

このコマンドの基本的な構文は次のとおりです。

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

1. -b オプションを使用して、ファイルの内容を 8 進形式で表示

以下は、この例で使用される入力ファイルです:

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

この入力ファイルに対して od コマンドを実行します。

$ 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

したがって、出力が 8 進数形式で生成されていることがわかります。 od の出力の最初の列は、ファイル内のバイト オフセットを表します。

2. -c オプションを使用してファイルの内容を文字形式で表示

同じ入力ファイルを使用する (上記の例 1 と同様)。

$ 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

したがって、出力が文字形式で生成されたことがわかります。

3. -A オプションを使用して、さまざまな形式でバイト オフセットを表示します

バイト オフセットは、次のいずれかの形式で表示できます:

  • 16 進数 (-x と -A を併用)
  • 8 進数 (-o と -A を併用)
  • 10 進数 (-d と -A を併用)

以下は、さまざまな形式のオフセットの例です:

$ 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

したがって、-A オプションに指定された入力に従って、最初の列 (バイト オフセットを含む) がさまざまな形式で表示されることがわかります。

4. 「-An」オプションを使用してオフセット情報を表示しない

次の例を考えてみましょう:

$ 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

したがって、バイト オフセット関連の情報が表示されていないことがわかります。

5.いくつかのバイトをスキップした後に出力を表示

これは、-j オプションを使用して実現されます。以下に例を示します:

$ 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

上記の出力を例 2 の出力と比較すると、最初の 9 バイトが出力からスキップされていることがわかります。

6. -N オプションを使用して制限されたバイト数を出力に表示

これは、上記の例 5 で説明した -j オプションの反対です。以下に例を示します:

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

したがって、出力には 9 バイトしか表示されていないことがわかります。

7. -i オプションを使用して出力を 10 進整数として表示

次の例を考えてみましょう:

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

-i と -b を組み合わせると、10 進整数の表示方法に関する詳細情報が得られます。以下に例を示します:

$ 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

したがって、上記の出力は、8 進出力が整数出力としてどのように表示されるかを示しています。

8. -x オプションを使用して出力を 16 進数の 2 バイト単位で表示

次の例を考えてみましょう:

$ 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

出力が 16 進数の 2 バイト単位で表示されていることがわかります。

9. -o オプションを使用して、内容を 2 バイトの 8 進単位で表示

次の例を考えてみましょう:

$ 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

オプションを指定せずに od コマンドを実行すると、同じ出力が表示されることに注意してください。以下に例を示します:

$ 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. -w オプションを使用して出力幅をカスタマイズ

次の例を考えてみましょう:

$ 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

上記の出力では、出力幅が 1 に縮小されていることがわかります。

11. -v オプションを使用して重複を出力

上記の例 10 の出力からわかるように、* が出力されています。これは、同じ行または重複する行の出力を抑制するために行われます。ただし、 -v オプションを使用すると、これらの行も出力できます。以下に例を示します:

$ 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. –

を使用してコマンド ラインからの入力を受け入れる

次の例を考えてみましょう:

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

したがって、最初に stdin を介して入力が与えられ、次に ctrl+d を数回押すと、od コマンドの出力が表示されたことがわかります。

13. od コマンドを使用して非表示の文字を表示

次の入力を検討してください:

The Geek ^MStuff

上記の文字列を含むファイルを cat コマンドを使用して出力すると、次の出力が表示されます:

 $ cat input
Stuffeek

しかし、ご覧のとおり、これは正確にはファイルの内容ではありません。

これで -c オプションを指定して od コマンドを使用できます:

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

そのため、od コマンドは、文字列の間に改行なしのキャリッジ リターンが挿入されたことを明確に表示します。これにより、cat コマンドによってめちゃくちゃな出力が表示されていました。


Linux
  1. LinuxでのJQコマンドと例

  2. 7 Linux df コマンドの例

  3. Linux での rm コマンドの例

  1. Linux での ps コマンドの例

  2. Linux での sa コマンドの例

  3. w Linux でのコマンド例

  1. Linux での ac コマンドの例

  2. Linux での df コマンドの例

  3. Linux での du コマンドの例