00. 目录
01. 命令概述
hexdump命令一般用来查看文件的十六进制编码,但实际上它能查看任何文件,而不只限于二进制文件。
02. 命令格式
hexdump [选项] 文件 ...
03. 常用选项
-b 单字节八进制显示
-c 单字节字符显示
-C 规范化 十六进制+ASCII 显示
-d 两字节十进制显示
-o 两字节八进制显示
-x 两字节十六进制显示
-e 格式 用于显示数据的格式字符串
-f 格式文件 包含格式字符串的文件
-n 长度 只解释输入的指定长度个字节
-s 偏移 跳过开头指定长度个字节
-v 显示时不压缩相似的行
-V 显示此帮助并退出
每个格式字符串由三部分组成,每个由空格分隔,第一个形如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
选项。
04. 参考示例
4.1 以十六进制显示文件
[deng@localhost tmp]$ hexdump tmp
0000000 6568 6c6c 206f 6f77 6c72 0a64
000000c
[deng@localhost tmp]$
4.2 -C 输出十六进制和对应字符
[deng@localhost tmp]$ hexdump -C tmp
00000000 68 65 6c 6c 6f 20 77 6f 72 6c 64 0a |hello world.|
0000000c
[deng@localhost tmp]$
4.3 显示时不压缩相似的行
[deng@localhost tmp]$ hexdump -v tmp
0000000 6568 6c6c 206f 6f77 6c72 0a64 6568 6c6c
0000010 206f 6f77 6c72 0a64 6568 6c6c 206f 6f77
0000020 6c72 0a64 6568 6c6c 206f 6f77 6c72 0a64
0000030
[deng@localhost tmp]$
4.4 显示时不压缩相似的行和字符
[deng@localhost tmp]$ hexdump -Cv tmp
00000000 68 65 6c 6c 6f 20 77 6f 72 6c 64 0a 68 65 6c 6c |hello world.hell|
00000010 6f 20 77 6f 72 6c 64 0a 68 65 6c 6c 6f 20 77 6f |o world.hello wo|
00000020 72 6c 64 0a 68 65 6c 6c 6f 20 77 6f 72 6c 64 0a |rld.hello world.|
00000030
[deng@localhost tmp]$
4.5 只输出给定字节
[deng@localhost tmp]$ hexdump -Cv tmp -n 4
00000000 68 65 6c 6c |hell|
00000004
[deng@localhost tmp]$ hexdump -Cv tmp -n 2
00000000 68 65 |he|
00000002
[deng@localhost tmp]$ hexdump -Cv tmp -n 1
00000000 68 |h|
00000001
[deng@localhost tmp]$
4.6 从指定偏移量开始输出
[deng@localhost tmp]$ hexdump -Cv tmp -s 1 -n 4
00000001 65 6c 6c 6f |ello|
00000005
[deng@localhost tmp]$ hexdump -Cv tmp -s 2 -n 4
00000002 6c 6c 6f 20 |llo |
00000006
[deng@localhost tmp]$ hexdump -Cv tmp -s 3 -n 4
00000003 6c 6f 20 77 |lo w|
00000007
[deng@localhost tmp]$
4.7 格式化输出
[deng@localhost tmp]$ hexdump -v -e '/1 "%02X"' tmp;echo
68656C6C6F20776F726C640A
[deng@localhost tmp]$ echo hello | hexdump -e '8/1 "%02X ""\t"" "' -e '8/1 "%c""\n"'
68 65 6C 6C 6F 0A hello
[deng@localhost tmp]$ echo hello | hexdump -v -e '"x" 1/1 "%02X" " "' ; echo
x68 x65 x6C x6C x6F x0A
[deng@localhost tmp]$ echo hello | hexdump -v -e '/1 "%02X\n"'
68
65
6C
6C
6F
0A
[deng@localhost tmp]$ echo hello | hexdump -v -e '/1 "%_ad# "' -e '/1 " _%_u\_\n"'
0# _h_
1# _e_
2# _l_
3# _l_
4# _o_
5# _lf_
[deng@localhost tmp]$
05. 附录
转载:https://blog.csdn.net/dengjin20104042056/article/details/101457460
查看评论