开源是一种精神,分享是一种美德!

hexdump

相关命令:od
hexdump

可用参数
[-bcCdovx] [-e format_string] [-f format_file] [-n length] [-s skip] file ...

参数含义
-b 单字节八进制显示,十六进制显示偏移量,每行显示16个字符,每字符用三位显示,不足补零,列间以空格分隔
-c 单字节字符显示,十六进制显示偏移量,每行显示16个字符,每字符三位显示,不足补空格,列间以空格分隔
-C 标准十六进制+ascii码显示,十六进制显示偏移量,每行16个字符,每字符两位显示,不足补0,结尾显示当前16位数据的ascii码值,以|框住
-d 双字节十进制显示,十六进制显示偏移量,每行8组(16字节)每组5位,不足补零,列间以空格分隔,以无符号10进制数值显示
-e 指定格式字符串,格式字符串包含在一对单引号中,格式字符串形如:'a/b "format1" "format2"'
-f 根据format file中的格式进行输出,忽略formatfile中空行及以#开始的行会
-n length 只显示length个字节的数据
-o 双字节八进制显示。十六进制显示偏移量,每行8组数据,每数据占两字节,6列,不足补零,以空格分隔
-s offset 跳过从开始的offset个字节,默认输入十进制,以0x或0X开始按16进制处理,否则如以0开始按八进制处理,如果以b/k/m结尾,则原数值乘以512/1024/1048576
-v 显示所有数据,如果不包含这一选项,对于同上一行完全相同的数据,hexdump会以*代替显示
-x 两位十六进制显示.十六进制显示偏移量,每行8组数据,每数据占两字节,4列,不足补零,以空格分隔

每个格式字符串由三部分组成,每个由空格分隔,第一个形如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选项
 

# echo /etc/passwd | hexdump  
0000000 652f 6374 702f 7361 7773 0a64          
000000c

# echo /etc/passwd | od -x  
0000000 652f 6374 702f 7361 7773 0a64
0000014

# echo /etc/passwd | xxd  
0000000: 2f65 7463 2f70 6173 7377 640a            /etc/passwd.

# echo /etc/passwd | hexdump -C       #规范的十六进制和ASCII码显示
00000000  2f 65 74 63 2f 70 61 73  73 77 64 0a              |/etc/passwd.|
0000000c

# echo /etc/passwd | hexdump -b       #单字节八进制显示
0000000 057 145 164 143 057 160 141 163 163 167 144 012                
000000c

# echo /etc/passwd | hexdump -c       #单字节字符显示
0000000   /   e   t   c   /   p   a   s   s   w   d  \n                
000000c

# echo /etc/passwd | hexdump -d       #双字节十进制显示
0000000   25903   25460   28719   29537   30579   02660                
000000c

# echo /etc/passwd | hexdump -o        #双字节八进制显示
0000000  062457  061564  070057  071541  073563  005144                
000000c

# echo /etc/passwd | hexdump -x        #双字节十六进制显示
0000000    652f    6374    702f    7361    7773    0a64                
000000c

# echo /etc/passwd | hexdump -v  
0000000 652f 6374 702f 7361 7773 0a64          
000000c

评论(0)

暂无评论

评论

名字:
验证码:
获取验证码
内容: