od:バイナリや文字コードを可視化

odコマンド

odコマンドの概要と基本的な使い方

Linux環境では、テキストファイルだけでなく、 バイナリファイルや特殊文字を含むデータを扱う場面があります。

そのようなときに活躍するのが od(octal dump)コマンドです。

odコマンドは、ファイルの内容を 8進数・16進数・10進数・文字形式などで表示するツールです。

一見地味なコマンドですが、 文字コード確認、バイナリ解析、改行コード調査など、 トラブルシューティングや学習用途で非常に役立ちます。

odコマンドとは何か

od は "octal dump" の略で、 本来は8進数表示のためのコマンドとして登場しました。

現在では8進数だけでなく、

  • 16進数表示
  • 10進数表示
  • 文字表示
  • 浮動小数点表示

など、さまざまな形式で出力できます。

基本構文

$ od ファイル名

特にオプションを指定しない場合、 8進数で出力されます。

代表的なオプション

1. 16進数で表示する

$ od -x sample.txt

-x は 16進数(hex)表示です。

2. バイト単位で16進表示

$ od -t x1 sample.txt

-t は「表示形式指定」オプションです。 x1 は「1バイト単位の16進表示」を意味します。

3. 文字として表示する

$ od -c sample.txt

-c は文字表示です。

改行コードなども可視化されます。

4. 10進数で表示する

$ od -t d1 sample.txt

d1 は「1バイト単位の10進表示」です。

よく使う表示形式

  • -c :文字表示(制御文字も確認可能)
  • -x :16進数表示
  • -t x1 :1バイト単位16進
  • -t d1 :1バイト単位10進

具体例

テキストファイルを確認する例:

$ echo "ABC" > test.txt
$ od -c test.txt

出力例:

0000000   A   B   C  \n
0000004

\ n が改行コードであることが確認できます。

バイナリファイルの確認

バイナリファイルの中身を確認する場合:

$ od -t x1 /bin/ls | head

実行ファイルの先頭バイトを16進数で確認できます。

改行コードの確認

Windows改行(CRLF)かどうか確認する場合:

$ od -c sample.txt

CRLFなら

\r \n

と表示されます。

表示アドレスを変更する

先頭アドレス表示を16進数に変更:

$ od -A x -t x1 sample.txt

-A はアドレス表示形式を指定します。

odコマンドの活用例

  • 文字コード調査
  • 制御文字確認
  • バイナリファイル解析
  • 改行コード確認
  • データ破損調査

xxdとの違い

似た用途のコマンドに xxd があります。

  • od: 表示形式が柔軟、標準搭載率が高い
  • xxd: 見やすい16進ダンプ表示

用途によって使い分けるとよいでしょう。

まとめ

odコマンドは、 ファイル内容を数値形式で可視化できる強力なツールです。

普段はあまり使わないかもしれませんが、 トラブル調査や文字コード確認では非常に役立ちます。

Linuxコマンドの基礎として、 知っておくと安心できる存在の一つです。