Od (UNIX)

od は、データを人間の読みやすい形式で表示 (ダンプ) する、様々な OS 上で動作するコマンドである。コマンド名は、デフォルトの表示形式が 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 シェルにおいて、条件分岐は codice_1 や codice_2 のように逆さ書きでブロックを閉じるが、反復ブロックを表わす codice_3 を逆さ書きにすると codice_4 とスペルが重なってしまうため codice_5 となった。
また、od コマンドは IBM i にも移植されている。
実行例.
通常、実行可能なプログラムファイルのダンプ結果はとても長くなる。head コマンドは標準入力を読み込み、冒頭の数行を標準出力に書き出す。以下の例は、Hello world プログラムのダンプ結果を head にパイプする例である。
% od hello | head
0000000 042577 043114 000401 000001 000000 000000 000000 000000
0000020 000002 000003 000001 000000 101400 004004 000064 000000
0000040 003610 000000 000000 000000 000064 000040 000006 000050
0000060 000033 000030 000006 000000 000064 000000 100064 004004
0000100 100064 004004 000300 000000 000300 000000 000005 000000
0000120 000004 000000 000003 000000 000364 000000 100364 004004
0000140 100364 004004 000023 000000 000023 000000 000004 000000
0000160 000001 000000 000001 000000 000000 000000 100000 004004
0000200 100000 004004 002121 000000 002121 000000 000005 000000
0000220 010000 000000 000001 000000 002124 000000 112124 004004
また、次の例は od を使って echo コマンドの出力を確認する例である。echo に渡される文字列を入力するには、Hello を入力した後に , , , と押下する。 の直後に押下されたキーは、それに割り付けられている動作 (例えば、デフォルトでは を押すと SIGINT が送信される) をせず、そのキーの文字そのものが入力される。
% echo "Hello ^C" | od -cb
0000000 H e l l o \t 003 \n
 110 145 154 154 157 011 003 012
0000010