Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

odやhexdumpで内容をバイナリダンプしてみる

バイナリダンプは指定したファイル・標準出力の結果を16進数として吐き出すものです。
メモリの状態やバイナリファイルのヘッダを確認するときに重宝します。
組込み業界で仕事をしていた頃よく使いました(遠い目

odコマンド

まずはodコマンドから。
タイプ数が少なくて便利です。

16進数

定番のHEXこと16進数

$ printf '渡辺' | od -x
0000000      b8e6    e8a1    babe                                        
0000006

10進数

10進数もいけます。

$ printf '渡辺' | od -d
0000000     47334   59553   47806                                        
0000006

8進数

未だに使いどころがわからない8進数

$ printf '渡辺' | od -o
0000000    134346  164241  135276                                        
0000006
6/1追記

chmodの権限指定がまんま8進数記述でした...
ユーザ毎に2進数3桁の権限があります=>0(0b000)~7(0b111)
で、user / group / otherと3種設定できるので、よくある777ですとか664みたいに設定できるわけです。
参考もと
"chmod" アクセス権の操作 8進数表記編 @LCD -Linux Command Dictionary-|Replog!株式会社レップワンスタッフによるブログです

hexdumpコマンド

hexdumpというのもあります。
こちらは -C オプションを使う事でascii文字ののダンプも可能です。

$ printf 'as you like' | hexdump  -C
00000000  61 73 20 79 6f 75 20 6c  69 6b 65                 |as you like|
0000000b
$ ##  UTF-8の文字はでてきません。 ##
$ printf '渡辺' | hexdum -C
00000000  e6 b8 a1 e8 be ba                                 |......|
00000006

バイナリファイル相手にも同じ事ができます。
手っ取り早くヘッダ情報を毟ってくるには丁度良いですね。

$ cat ~/Downloads/05.pdf | head -n 1 | hexdump -C
00000000  25 50 44 46 2d 31 2e 33  0d 25 e2 e3 cf d3 0d 0a  |%PDF-1.3.%......|
00000010