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)
暂无评论