回答:
hd
同義語でhexdump -C
上のFreeBSDといくつかのLinuxディストリビューション。hexdump
であるBSD日。黎明od
からです。のみれるPOSIXによって標準化されました。シングルUNIXの根拠について議論を理由に優先して選択されましたか。od
od
hd
xd
これらのコマンドは非常によく似ています。8進、10進、または16進表記を使用して、バイナリファイルのテキスト表現を表示します。2つの間に基本的な違いはありません。
出力形式を制御するための多くのオプションがあり、一部の形式はどちらか一方のコマンドでのみ達成できます。特に、バイナリファイルの内容を一目で確認するには、hd
の出力形式が好きです。右側の列には、印刷可能な文字が文字通り表示されています。od
それはできません。
$ od /bin/sh | head -n 2 # od default: octal, 2-byte words
0000000 042577 043114 000402 000001 000000 000000 000000 000000
0000020 000002 000076 000001 000000 170020 000101 000000 000000
$ od -Ax -t x1 /bin/sh | head -n 2 # od showing bytes in hexadecimal
000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
000010 02 00 3e 00 01 00 00 00 10 f0 41 00 00 00 00 00
$ hd /bin/sh | head -n 2 # hd default output: nice
00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 02 00 3e 00 01 00 00 00 10 f0 41 00 00 00 00 00 |..>.......A.....|
042577
、18ビット、つまり9/4バイトですか?
123
は、数値は10進数(10進数)で0123
表されますが、数値は8進数(8進数)、つまり0123
83で表され0x123
ます。これは、16進数(16進数)、つまり291です。これはod
出力フォーマットとは無関係です。
実際にod
は、16進数/ 10進数/ 10進数と印刷可能な文字の両方を表示できます。
$ od -Ax -tx1z /bin/sh | head -n2
000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 >.ELF............<
000010 03 00 3e 00 01 00 00 00 32 4e 00 00 00 00 00 00 >..>.....2N......<
主な違いは、おそらく歴史的なものです。また、一部のバージョンでhd
はカラー出力が可能です。
od
はz
サフィックスをサポートしません-tx1z
hd
です。それにもかかわらず、役に立つ、ありがとう:)
xxd
ずに!:D