od (UNIX)

od は、データを人間の読みやすい形式で表示 (ダンプ) する、様々な OS 上で動作するコマンドである。コマンド名は、デフォルトの表示形式が 8 進法であることから “octal dump” の頭字語である。

od
作者ベル研究所
初版1971年11月3日 (52年前) (1971-11-03)
対応OSUnix, Unix系, IBM i
プラットフォームクロスプラットフォーム
種別コマンド
ライセンスcoreutilsGPLv3
テンプレートを表示

概要

od は 8 進法16 進法10 進法ASCII 文字列などを含む様々な形式で出力を表示できる。例えば、プログラムの実行コードのように人間の読める形式ではないデータを可視化する際に便利である。

od は Unix プログラムのなかでも最古のものの一つであり、AT&T Unix の version 1 で既に登場している。また、POSIX 規格でも規定されている。Linux システムで利用されている od の実装は、(通常は) GNU Core Utilities によるものである。

od は Bourne シェルよりも昔に開発されたものであるので、その構文に影響を与えた。ALGOL の特徴を取り込んだ B シェルにおいて、条件分岐は if ... ficase ... esac のように逆さ書きでブロックを閉じるが、反復ブロックを表わす do を逆さ書きにすると od とスペルが重なってしまうため do ... done となった。

また、od コマンドは IBM i にも移植されている[1]

実行例

通常、実行可能なプログラムファイルのダンプ結果はとても長くなる。head コマンドは標準入力を読み込み、冒頭の数行を標準出力に書き出す。以下の例は、Hello world プログラムのダンプ結果を head にパイプする例である。

% od hello | head0000000 042577 043114 000401 000001 000000 000000 000000 0000000000020 000002 000003 000001 000000 101400 004004 000064 0000000000040 003610 000000 000000 000000 000064 000040 000006 0000500000060 000033 000030 000006 000000 000064 000000 100064 0040040000100 100064 004004 000300 000000 000300 000000 000005 0000000000120 000004 000000 000003 000000 000364 000000 100364 0040040000140 100364 004004 000023 000000 000023 000000 000004 0000000000160 000001 000000 000001 000000 000000 000000 100000 0040040000200 100000 004004 002121 000000 002121 000000 000005 0000000000220 010000 000000 000001 000000 002124 000000 112124 004004

また、次の例は od を使って echo コマンドの出力を確認する例である。echo に渡される文字列を入力するには、Hello を入力した後に Ctrl+V, Ctrl+I, Ctrl+V, Ctrl+C と押下する。Ctrl+V の直後に押下されたキーは、それに割り付けられている動作 (例えば、デフォルトでは Ctrl+C を押すと SIGINT が送信される) をせず、そのキーの文字そのものが入力される。

% echo "Hello  ^C" | od -cb0000000  H  e  l  l  o \t 003 \n    110 145 154 154 157 011 003 0120000010

関連項目

脚注・出典

外部リンク