linux hexdump使用
2019-09-23 16:39 abce 阅读(1697) 评论(0) 编辑 收藏 举报1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # hexdump -h hexdump: invalid option -- 'h' Usage: hexdump [options] file ... Options: -b one-byte octal display #单字节八进制显示 -c one-byte character display #单字节字符显示 -C canonical hex+ASCII display #规范化 十六进制+ASCII 显示 -d two-byte decimal display #两字节十进制显示 -o two-byte octal display #两字节八进制显示 -x two-byte hexadecimal display #两字节十六进制显示 -e format format string to be used for displaying data #格式 用于显示数据的格式字符串 -f format_file file that contains format strings #格式文件 包含格式字符串的文件 -n length interpret only length bytes of input #长度 只解释输入的指定长度个字节 -s offset skip offset bytes from the beginning #偏移 跳过开头指定长度个字节 - v display without squeezing similar lines #显示时不压缩相似的行 -V output version information and exit #显示此帮助并退出 |
1 2 3 4 5 6 | # more a.txt abcde ABCDE # hexdump a.txt 0000000 6261 6463 0a65 4241 4443 0a45 000000c |
第一列表示:文件偏移量
第二列表示:以两个字节为一组的十六进制
上面的输出结果翻译一下,就是:
1 | badc0aeBADC0aE |
(注意:在Linux中换行符\n 的十六进制为0a,在windows中,换行为\r\n的十六进制编码为:0d 0a)
为什么翻译成文本成倒序了呢?
其实这是CPU架构所致,感兴趣的可以看下大小端的定义:
1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。(X86 CPU系列采用的位序)
2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
3) 网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。
有没有更加较便于方便的查看方式了?有,这也是较常用的方式。
以16进制和相应的ASCII字符显示文件里的字符:
1 2 3 | # hexdump -C a.txt 00000000 61 62 63 64 65 0a 41 42 43 44 45 0a |abcde.ABCDE.| 0000000c |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2016-09-23 RAC转换为RAC One Node
2016-09-23 RAC One Node转换为RAC
2016-09-23 rac one node在线relocation
2015-09-23 RHCE7 管理II-2 通过grep使用正则表达式
2015-09-23 RHCE7 管理II-3使用VIM编辑器