当前位置: 首页 > news >正文

Linux xxd命令

目录

  • 一. xxd命令简介
  • 二. 简单使用
  • 三. `-p`选项纯16进制输出
  • 四. `-r`选项将十六进制还原成原始内容
  • 五. 小应用


一. xxd命令简介

xxd 是一个将文件或输入内容转换为十六进制(Hex Dump)格式的工具,也可以将十六进制恢复成原始数据。
它在调试二进制文件、查看编码细节时非常有用。

选项含义
-p将文本转换为纯十六进制格式(无地址和 ASCII)显示
-r从十六进制还原为文本

二. 简单使用

⏹有如下文本

  • 文本中含有控制字符\x0E
  • echo命令默认情况下会在输出结尾自动添加一个换行符 \n,除非手动指定 -n 参数显式禁止它。
apluser@ubuntu24-01:~$ cat <(echo -e "20250635,1,,,uuid_jksje\x0Eiuyh,MPLE2002,0") | xxd
00000000: 3230 3235 3036 3335 2c31 2c2c 2c75 7569  20250635,1,,,uui
00000010: 645f 6a6b 736a 650e 6975 7968 2c4d 504c  d_jksje.iuyh,MPL
00000020: 4532 3030 322c 300a                      E2002,0.
  • 当我们在终端执行的时候,可以看到控制字符和换行符最终都会被高亮显示

在这里插入图片描述

  • 执行效果和我们通过文本编辑器的16进制查看的效果相同

在这里插入图片描述


三. -p选项纯16进制输出

apluser@ubuntu24-01:~$ echo -e "20250635,1,,,uuid_jksje\x0Eiuyh,MPLE2002,0" | xxd -p
32303235303633352c312c2c2c757569645f6a6b736a650e697579682c4d
504c45323030322c300a

四. -r选项将十六进制还原成原始内容

apluser@ubuntu24-01:~$ echo -e "20250635,1,,,uuid_jksje\x0Eiuyh,MPLE2002,0" | xxd -p
32303235303633352c312c2c2c757569645f6a6b736a650e697579682c4d
504c45323030322c300a
apluser@ubuntu24-01:~$
apluser@ubuntu24-01:~$ echo -e "20250635,1,,,uuid_jksje\x0Eiuyh,MPLE2002,0" | xxd -p | xxd -p -r
20250635,1,,,uuid_jksjeiuyh,MPLE2002,0
apluser@ubuntu24-01:~$

五. 小应用

⏹前提

  • 因为商用的log文件中混入了控制字符,直接使用cat或者grep等命令无法将控制字符打印在控制台上
  • 项目中的商用log文件如果要带出本番环境的话,需要走一系列繁琐的申请流程

😈可通过下面这种方式变相的带出😈

  • 通过sha256sum计算原始文件的hash值
  • 通过cat 文件名 | xxd -p的方式将文本的16进制内容打印到控制台上
  • 将控制台上的16进制内容复制到自定义的文件中并保存
  • 然后使用cat 自定义文件 | xxd -p -r > 原始文件进行文本恢复
  • 最后再使用sha256sum计算恢复之后的文本的hash值

🧐只要原始文件的hash值和我们恢复之后的文件的hash值保持相同的话,就说明我们的文件恢复是没有问题的,内容和原始文件完全相同。

http://www.dtcms.com/a/117666.html

相关文章:

  • DeepSeek-MLA
  • 如何将内网的IP地址映射到外网?详细方法与步骤解析
  • 关于lombok的异常快速解决办法
  • 前端加密与Python逆向实战:HMAC-SHA1算法分析与数据抓取
  • OpenEuler部署Flink 1.19.2完全分布式集群
  • 极氪汽车云原生架构落地实践
  • 交换机工作在OSI模型的哪一层?
  • 比较与分析敏捷开发方法:XP、Scrum、FDD等的特点与适用场景
  • 计算机网络 3-2 数据链路层(流量控制与可靠传输机制)
  • uniapp App页面通过 web-view 调用网页内方法
  • 协方差相关问题
  • 前后端接口参数详解与 Mock 配置指南【大模型总结】
  • 区块链知识点4
  • 学透Spring Boot — 015. 自废武功——关闭自动配置
  • Ubunut18.04 离线安装MySQL 5.7.35
  • Vue3 路由权限管理:基于角色的路由生成与访问控制
  • YOLOv1学习笔记
  • 2. Qt界面文件原理
  • Java面向对象编程详解
  • VUE中的CompositionAPI绑定
  • leetcode274.H指数
  • Java 知识点汇总(三)
  • Android Compose 中获取和使用 Context 的完整指南
  • 数字人分身源码搭建:支持OEM
  • 浅谈「分词」:原理 + 方案对比 + 最佳实践
  • c语言常见类型的范围到底是啥?
  • Ubertool 的详细介绍、安装指南及使用说明
  • 垃圾回收——三色标记法(golang使用)
  • python Socket编程
  • 典型的ETL使用场景与数据集成平台的应用