游乐游手机版
首页/系统平台/文章详情

Linux hexdump命令查看文件十六进制

时间:2026-06-23 07:19
hexdump-C是查看文件十六进制与ASCII混合输出的首选,格式稳定,避免其他参数如-x、-d导致的字节顺序错误。使用-s跳过指定字节、-n限制显示长度。中文UTF-8文件右侧ASCII栏显示为点属正常。替代工具xxd更适宜日常调试。
在Linux系统中使用hexdump查看文件时,-C参数是最稳妥的十六进制与ASCII混合输出模式。它按字节显示两位十六进制数,右侧对齐ASCII字符,并带有8位固定偏移量,格式稳定且易于定位。相比之下,其他模式如-x、-d、-b、-o或默认无参数行为都容易导致字节顺序颠倒或信息缺失,造成误读。

Linux怎么使用hexdump查看文件十六进制

### hexdump -C 是最可靠的选择 许多用户在分析二进制文件时习惯直接执行 `hexdump file` 或添加 `-x` 参数,殊不知这两者都隐藏着隐患。不带参数时,hexdump按双字节(16位)解释数据,例如将 `48 65 6c 6c` 显示为 `6548 6c6c`,字节顺序恰好颠倒;而 `-x` 模式默认为小端序(little-endian)拼合,结果更是彻底错乱。若想看到原始字节的真实排列,务必使用 `-C` 参数——这是真正开箱即用的正确选择。 实际上,`hexdump -C` 等价于 `-v -e '16/1 "%02x " " |" 16/1 "%_p" "\|n"'` 格式,输出严格分为三栏:左侧为字节偏移地址(hex offset),中间每16个字节展示为以空格分隔的十六进制值,右侧是对应的ASCII字符(不可见或非打印字符统一替换为点号 `.`)。 举几个实战场景: * `hexdump -C /bin/ls`:快速查看ELF文件头部,`7f 45 4c 46` 等魔数一目了然。 * `hexdump -C huge.bin | less`:对于大文件,利用管道分页显示,避免刷屏,便于逐屏分析。 * 如果需要全大写格式的十六进制输出,`-C` 不支持,可改用 `xxd -g1` 或自行编写 `-e` 格式实现。 ### 定位指定字节段:-s 和 -n 参数的用法与陷阱 `-s` 参数含义是 skip(跳过),而非 seek(定位)。它让hexdump从文件开头跳过指定数量的字节后再开始读取,而不是直接定位到第N个字节。例如要查看偏移量 0x800(十进制2048)开始的32个字节,命令如下: ```bash hexdump -C -s 0x800 -n 32 file.bin ``` 这里有三个容易忽略的细节: * `-s` 参数支持多种数值格式:十进制(如 `2048`)、十六进制(如 `0x800`)以及带单位表示(如 `2K`),但注意不能混用单位。 * `-n` 限制的是“显示长度”,而非“读取长度”。如果文件剩余内容不足32字节,hexdump会显示实际能读到的部分,不会报错。 * 偏移量从0开始计算,`-s 0` 等价于不使用该参数。 ### 中文UTF-8文件显示全是点?并非乱码,而是正常渲染 `hexdump -C` 右侧的ASCII展示列仅显示可打印ASCII字符(范围 `0x20` ~ `0x7e`),超出此范围的字符合部显示为点号 `.`。UTF-8 编码的中文字符每个通常占用3个字节,且字节值大多在 `0x80` 以上,因此整个中文内容在ASCII列呈现为连续的点——这恰恰表明文件编码正常,并未损坏。 验证方法也很直接: * 首先使用 `file -i file.txt` 确认文件编码是否为 `utf-8`。 * 接着运行 `iconv -f utf-8 -t ascii//ignore file.txt`,查看忽略非ASCII字符后剩余的内容。 * 若需要查看解码后的实际文本,`hexdump` 并不适合,建议改用 `xxd -g1 file.txt | less` 或 `od -tc` 配合查看。 ### 更优选择:xxd 比 hexdump 更适合日常调试与转换 当需要导出纯十六进制字符串,或反向将 hex 数据转换回二进制时,`xxd` 比 `hexdump` 更稳定可靠: * 导出无空格连续的 hex 字符串:`xxd -p file.bin | tr -d '\n'`(相比之下,`hexdump -v -e '/1 "%02x"' file.bin` 容易遗漏空格)。 * hex 字符串转回二进制文件:`echo "7f454c46" | xxd -r -p > out.bin`(而 `hexdump -r` 对输入格式要求苛刻,经常失败)。 * xxd 在 macOS 和 Linux 上均默认安装,语法一致。虽然 `od -t x1` 符合 POSIX 标准,但默认按4字节对齐,需加上 `-An -w1` 才能接近 `-C` 的效果。 归根结底,掌握hexdump的关键不在于命令本身,而在于理解几个核心概念:偏移量是字节索引(从0开始)、ASCII栏只是渲染规则(仅显示可打印字符)、`-x`/`-d`/`-o` 等参数实际是按多字节分组解释。只要其中任何一个细节出错,解析出的数据就会完全偏离原始内容。
来源:https://www.php.cn/faq/2691890.html
上一篇统信UOS开机自动开启数字键设置方法 下一篇银河麒麟系统安装解压缩软件教程
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送