hexdump——Linux系统的二进制文件查看工具
hexdump是Linux下的一个二进制文件查看工具,可以将二进制文件转换为ASCII、10进制、16进制或8进制进行查看。
首先我们准备一个测试用的文件test,十六进制如下:
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
选项:
-n length
只格式化输入文件的前length个字节
-C
输出十六进制和对应字符
输入:
hexdump -n 13 -C test
输出:
00000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c |.............|0000000d
-s 从偏移量开始输出
输入:
hexdump -n 13 -C -s 30 test
输出:
0000001e 1e 1f 20 21 22 23 24 25 26 27 28 29 2a |.. !"#$%&'()*|0000002b
hexdump高级用法:
-e 指定格式字符串,格式字符串包含在一对单引号中,格式字符串形如:'a/b "format1" "format2"'
每个格式字符串由三部分组成,每个由空格分隔,
第一个形如a/b,b表示对每b个输入字节应用format1格式,a表示对每a个输入字节应用format2格式,一般a>b,且b只能为1,2,4,另外a可以省略,省略则a=1。
format1和format2中可以使用类似printf的格式字符串,
如:%02d:两位十进制
%03x:三位十六进制
%02o:两位八进制
%c:单个字符等
还有一些特殊的用法:
%_ad:标记下一个输出字节的序号,用十进制表示%_ax:标记下一个输出字节的序号,用十六进制表示
%_ao:标记下一个输出字节的序号,用八进制表示
%_p:对不能以常规字符显示的用.代替同一行如果要显示多个格式字符串,则可以跟多个-e选项