od (UNIX)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
od
作者 ベル研究所
初版 1971年11月3日 (52年前) (1971-11-03)
対応OS Unix, Unix系, IBM i
プラットフォーム クロスプラットフォーム
種別 コマンド
ライセンス coreutilsGPLv3
テンプレートを表示

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 シェルにおいて、条件分岐は if ... ficase ... esac のように逆さ書きでブロックを閉じるが、反復ブロックを表わす do を逆さ書きにすると od とスペルが重なってしまうため do ... done となった。

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

実行例[編集]

通常、実行可能なプログラムファイルのダンプ結果はとても長くなる。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 を入力した後に Ctrl+V, Ctrl+I, Ctrl+V, Ctrl+C と押下する。Ctrl+V の直後に押下されたキーは、それに割り付けられている動作 (例えば、デフォルトでは Ctrl+C を押すと SIGINT が送信される) をせず、そのキーの文字そのものが入力される。

% echo "Hello  ^C" | od -cb
0000000  H  e  l  l  o \t 003 \n
    110 145 154 154 157 011 003 012
0000010

関連項目[編集]

脚注・出典[編集]

  1. ^ IBM. “IBM System i Version 7.2 Programming Qshell” (英語). 2020年9月5日閲覧。

外部リンク[編集]