はじめに
こんにちは!今回はodコマンドについて解説します。
odは、ファイルやテキストの内容を8進数(octal dump)や16進数、ASCII文字などで表示するコマンドです。バイナリファイルの内容を確認する時に活躍します。
デバッグやファイルの詳細な確認が必要な時に、めっちゃ便利ですよ。
odコマンドとは
odは、ファイルの内容をさまざまなフォーマットでダンプ(表示)する外部コマンドです。
主な機能:
- フォーマット指定 - 8進数、16進数、10進数、ASCII文字など
- バイナリ表示 - テキストファイル以外も表示可能
- オフセット表示 - ファイル内の位置を一緒に表示
- 複数フォーマット - 複数の形式を同時表示可能
- バイト単位制御 - 特定範囲のみ表示
バイナリファイルの内容を詳細に確認できます。
基本構文
|
|
標準入力からも読み込み可能。
主なオプション
| オプション | 説明 |
|---|---|
-t 形式 |
出力フォーマット指定(x=16進数、o=8進数、d=10進数、cなど) |
-A 形式 |
アドレス表示形式(x=16進数、o=8進数、d=10進数) |
-N バイト数 |
最初のN バイトのみ表示 |
-j オフセット |
開始位置をオフセット指定 |
-v |
同じ行の繰り返しも表示 |
-c |
ASCII文字表示(昔のフォーマット) |
-x |
16進数表示(昔のフォーマット) |
使用例
例1: 基本的なファイル表示(8進数)
|
|
実行結果:
|
|
デフォルトは8進数。各バイトが8進数で表示されます。
例2: 16進数で表示
|
|
実行結果:
|
|
-t x1で16進数1バイト単位。
例3: ASCII文字と一緒に表示
|
|
実行結果:
|
|
16進数とASCII文字を一緒に表示。
例4: キャラクター表示
|
|
実行結果:
|
|
-cでASCII文字で表示。
例5: 10進数で表示
|
|
実行結果:
|
|
-t d1で10進数1バイト単位。
例6: 最初の10バイトのみ表示
|
|
実行結果:
|
|
-Nで表示するバイト数を限定。
例7: オフセット指定して表示
|
|
実行結果:
|
|
位置6から5バイト表示。
例8: バイナリファイル表示
|
|
実行結果:
|
|
バイナリファイルを16進数で表示。
例9: アドレスを10進数で表示
|
|
実行結果:
|
|
-A dでアドレスを10進数で表示。
例10: 複数行の内容をすべて表示
|
|
実行結果:
|
|
複数行もそのまま表示。
Tips・注意点
形式指定の詳細
|
|
複数の形式を同時に指定可能:-t x1z
アドレス指定形式
|
|
大きなファイルの確認
|
|
最初の1024バイトのみ確認。
実践的な使い方
ファイルの改行コード確認
|
|
CR、LFを確認。
バイナリファイルの署名確認
|
|
ファイル形式の署名(マジックナンバー)を確認。
テキストエンコーディング確認
|
|
ファイルのバイト列を確認してエンコーディングを推測。
パイプで使用
|
|
標準入力からのデータを処理。
ダンプ出力の視覚化
|
|
16進数アドレスと一緒に、詳細に表示。
まとめ
odコマンドのポイント:
- ファイル内容を複数のフォーマットで表示するコマンド
- 8進数: デフォルト(オプションなし)
- 16進数:
-t x1 - 10進数:
-t d1 - ASCII文字:
-cまたは-t c - 複合表示:
-t x1z(16進数とASCII一緒に) - 制御:
-N(バイト数)、-j(オフセット) - よく使う組み合わせ:
od -t x1z,od -c,od -t x1 -N 16
バイナリファイルやテキストファイルの詳細確認が必要な時に最高のコマンドですよ!