Linux下二进制文件的查看和编辑
一、在Linux下查看二进制文件的软件:
xxd
hexdump
二、编辑:
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
只有十六进制部分的修改才会被采用。右边可显示文本部分的修改忽略不计。
Linux下二进制文件的查看和编辑相关推荐
- 二进制修改linux文件,Linux下二进制文件的查看和编辑
Linux下二进制文件的查看和编辑 一.在Linux下查看二进制文件的软件: xxd hexdump 二.编辑: 1.biew 2.hexedit 3.vim Vim 来编辑二进制文件.Vim 本非为 ...
- 在AIX或Linux下,如何查看磁盘是否包含数据?
在AIX或Linux下,如何查看磁盘是否包含数据? 真题1.在AIX或Linux下,如何查看磁盘是否包含数据? 答案:在AIX下,可以使用lquerypv -h来查看磁盘是否包含数据,或磁盘头是否被d ...
- linux 进程 状态 ri,LINUX下解决netstat查看TIME_WAIT状态过多问题(转)
# netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c 16 CLOSING 130 ESTABLISHED 298 FIN_WAIT1 13 FIN_WA ...
- Linux下vi命令编辑器怎样编辑,怎样保存退出
摘要 博主在倒腾服务器配置禅道时遇到的问题,Linux下vi命令编辑器怎样编辑,怎样保存退出,liunx这玩应真的是一段时间不用全忘完. 方法/步骤 vi 文件名,接着按回车即可打开对应的文件,如果没 ...
- Linux查看WAS的jvm信息,linux 下使用命令查看jvm信息
java程序员除了编写业务代码之外,特别是项目上线之后,更需要关注的是系统的性能表现,这个时候就需要了解一下jvm的性能表现了,可以借助于java虚拟机自带的一些分析工具,主要有三个常用的命令. 1. ...
- linux 网络端口状态,Linux下用netstat查看网络状态、端口状态(转)
转:http://blog.csdn.net/guodongdongnumber1/article/details/11383019 在linux一般使用netstat 来查看系统端口使用情况步. n ...
- Linux下实用的查看内存和多核CPU状态命令
Linux下实用的查看内存和多核CPU状态命令 ]作者:zale0_0 来源:博客园 发布时间:2012-02-08 14:49 阅读:12 次 原文链接 [收藏] 查看多核CPU命令 mpstat ...
- Linux下的tree命令 --Linux下目录树查看
Linux下的tree命令 --Linux下目录树查看 有时我们需要生成目录树结构,可以使用的有ls -R,但是实际效果并不好 这时需要用到tree命令,但是大部分Linux系统是默认不安装该命令的, ...
- LINUX下解决netstat查看TIME_WAIT状态过多问题
LINUX下解决netstat查看TIME_WAIT状态过多问题 参考文章: (1)LINUX下解决netstat查看TIME_WAIT状态过多问题 (2)https://www.cnblogs.co ...
最新文章
- Linux KVM迁移与存储
- post 与 get 的区别
- FetchType.LAZY和FetchType.EAGER什么区别
- 20190916每日一句
- 学术资源不定期分享-【钱学森《工程控制论》英文原版】
- 腾讯元老辞职后,回到老家每天对着200亩地发呆
- windows2016服务器优化,Windows server 2016系统基本优化设置
- Date Wed Mar 17 2021 13:52:00 GMT+0800 (中国标准时间) 转标准的日期格式
- 卖家警惕 网购新骗术来袭
- 服务器显示checkin,CheckIn 方法 - Microsoft Word Visual Basic 参考
- 各种音视频编解码标准
- 国标GB28181视频流媒体平台4G摄像头无插件直播平台EasyGBS出现实时视频点播错误问题解析
- 悟空CRM项目测试实战(4)
- 农夫、羊、菜和狼的故事
- 盘点机数据怎么转换成电脑盘点系统的数据
- 二叉树的ZigZag打印-Java
- 亚马逊美国站服装类目需要审核怎么办?亚马逊美国站服装好做吗?
- UE4骨骼网格体没有影子
- mysql join 自联结_MySQL JOIN | 联结
- 在vs2010使用EF出现CS0012: 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义...