Linux 命令行十六进制编辑器:高效操作二进制文件

一、什么是十六进制(二进制)文件?

十六进制文件是以二进制形式存储数据的文件,其内容用十六进制数值表示。它们广泛用于程序代码、配置数据、图像、音频、视频等多种数据类型的存储场景。相比二进制,十六进制以更紧凑和直观的方式呈现数据,使开发者和分析人员能够更方便地观察和分析底层数据结构。

十六进制文件内容格式

十六进制文件的表示通常包括以下几部分:

  1. 偏移地址:每行数据的起始地址,通常用十六进制显示,指示该数据在文件中的位置。
  2. 十六进制数据:文件中的实际字节数据,以十六进制形式呈现,每字节(8 位)以两位十六进制数表示。
  3. ASCII 表示(可选) :将十六进制数据对应的 ASCII 字符显示在右侧;不可打印字符通常用 . 表示,方便理解内容。
示例

以下是十六进制文件的一种典型表示:

00000000  48 65 6C 6C 6F 20 57 6F  72 6C 64 21 0A           |Hello World!.|
0000000d
  • 偏移地址00000000 表示数据从文件的起始位置读取。
  • 十六进制数据48 65 6C 6C 6F 20 57 6F 72 6C 64 21 0A 是文件的字节内容。
  • ASCII 表示 :右侧的 Hello World! 是数据的 ASCII 表示,其中 0A 为换行符。

二、常用十六进制编辑器

1. xxd

xxd 是一款功能强大且轻量的十六进制工具,预装在大多数 Linux 系统中。它支持将文件内容转换为十六进制显示,同时支持将十六进制表示还原为二进制数据。

常用选项
  • xxd [filename]:以十六进制形式查看文件内容。
  • -r:将十六进制数据还原为原始二进制。
  • -p:以纯十六进制输出(无偏移地址和 ASCII)。
  • -s [offset]:从指定偏移量开始读取文件。
  • -l [length]:限制读取的字节长度。

示例

bash 复制代码
xxd file.bin              # 查看文件内容的十六进制表示  
xxd -r file.hex file.bin  # 将十六进制文件还原为二进制  

效果等同于 CyberShef 的from hexdump

bash 复制代码
xxd -p file.bin          # 仅输出文件的十六进制字节  

2. hexdump

hexdump 是经典的十六进制查看工具,功能灵活,支持格式化输出和偏移量控制。

常用选项
  • hexdump [filename]:默认以十六进制显示文件内容。
  • -C:以十六进制和 ASCII 字符同时显示文件内容。
  • -n [length]:限制读取的字节数。
  • -s [offset]:从指定偏移量读取文件。

示例

bash 复制代码
hexdump file.bin           # 查看文件内容  
hexdump -C file.bin        # 同时显示十六进制和 ASCII  
hexdump -n 32 file.bin     # 仅查看文件的前 32 字节  

3. hd

hdhexdump 的简化版,更直观且易用,适合快速查看文件内容。

常用选项

无需额外参数,直接运行即可:

bash 复制代码
hd file.bin                # 查看文件内容的十六进制表示  

4. bvi

bvi 是基于 vi 的十六进制编辑器,继承了 vi 的操作方式,支持精准修改文件的二进制内容。

常用操作
  • 启动编辑:

    bash 复制代码
    bvi file.bin
  • 操作命令:

    • :w 保存修改。
    • :q 退出编辑。
    • h/j/k/l 移动光标。
    • 在十六进制区域直接输入数据进行修改。

5. hexedit

hexedit 是终端下的另一款易用十六进制编辑器,界面简洁直观,支持快速修改文件内容。

常用操作
  • 启动编辑:

    bash 复制代码
    hexedit file.bin
  • 操作说明:

    • 使用方向键移动光标。
    • 在十六进制区域输入内容以修改数据。
    • Ctrl+x 保存并退出。

6. ht

ht 是功能全面的十六进制编辑器,支持文件的结构化查看、反汇编和数据分析。

常用操作
  • 启动编辑:

    bash 复制代码
    ht file.bin
  • 界面导航:

    • 使用方向键移动光标。
    • F3 保存修改。
    • Esc 进入主菜单,切换视图(如 ASCII、二进制)。

工具对比与选择

工具名称 功能特点 适用场景
xxd 轻量级,支持十六进制查看和还原 快速查看和转换文件内容
hexdump 输出灵活,支持偏移和长度控制 查看文件内容
hd 简单直观 快速查看
bvi 基于 vi 的强大编辑功能 精确修改二进制文件
hexedit 界面简洁,操作直观 快速编辑文件内容
ht 高级功能,支持反汇编 深度分析和文件编辑

总结

Linux 提供了多种命令行十六进制工具,可以满足不同场景的需求。对于仅需快速查看文件内容的用户,xxdhexdump 是理想选择;而对于需要修改或深入分析的用户,bvihexeditht 提供了更强大的功能。根据具体任务选择合适工具,有助于更高效地处理二进制文件。

相关推荐
新知图书12 分钟前
Linux C\C++编程-Linux系统的字符集
linux·c语言·c++
haiyanglideshi17 分钟前
sendto丢包
linux
魔理沙偷走了BUG26 分钟前
【Linux笔记】Day5
linux·笔记
利刃大大27 分钟前
【Linux系统编程】二、Linux进程概念
linux·c语言·进程·系统编程
阿政一号30 分钟前
Linux初识:【冯诺依曼体系结构】【操作系统概念】【进程部分概念(进程状态)(进程优先级)(进程调度队列)】
linux·服务器·指令·进程概念·linux操作系统
莲动渔舟1 小时前
国产编辑器EverEdit - 目录树
编辑器·emeditor·notepad·everedit
╰つ゛木槿1 小时前
深入探索 Vue 3 Markdown 编辑器:高级功能与实现
前端·vue.js·编辑器
小林想被监督学习1 小时前
RabbitMQ 仲裁队列 -- 解决 RabbitMQ 集群数据不同步的问题
linux·分布式·rabbitmq
xf8079892 小时前
cursor远程调试Ubuntu以及打开Ubuntu里面的项目
linux·运维·ubuntu
dot to one2 小时前
Linux 入门 常用指令 详细版
linux·服务器·centos