Linux の od コマンドと実際の例

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Linux の od(8 進ダンプ)コマンドについて学びます。このコマンドは、8 進数、10 進数、16 進数、またはその他の形式でファイルの内容を表示するために使用されます。まず、od コマンドの基本的な使い方を理解し、次に出力形式をカスタマイズするためのさまざまなオプションを調べ、最後にファイルの 16 進ダンプを行います。この実験では、Linux 環境における基本的なファイルとディレクトリ操作の基本的なスキルを学びます。

Linux Commands Cheat Sheet


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/dd("File Converting/Copying") subgraph Lab Skills linux/echo -.-> lab-422848{{"Linux の od コマンドと実際の例"}} linux/cat -.-> lab-422848{{"Linux の od コマンドと実際の例"}} linux/dd -.-> lab-422848{{"Linux の od コマンドと実際の例"}} end

od コマンドを理解する

このステップでは、Linux の od(8 進ダンプ)コマンドについて学びます。od コマンドは、8 進数、10 進数、16 進数、またはその他の形式でファイルの内容を表示するために使用されます。

始める前に、いくつかのテキストが含まれるサンプル ファイルを作成しましょう。

echo "Hello, Linux!" > sample.txt

次に、od コマンドを使用して、ファイルの内容を 16 進数形式で表示します。

od -x sample.txt

出力例:

0000000 4865 6c6c 6f2c 2020 4c69 6e75 7821 0a00
0000020

-x オプションは、od にファイルの内容を 16 進数形式で表示するように指示します。各行は、ファイルの先頭からのオフセット(バイト単位)を示し、その後にデータの 16 進数表現が続きます。

また、-t オプションを使用して出力形式を指定することもできます。たとえば、ファイルの内容を 10 進数形式で表示するには:

od -t d1 sample.txt

出力例:

0000000   72  101  108  108  111  44     32  108  105  110  117  120  33  10
0000020

d1 引数は、od に 1 バイトの 10 進数形式でデータを表示するように指示します。

od コマンドのオプションを調べる

このステップでは、od コマンドに利用可能なさまざまなオプションを調べ、出力形式をカスタマイズします。

まず、いくつかのバイナリ データが含まれる別のサンプル ファイルを作成しましょう。

echo -e "\x01\x02\x03\x04\x05\x06\x07\x08" > binary.txt

次に、od コマンドをさまざまなオプションとともに使用して、ファイルの内容をさまざまな形式で表示します。

## 8 進数形式で表示
od -t o1 binary.txt

## 16 進数形式で表示
od -t x1 binary.txt

## ASCII 形式で表示
od -t c binary.txt

出力例:

0000000 001 002 003 004 005 006 007 010
0000010
0000000 01 02 03 04 05 06 07 08
0000010
0000000 001 002 003 004 005 006 007 010
0000010

-t オプションを使用すると、出力形式を指定できます。上の例では、o1 は 1 バイトの 8 進数、x1 は 1 バイトの 16 進数、c は文字(ASCII)形式を表しています。

また、-t オプションを使用して複数の出力形式を組み合わせることもできます。

od -t x1 -t d1 -t c binary.txt

出力例:

0000000 01 02 03 04 05 06 07 08
0000010

これにより、ファイルの内容が 16 進数、10 進数、文字形式で並べて表示されます。

ファイルの 16 進ダンプを行う

この最後のステップでは、od コマンドを使ってファイルの 16 進ダンプを行う方法を学びます。

いくつかのランダムなデータが含まれるより大きなサンプル ファイルを作成しましょう。

dd if=/dev/urandom of=random.txt bs=1024 count=10

これにより、10 キロバイトのランダムなデータが含まれる random.txt という名前のファイルが作成されます。

次に、od コマンドを使って、ファイルの 16 進ダンプを表示します。

od -x random.txt

出力例:

0000000 f6d1 9d2e 4a4b 5b8f 6acd 0f1e 0f6a 1b2e
0000020 b6f9 2d4a 1e0f 6a1b 2e6f 9d2e 4a4b 5b8f
0000040 6acd 0f1e 0f6a 1b2e b6f9 2d4a 1e0f 6a1b
0000060 2e6f 9d2e 4a4b 5b8f 6acd 0f1e 0f6a 1b2e
0000100 b6f9 2d4a 1e0f 6a1b 2e6f 9d2e 4a4b 5b8f
0000120 6acd 0f1e 0f6a 1b2e b6f9 2d4a 1e0f 6a1b
0000140 2e6f 9d2e 4a4b 5b8f 6acd 0f1e 0f6a 1b2e
0000160 b6f9 2d4a 1e0f 6a1b 2e6f 9d2e 4a4b 5b8f
0000200 6acd 0f1e 0f6a 1b2e b6f9 2d4a 1e0f 6a1b
0000220 2e6f 9d2e 4a4b 5b8f 6acd 0f1e 0f6a 1b2e
0000240

出力には、ファイル内容の 16 進数表現が表示され、各行にはファイルの先頭からのオフセット(バイト単位)が表示されます。

また、-c オプションを使って、16 進ダンプとともにファイル内容を ASCII 形式で表示することもできます。

od -tx1 -tc random.txt

出力例:

0000000 f6 d1 9d 2e 4a 4b 5b 8f 6a cd 0f 1e 0f 6a 1b 2e  |......JK[..j...j..|
0000020 b6 f9 2d 4a 1e 0f 6a 1b 2e 6f 9d 2e 4a 4b 5b 8f  |..-J..j..o..JK[.|
0000040 6a cd 0f 1e 0f 6a 1b 2e b6 f9 2d 4a 1e 0f 6a 1b  |j....j....-J..j.|
0000060 2e 6f 9d 2e 4a 4b 5b 8f 6a cd 0f 1e 0f 6a 1b 2e  |.o..JK[.j....j..|
0000100 b6 f9 2d 4a 1e 0f 6a 1b 2e 6f 9d 2e 4a 4b 5b 8f  |..-J..j..o..JK[.|
0000120 6a cd 0f 1e 0f 6a 1b 2e b6 f9 2d 4a 1e 0f 6a 1b  |j....j....-J..j.|
0000140 2e 6f 9d 2e 4a 4b 5b 8f 6a cd 0f 1e 0f 6a 1b 2e  |.o..JK[.j....j..|
0000160 b6 f9 2d 4a 1e 0f 6a 1b 2e 6f 9d 2e 4a 4b 5b 8f  |..-J..j..o..JK[.|
0000200 6a cd 0f 1e 0f 6a 1b 2e b6 f9 2d 4a 1e 0f 6a 1b  |j....j....-J..j.|
0000220 2e 6f 9d 2e 4a 4b 5b 8f 6a cd 0f 1e 0f 6a 1b 2e  |.o..JK[.j....j..|
0000240

この出力は、16 進数値とそれに対応する ASCII 文字を並べて表示し、ファイル内容の解釈を容易にします。

まとめ

この実験では、Linux の od(8 進ダンプ)コマンドについて学びました。このコマンドは、8 進数、10 進数、16 進数などのさまざまな形式でファイルの内容を表示するために使用されます。テキストとバイナリ データが含まれるサンプル ファイルを作成し、od コマンドのさまざまなオプションを調べて出力形式をカスタマイズしました。-t オプションを使って 1 バイトの 8 進数、1 バイトの 16 進数、文字(ASCII)形式など、希望する出力形式を指定する方法を学びました。また、複数のオプションを組み合わせて出力をさらにカスタマイズする方法も学びました。

Linux Commands Cheat Sheet