Linux下查看⼆进制⽂件命令⼀、在Linux下查看⼆进制⽂件的软件:
xxd
hexdump
vim命令替换字符⼆、编辑:
1、biew
2、hexedit
3、vim
Vim 来编辑⼆进制⽂件。Vim 本⾮为此⽽设计的,因⽽有若⼲局限。但你能读
取⼀个⽂件,改动⼀个字符,然后把它存盘。结果是你的⽂件就只有那⼀个字符给改了,
其它的就跟原来那个⼀模⼀样。
要保证 Vim 别把它那些聪明的窍门⽤错地⽅,启动 Vim 时加上 "-b" 参数:
vim -b datafile
这个参数设定了 'binary' 选项。其作⽤是排除所有的意外副作⽤。例如,'textwidth'
设为零,免得⽂本⾏给擅⾃排版了。并且,⽂件⼀律以 Unix ⽂件格式读取。
⼆进制模式可以⽤来修改某程序的消息报⽂。⼩⼼别插⼊或删除任何字符,那会让程序运
⾏出问题。⽤ "R" 命令进⼊替换模式。
⽂件⾥的很多字符都是不可显⽰的。⽤ Hex 格式来显⽰它们的值:
:set display=uhex
另外,也可以⽤命令 "ga" 来显⽰光标下的字符值。当光标位于⼀个字符上时,
该命令的输出看起来就像这样:
27, Hex 1b, Octal 033
⽂件中也许没那么多换⾏符。你可以关闭 'wrap' 选项来获得总览的效果:
:
set nowrap
字节位置
要发现你在⽂件中的当前字节位置,请⽤这个命令:
g CTRL-G
其输出⼗分冗长:
Col 9-16 of 9-16; Line 277 of 330; Word 1806 of 2058; Byte 10580 of 12206
最后两个数字就是⽂件中的当前字节位置和⽂件字节总数。这已经考虑了 'fileformat'
选项导致换⾏符字节不同的影响。
要移到⽂件中某个指定的字节,请⽤ "go" 命令。例如,要移到字节 2345:
2345go
使⽤ XXD
⼀个真正的⼆进制编辑器⽤两种⽅式来显⽰⽂本: ⼆进制和⼗六进制格式。你可以在 Vim ⾥通过转换程序 "xxd" 来达到这效果。该程序是随 Vim ⼀起发布的。
⾸先以⼆进制⽅式编辑这个⽂件:
vim -b datafile
现在⽤ xxd 把这个⽂件转换成⼗六进制:
:%!xxd
⽂本看起来像这样:
0000000: 1f8b 0808 39d7 173b 0203 7474 002b 4e49 ....9..;..tt.+NI
0000010: 4b2c 8660 eb9c ecac c462 eb94 345e 2e30 K,.`.....b..4^.0
0000020: 373b 2731 0b22 0ca6 c1a2 d669 1035 39d9 7;'1.".....i.59.
现在你可以随⼼所欲地阅读和编辑这些⽂本了。 Vim 把这些信息当作普通⽂本来对待。修改了⼗六进制部分并不导致可显⽰字符部分的改变,反之亦然。
最后,⽤下⾯的命令把它转换回来:
:%!xxd -r
只有⼗六进制部分的修改才会被采⽤。右边可显⽰⽂本部分的修改忽略不计。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论