Linux下有什么好用的二进制文件编辑器

Linux下有什么好用的二进制文件编辑器,第1张

一、在Linux下查看二进制文件的软件:

xxd (2进制)

hexdump (16进制)

二、编辑:

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-16Line 277 of 330Word 1806 of 2058Byte 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的文件类型分为普通文件、d目录文件、b块设备文件、c字符设备文件(串口设备)、s套接字文件(特殊文件scoket)、l链接文件。

例如下图,d开头的是目录文件,-开头的是普通文件,l开头的是链接文件

以touch,cp,tar,echo,cat等工具命令创建的文件都是普通文件,普通文件又分为以下三种:

1)纯文本文件:文件内容可以直接读取到数据(ASCL text)

2)二进制文件:linux中可执行文件(命令)

3)数据格式文件(一种特殊的文件 data)

ls -ld可以显示所有的目录文件

linux系统中的链接文件与WIN系统的快捷方式基本差不多,linux中链接文件又分为硬链接与软链接。

硬链接: 是指通过索引节点来进行链接,在系统中多个文件各指向同一个索引节点,是可以的正常允许的,这种情况下的文件被称之为硬链接。实际生产环境中用户可以通过硬链接的方式来防止误删重要数据。

ln 源文件名 链接文件名 创建硬链接文件

软链接: 也称符号链接(快捷方式),实际上它是一个文本文件,它存储着指向源文件链接的位置信息。

ln -s 源文件名 链接文件名 创建软链接文件

另外要注意目录是不可以创建硬链接文件的,但可创建软链接文件,如下图:

关于文件的软链接和硬链接,总结起来有以下四种情况:

1)删除源文件时,硬链接文件正常使用,软链接文件就失效了。

2)删除硬链接时,对源文件与软链接无影响。

3)删除软链接时,对源文件与硬链接无任何影响。

4)删除源文件、硬链接文件后,整个文件就会被删除。

对于目录的软链接和硬链接,总结如下:

1)目录是不可创建硬链接文件,可以创建软链接文件。

2)目录的软链接是生产环境中非常实用的。

3)所有目录都有一个硬链接“.”,目录硬链接是不可跨越文件系统的。

Linux文件的扩展名主要是为了方便区分不同的文件,和windows的强类型扩展名不一样。

1、.tar .tar.gz .tgz .zip 这类表示压缩文件

2、.sh 表示shell脚本文件

3、.html .php .jsp 网页文件

4、.conf 系统服务的配置文件

5、.rpm 表示RPM安装包文件

每一个文件都有自己的属性信息,它的属性信息包括:索引节点、文件类型、权限信息、所有者、所属组、最近修改时间、大小、文件名或目录名、硬链接数量。

我们以下图的cron.daily这个文件为例,d表示文件类型是目录文件,rwxr-xr-x这个表示权限,第一个rwx表示的文件所有者用户的权限,第二个r-x表示的是所属组的权限,第三个r-x表示的是其他用户的权限。2表示硬链接数量,第一个root表示文件所有者是root,第二个root表示所属组,42表示文件大小,May 27 2021表示最后的修改时间,corn.daily是文件名称。

其中的索引节点编号需要通过ls -i才能看到,在最左边显示的那一串数字,如下图所示:

fwrite是库函数, write 是系统调用。fwrite 的缓存由系统分配, write 使用你设置的。

你应该以二进制文件读取的方式进行读取和发送,而不是文本格式。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6273395.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存