医疗行业企业网站建设,wordpress自定义编辑器,微网站搭建,互联网保险论文文章目录 Linux xxd命令安装xxd基本使用方法创建hex dump从hex dump恢复到二进制 命令选项疑难技术点解析在脚本中使用xxd从hex dump恢复数据 总结 Linux xxd命令
xxd是一个在Linux和UNIX系统中常用的工具#xff0c;主要用于将文件或标准输入转换为hex#xff08;十六进制主要用于将文件或标准输入转换为hex十六进制和ASCII美国信息交换标准代码表示。该命令同时也提供了从hex dump十六进制转储反向到二进制的功能。
安装xxd
通常情况下xxd命令默认已经包含在大多数Linux发行版中。如果操作系统中没有这个命令可以通过以下命令进行安装
sudo apt-get install vim-common或者
yum install vim-common这两个命令分别适用于基于Debian和基于Red Hat的Linux发行版。
基本使用方法
创建hex dump
xxd命令最常见的用法是创建一个文件的hex dump。例如可以使用以下命令来查看文件example.txt的hex dump
xxd example.txt这会将文件的内容转化为十六进制并显示每一行的偏移量offset。 从hex dump恢复到二进制
xxd命令还有一个很重要的功能就是可以从hex dump恢复到二进制。只需要使用-r选项例如
xxd -r example.txt.hex example.txt其中example.txt.hex是由xxd命令生成的hex dump文件example.txt则是恢复出的二进制文件。
示例
rootubuntu:/userdata/20231130_ffmpegTest/test20231210#
rootubuntu:/userdata/20231130_ffmpegTest/test20231210# cat example.txt.hex
00000000: e5a5 bde6 97a5 e5ad 90e8 bf98 e59c a8e5
00000010: 908e e5a4 b4e5 91a2 efbc 810a
rootubuntu:/userdata/20231130_ffmpegTest/test20231210#
rootubuntu:/userdata/20231130_ffmpegTest/test20231210# xxd -r example.txt.hex
好日子还在后头呢
rootubuntu:/userdata/20231130_ffmpegTest/test20231210# 命令选项
以下是xxd命令常用的一些选项
-p 或 --ps将输出结果以连续hexdump的方式显示不会显示偏移量或原始的字符数据。-r 或 --revert从hex dump反向到二进制。-s offset 或 --seek offset从指定的偏移量开始进行操作。-l len 或 --len len只处理指定长度的输入数据。-c cols 或 --cols cols设置每行显示的列数。
例如要查看一个二进制文件中从第100个字节开始的16个字节的hex dump可以使用如下命令
xxd -s 100 -l 16 binaryfile在这里-s 100告诉xxd从第100个字节开始-l 16表示只查看16个字节。
示例 疑难技术点解析
在脚本中使用xxd
xxd命令通常在shell脚本中使用作为数据处理的一部分。例如在分析网络协议或文件格式时可以用xxd来转换和查看二进制数据。
这种情况下通常会将xxd的输出重定向到一个文件或者通过管道传递给其他命令进行进一步处理。例如以下命令会创建一个hex dump并使用grep命令查找包含abcdef的行
xxd binaryfile | grep abcdef示例 从hex dump恢复数据
虽然xxd -r可以从hex dump恢复到二进制但这要求输入的格式必须是xxd能够识别的。如果hex dump的格式与xxd的输出格式不同可能需要先进行转换。
例如如果hex dump是连续的没有偏移量或原始的字符数据可以使用xxd -r -p来恢复。在这里-p选项告诉xxd忽略任何非hex字符。
echo 48656c6c6f | xxd -r -p上面的命令将输出Hello因为48656c6c6f是Hello在ASCII中的十六进制表示。 总结
xxd是一个功能强大的工具对于处理和分析二进制数据来说非常有用。尽管它的用法看起来可能有些复杂但只需要理解了基本的操作和选项就能够灵活地应对各种情况。