1:这两个命令都可以以十六进制打印输出 二进制文件内容。可以指定偏移和打印格式等
2:Linux下的二进制查看和编辑
启动vim编辑二进制文件时加上 -b 参数,vim -b datafile
文件中有很多字符不可显示,使用Hex格式显示其值,:set display=uhex
文件中也许没那么多换行符。你可以关闭 'wrap' 选项来获得总览的效果 :set nowrap
文本形式如下:
0000000: 0038 4001 0000 0000 0000 0000 0000 ff00 .8@.............
0000010: 0102 5200 0400 0002 ff54 0001 0165 0001 ..R......T...e..
0000020: 005a 0014 0a0b 0158 0000 1772 0000 1771 .Z.....X...r...q
0000030: 0000 1770 1000 0001 ...p....
hexdump xxd区别:注意xxd是little-endian显示的,hexdump则是big-endian显示的
2:Linux下的二进制查看和编辑
启动vim编辑二进制文件时加上 -b 参数,vim -b datafile
文件中有很多字符不可显示,使用Hex格式显示其值,:set display=uhex
文件中也许没那么多换行符。你可以关闭 'wrap' 选项来获得总览的效果 :set nowrap
3:总结vim编辑二进制文件(使用xxb)的方法:
1). 用vim -b 打开文件
2). 使用:%!xxd命令
3). 编辑文件(只编辑右边字符不会保存)后使用:%xxd -r 把文件转换为二进制
4). :wq保存并退出文件
文本形式如下:
0000000: 0038 4001 0000 0000 0000 0000 0000 ff00 .8@.............
0000010: 0102 5200 0400 0002 ff54 0001 0165 0001 ..R......T...e..
0000020: 005a 0014 0a0b 0158 0000 1772 0000 1771 .Z.....X...r...q
0000030: 0000 1770 1000 0001 ...p....
注:Vim 把这些信息当作普通文本来对待。修改了十六进制部分并不导致可显示字符部分的改变,反之亦然。只有十六进制部分的修改才会被采用。右边可显示文本部分的修改忽略不计。
附:hexdump 使用详细说明http://blog.sina.com.cn/s/blog_53a802e90100n6v8.html