在Linux系统操作中,查看文件的16进制(Hexadecimal)内容是调试、数据分析或逆向工程的关键步骤。本文将系统介绍常用的命令行工具及其进阶用法,并对比其功能差异。

Linux提供了多种查看16进制内容的工具,以下为最常用的三种:
| 工具名称 | 安装方式 | 基础命令 | 核心参数说明 |
|---|---|---|---|
| hexdump | 默认安装 | hexdump -C 文件名 | -C:显示Canonical格式(16进制+ASCII) |
| xxd | 安装vim-common | xxd 文件名 | -p:纯16进制输出;-r:反向转换 |
| od | 默认安装 | od -t x1 文件名 | -t x1:每字节16进制;-A n:隐藏地址列 |
1. hexdump高级用法
输出偏移地址及文本预览:
hexdump -Cv /bin/ls | head -n 5
-v参数禁止压缩重复行,适合分析连续数据。
2. xxd二进制编辑
生成可编辑的16进制转储文件:
xxd binary_file > hexdump.txt
vim hexdump.txt
xxd -r hexdump.txt modified_binary
3. od多格式输出
混合显示不同类型数据:
od -t xz -A x sample.bin
| 工具 | 支持编辑 | 跳转功能 | 搜索能力 | 最佳适用场景 |
|---|---|---|---|---|
| hexdump | ❌ | ❌ | ❌ | 快速预览 |
| xxd | ✅ | ❌ | ❌ | 文本管道处理 |
| GHex | ✅ | ✅ | ✅ | GUI交互编辑 |
1. 联合grep进行模式匹配
xxd -p file.bin | grep -i "a1b2"
2. 网络数据包分析
使用tcpdump抓包后直接转16进制:
tcpdump -nn -XX -vvv -i eth0
3. 内存地址查看
通过/proc接口读取进程内存:
xxd /proc/$PID/mem $START_ADDR $COUNT
处理大文件时推荐:
dd if=largefile.bin bs=1M count=100 | xxd -
通过dd分块读取避免内存溢出,结合管道实现流式处理。
掌握这些工具后,您可以在Linux环境中高效完成二进制数据分析、固件解析及文件恢复等工作。根据任务复杂度选择对应工具:日常检查用hexdump,编辑操作选xxd,GUI环境推荐GHex,实现精准的十六进制操作。