odコマンドは、様々な
オペレーティングシステム上で動作し、データを人間が読みやすい形式で表示(ダンプ)するコマンドです。コマンド名の「od」は、デフォルトの表示形式が8進数であることに由来し、"octal dump"の頭文字をとったものです。
概要
odコマンドは、8進数、16進数、10進数、
ASCII文字列など、多様な形式でデータを出力できます。これにより、プログラムの実行コードのように、普段は人間が直接読めないデータを可視化するのに非常に役立ちます。例えば、バイナリデータを詳細に分析する際や、ファイルの内容を異なる視点から確認したい場合に重宝します。
odは、
Unixプログラムの中でも非常に古い部類に属し、AT&T
Unixのversion 1の時代から存在しています。また、
POSIX規格にもその仕様が規定されており、広く利用されています。
Linuxシステムで利用されているodの実装は、通常、
GNU Core Utilitiesに含まれています。
odコマンドは、Bourneシェルよりも前に開発されたため、その構文に影響を与えました。特に、
ALGOLの影響を受けたBシェルでは、条件分岐を`if ... fi`や`case ... esac`のように逆さ書きでブロックを閉じるという特徴がありますが、反復ブロックを表す`do`を逆さ書きにすると`od`と綴りが一致してしまうため、`do ... done`という形式になりました。この事例は、odコマンドが歴史的に非常に重要な位置を占めていることを示しています。
さらに、odコマンドは
IBM iにも移植されており、様々なプラットフォームでその機能が活用されています。
実行例
実行可能なプログラムファイルをodでダンプすると、通常、その結果は非常に長くなります。そのため、`head`コマンドと組み合わせて、ダンプ結果の最初の数行のみを表示することがよくあります。
以下に、`hello world`プログラムのダンプ結果を`head`コマンドにパイプして表示する例を示します。
bash
od hello | head
また、次の例は`echo`コマンドの出力をodで確認する例です。
bash
echo Hello | od -c
この例では、`echo`コマンドに渡される文字列を入力する際に、`Hello`と入力した後、`Ctrl+V, Ctrl+I, Ctrl+V, Ctrl+C`と押下しています。`Ctrl+V`の直後に押下したキーは、通常割り当てられている動作(例えば`Ctrl+C`を押すとSIGINTが送信される)をせずに、そのキーの文字そのものが入力されます。これにより、特殊文字や制御文字を含む文字列を`echo`コマンドに渡すことができます。
関連項目
脚注・出典