このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】8進数や16進数で表示する:odコマンド

od コマンドの概要

 「od (octal dump)」コマンドは、バイナリファイルやテキストファイルの内容を8進数、16進数、10進数、2進数などで表示するためのLinuxコマンドです。ファイルのバイナリ内容を確認したり、デバッグ目的でファイルの低レベルデータを確認するのに使用されます。デフォルトでは、8進数で表示しますが、オプションを使用することで表示形式を変更できます。

【構文】
od [オプション] [ファイル名...]

  • [オプション]: 表示形式や出力フォーマットを指定するためのオプション。
  • [ファイル名...]: 処理対象のファイル。省略すると標準入力から読み取ります。

主なオプションと説明

以下の表に、「od」コマンドの主なオプションとその説明をまとめます。

オプション説明
-A 出力のアドレスの基数を指定します(d=10進数, o=8進数, x=16進数, n=表示しない)。
-t表示形式を指定します。例:x1=1バイトごとの16進数, c=ASCII文字, d2=2バイトごとの10進数。
主なオプションと説明

コマンドの使用例と解説

以下に、「od」コマンドの具体的な使用例とその出力例を示します。

1.サンプルファイルの作成:example.txt

まず、以下の内容を持つサンプルファイル「example.txt」を作成します。

・「nano example.txt」コマンドを実行します。

nanoエディタを起動して、「example.txt」ファイルを作成します。

user01@ubuntu-vm:~$ nano example.txt

以下の内容を入力します。

Hello

入力したら、「Ctrl + S」キーを入力して保存、「Ctrl + X」キーでnanoエディタを終了させます。

2.デフォルトの8進数表示

・「od example.txt」コマンドを実行します。

 ファイルの内容を8進数で表示します。デフォルトで各行の先頭にアドレスが8進数で表示されます。

user01@ubuntu-vm:~$ od example.txt
0000000 062510 066154 005157
0000006

3.1バイトごとの16進数表示

・「od -t x1 example.txt」コマンドを実行します。

各バイトを16進数で表示します。

user01@ubuntu-vm:~$ od -t x1 example.txt
0000000 48 65 6c 6c 6f 0a
0000006

4.ASCII文字で表示

・「od -t c example.txt」コマンドを実行します。

ファイルの内容をASCII文字で表示します。制御文字はエスケープシーケンスで表示されます。

user01@ubuntu-vm:~$ od -t c example.txt
0000000   H   e   l   l   o  \n
0000006

5.アドレスを16進数で表示

・「od -A x -t x1 example.txt」コマンドを実行します。

アドレス部分を16進数で表示し、各バイトを16進数で表示します。

user01@ubuntu-vm:~$ od -A x -t x1 example.txt
000000 48 65 6c 6c 6f 0a
000006

6.演習で作成したファイルの削除

演習で使用したファイルを削除します。

・「rm example.txt」コマンドを実行し、「ls」コマンドで削除されたかどうかを確認します。

rm user01@ubuntu-vm:~$ rm example.txt
user01@ubuntu-vm:~$ ls
snap          テンプレート  ドキュメント  ピクチャ      公開
ダウンロード  デスクトップ  ビデオ        ミュージック

まとめ

 これらの演習を通じて、「od」コマンドを使うことで、ファイルの内容を様々な形式で表示する方法が理解できたかと思います。「od」コマンドは、バイナリファイルの解析やデバッグにおいて非常に強力なツールです。