news 2026/4/17 15:58:53

linux字节流相关工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux字节流相关工具

参考

linux常用脚本

Linux 底层调试命令

—— dd / hexdump / od / cmp / printf / xxd / strings / tr 等

本文关注的是“字节级工具”
驱动 / FPGA / 嵌入式 / initramfs / 协议调试的必需品。


一、命令分层

可以把这些命令分为 5 层:

  1. 数据生成(造数据)
  2. 数据搬运(I/O)
  3. 数据观察(dump)
  4. 数据比较(验证)
  5. 数据变换(处理)

二、dd —— 原始 I/O 的王者

2.1 dd 是什么?

dd 是一个按块复制字节流的工具


2.2 基本语法

ddif=<输入>of=<输出>bs=<块大小>count=<块数>

2.3 常用参数详解

参数说明
if输入文件或设备
of输出文件或设备
bs块大小
count块数量
skip输入跳过块
seek输出跳过块
conv=notrunc不截断输出文件

2.4 用法

生成固定大小文件

ddif=/dev/zeroof=1m.binbs=1Mcount=1

偏移写(寄存器 / 协议)

printf"\xAA\x55"|ddof=data.binbs=1seek=16conv=notrunc

设备读取

ddif=/dev/pl_dataof=out.binbs=4Kcount=1

性能测试

timeddif=/dev/pl_dataof=/dev/nullbs=64Kcount=1024

三、hexdump —— 二进制可视化

3.1 hexdump 是干啥的?

把不可读的二进制,变成人类可理解的形式


3.2 最常用模式

hexdump -C file.bin

输出结构:

  • 偏移
  • 十六进制
  • ASCII

3.3 精确控制输出格式(高级)

hexdump -v -e'4/4 "%11u "'-e'"\n"'/dev/pl_data#解释:# 4/4:一次读 4 个 4 字节# %11u:无符号整数# -e '"\n"':每行换行

3.4 hexdump 是否阻塞?

  • 对普通文件:不阻塞
  • 对字符设备:取决于驱动 read()
  • 对管道:等待数据

四、od —— hexdump 的“理科生版本”

4.1 od 是什么?

od =octal dump

一个更“数学化”的二进制查看工具


4.2 常用参数

od -Ax -tx1 file.bin
参数含义
-Ax偏移用十六进制
-tx1单字节十六进制
-td44 字节十进制
-tf浮点数

4.3 od vs hexdump

项目hexdumpod
可读性
格式灵活性
工程习惯老 UNIX

4.4 适合场景

  • FPGA 输出寄存器
  • ADC 原始数据
  • 浮点格式检查

五、cmp —— 二进制对比神器

5.1 cmp 是什么?

cmp 用来比较两个文件的字节是否完全一致


5.2 基本用法

cmpa.bin b.bin
  • 无输出:完全相同
  • 有输出:报告第一个不同字节

5.3 静默模式(脚本必备)

cmp-s a.bin b.binecho$?# 0 相同,1 不同

5.4 工程级用途

  • DMA 前后数据校验
  • Flash 写入校验
  • 回环验证

5.5 cmp vs diff

项目cmpdiff
对象二进制文本
输出简洁详细
是否结构化

六、xxd —— hexdump + 反编译能力

6.1 xxd 是什么?

xxd 不仅能 dump,还能反向生成二进制


6.2 基本用法

xxd file.bin

6.3 反向生成(二进制“反汇编”)

xxd dump.txt > dump.hex
xxd -r dump.hex > file.bin

👉 hexdump / od做不到


七、printf —— shell 中的“二进制画笔”

7.1 printf 能干啥?

  • 格式化文本
  • 输出精确字节
  • 构造协议帧

7.2 输出原始字节

printf"\x01\x02\x03\x04">raw.bin

7.3 和 dd 联用

printf"\xDE\xAD\xBE\xEF"|ddof=mem.binbs=1seek=128conv=notrunc

八、strings —— 从二进制中“捞文本”

8.1 strings 是什么?

提取二进制中的可打印字符串


8.2 用途

strings firmware.bin strings vmlinux

8.3 工程场景

  • 固件分析
  • 版本号确认
  • Debug 信息确认

九、tr —— 字节级替换工具

9.1 tr 是什么?

tr 用来逐字节映射 / 删除


9.2 示例

删除所有 0x00:

tr-d'\000'<data.bin

9.3 简单编码处理

tra-z A-Z<file.txt

十、stat / wc / cat -A

10.1 stat

查看 inode / block / 时间戳

statfile.bin

10.2 wc

wc-c file.bin# 字节数

10.3 cat -A

显示不可见字符

cat-A file.txt

十一、组合使用

11.1 DMA 验证流程

printf"\x01\x02\x03\x04">in.binddif=in.binof=/dev/pl_dmaddif=/dev/pl_dmaof=out.bincmpin.bin out.bin

11.2 寄存器观察

watch-n1"od -Ax -tx4 /dev/pl_reg"

十二、总结

工具角色
dd搬运工
hexdump眼睛
od理科视角
cmp判官
printf画笔
xxd可逆工具
strings探针
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 22:37:47

汽车制造OA系统如何调用WordPress API导入Excel数据?

要求&#xff1a;开源&#xff0c;免费&#xff0c;技术支持 博客&#xff1a;WordPress 开发语言&#xff1a;PHP 数据库&#xff1a;MySQL 功能&#xff1a;导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏 平台&#xff1a;Window…

作者头像 李华
网站建设 2026/4/15 9:51:09

提升论文产出的利器:7款工具功能拆解及场景适配

工具核心特点速览 工具名称 核心优势 适用场景 数据支撑 aibiye 全流程覆盖降重优化 从开题到答辩的一站式需求 支持20万字长文逻辑连贯 aicheck 院校规范适配模板化输出 国内本硕博论文框架搭建 覆盖90%高校格式要求 秒篇 3分钟文献综述生成 紧急补文献章节 知…

作者头像 李华
网站建设 2026/4/16 18:26:09

【能源行业案例】借助LightningChart打造高性能工业级数据可视化能力

在智能制造、能源监测与工业分析等领域中&#xff0c;高性能数据可视化是构建现代软件产品核心能力的重要环节。瑞典能源测量与电力质量分析解决方案提供商 Metrum Sweden AB 成功采用 LightningChart JS 高性能数据可视化库&#xff0c;显著提升其基于 Web 的实时图表展示功能…

作者头像 李华
网站建设 2026/4/14 21:49:20

springboot游泳馆管理系统

目录游泳馆管理系统摘要项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作游泳馆管理系统摘要 游泳馆管理系统基于SpringBoot框架开发&#xff0c;旨在提升游泳馆运营效率与管理水平。系统采用B/S架构&#…

作者头像 李华
网站建设 2026/4/16 16:13:56

为什么2026年是学习机器学习的最佳时机?职业红利解析

测试人员的十字路口 2026年&#xff0c;软件测试领域正经历颠覆性变革。传统手工测试和基础自动化工具已无法应对微服务架构、IoT设备及跨平台应用的复杂性&#xff0c;测试时间占比飙升至40%&#xff0c;而企业发布周期压缩至每周一次。与此同时&#xff0c;机器学习&#xf…

作者头像 李华