17370845950

linux十六进制查看和编辑工具是什么-xxd 命令使用与实例

Linux xxd 工具

xxd 是 Linux 系统中一款用于将文件内容转换为十六进制格式的命令行工具,常用于数据调试和二进制分析。

它不仅可以显示文件的十六进制表示,还可以将十六进制还原为原始二进制数据。

基本语法

xxd [参数] [输入文件 [输出文件]]
  • 输入文件:待处理的文件。若未提供,则从标准输入读取。
  • 输出文件:结果保存的目标文件。若未指定,则输出到标准输出。

常用参数说明:

  • -r:执行反向操作,将十六进制还原成二进制。
  • -p:以纯十六进制形式输出(不带地址偏移和 ASCII)。
  • -c cols:设置每行显示的字节数,默认为 16。
  • -g bytes:定义每组显示的字节数,默认是 2。
  • -s offset:从指定偏移位置开始读取文件(支持负数偏移)。
  • -l length:限制输出的数据长度。
  • -u:输出大写的十六进制字符。
  • -i:生成 C 语言数组格式的输出。
  • -b:输出二进制位代替十六进制。

常用示例

查看文件的十六进制内容:

xxd filename

将文本转换为十六进制:

echo "Hello World" | xxd

调整每行显示的字节数:

xxd -c 8 filename

还原十六进制为原始数据:

xxd -r hexfile

仅显示十六进制部分:

xxd -p filename

限定输出范围:

xxd -s 0x10 -l 0x20 filename

实战案例

1. 显示文件的十六进制内容

xxd filename.txt

输出示例:

00000000: 4865 6c6c 6f0a                           Hello.

2. 每行只显示 8 字节数据

xxd -c 8 filename.txt

输出示例:

00000000: 4865 6c6c 6f0a 0000                      Hello...

3. 将十六进制数据还原为二进制文件

xxd -r hexfile.txt original.bin

4. 从特定偏移量开始显示内容

xxd -s 0x10 filename.txt

5. 输出纯十六进制格式

xxd -p filename.txt

输出示例:

48656c6c6f0a

6. 生成 C 数组格式

xxd -i filename.txt

输出示例:

unsigned char filename_txt[] = {
  0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x0a
};
unsigned int filename_txt_len = 6;

7. 十六进制输出使用大写字母

xxd -u filename.txt

输出示例:

00000000: 4865 6c6c 6f0a                           Hello.

8. 只显示前 16 个字节

xxd -l 16 filename.txt

9. 以二进制方式显示内容

xxd -b filename.txt

输出示例:

00000000: 01001000 01100101 01101100 01101100 01101111 00001010  Hello.