首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【Linux】一步一步学Linux——hexdump命令(267)

  • 23-11-18 14:00
  • 3545
  • 13169
blog.csdn.net

00. 目录

文章目录

    • 00. 目录
    • 01. 命令概述
    • 02. 命令格式
    • 03. 常用选项
    • 04. 参考示例
    • 05. 附录

01. 命令概述

hexdump命令一般用来查看文件的十六进制编码,但实际上它能查看任何文件,而不只限于二进制文件。

02. 命令格式

hexdump [选项] 文件 ...
  • 1

03. 常用选项

 -b              单字节八进制显示
 -c              单字节字符显示
 -C              规范化 十六进制+ASCII 显示
 -d              两字节十进制显示
 -o              两字节八进制显示
 -x              两字节十六进制显示
 -e 格式         用于显示数据的格式字符串
 -f 格式文件     包含格式字符串的文件
 -n 长度         只解释输入的指定长度个字节
 -s 偏移         跳过开头指定长度个字节
 -v              显示时不压缩相似的行
 -V              显示此帮助并退出
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

每个格式字符串由三部分组成,每个由空格分隔,第一个形如a/b,b表示对每b个输入字节应用format1格式,a表示对每a个输入字节应用format2格式,一般a>b,且b只能为1,2,4,另外a可以省略,省略则a=1。format1和format2中可以使用类似printf的格式字符串,如:

%02d:两位十进制
%03x:三位十六进制
%02o:两位八进制
%c:单个字符等
  • 1
  • 2
  • 3
  • 4

还有一些特殊的用法:

%_ad:标记下一个输出字节的序号,用十进制表示。
%_ax:标记下一个输出字节的序号,用十六进制表示。
%_ao:标记下一个输出字节的序号,用八进制表示。
%_p:对不能以常规字符显示的用 . 代替。
  • 1
  • 2
  • 3
  • 4

同一行如果要显示多个格式字符串,则可以跟多个-e选项。

04. 参考示例

4.1 以十六进制显示文件

[deng@localhost tmp]$ hexdump tmp
0000000 6568 6c6c 206f 6f77 6c72 0a64          
000000c
[deng@localhost tmp]$ 
  • 1
  • 2
  • 3
  • 4

4.2 -C 输出十六进制和对应字符

[deng@localhost tmp]$ hexdump -C tmp
00000000  68 65 6c 6c 6f 20 77 6f  72 6c 64 0a              |hello world.|
0000000c
[deng@localhost tmp]$ 
  • 1
  • 2
  • 3
  • 4

4.3 显示时不压缩相似的行

[deng@localhost tmp]$ hexdump -v tmp
0000000 6568 6c6c 206f 6f77 6c72 0a64 6568 6c6c
0000010 206f 6f77 6c72 0a64 6568 6c6c 206f 6f77
0000020 6c72 0a64 6568 6c6c 206f 6f77 6c72 0a64
0000030
[deng@localhost tmp]$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.4 显示时不压缩相似的行和字符

[deng@localhost tmp]$ hexdump -Cv tmp
00000000  68 65 6c 6c 6f 20 77 6f  72 6c 64 0a 68 65 6c 6c  |hello world.hell|
00000010  6f 20 77 6f 72 6c 64 0a  68 65 6c 6c 6f 20 77 6f  |o world.hello wo|
00000020  72 6c 64 0a 68 65 6c 6c  6f 20 77 6f 72 6c 64 0a  |rld.hello world.|
00000030
[deng@localhost tmp]$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.5 只输出给定字节

[deng@localhost tmp]$ hexdump -Cv tmp -n 4
00000000  68 65 6c 6c                                       |hell|
00000004
[deng@localhost tmp]$ hexdump -Cv tmp -n 2
00000000  68 65                                             |he|
00000002
[deng@localhost tmp]$ hexdump -Cv tmp -n 1
00000000  68                                                |h|
00000001
[deng@localhost tmp]$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4.6 从指定偏移量开始输出

[deng@localhost tmp]$ hexdump -Cv tmp -s 1 -n 4
00000001  65 6c 6c 6f                                       |ello|
00000005
[deng@localhost tmp]$ hexdump -Cv tmp -s 2 -n 4 
00000002  6c 6c 6f 20                                       |llo |
00000006
[deng@localhost tmp]$ hexdump -Cv tmp -s 3 -n 4 
00000003  6c 6f 20 77                                       |lo w|
00000007
[deng@localhost tmp]$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4.7 格式化输出

[deng@localhost tmp]$ hexdump -v -e '/1 "%02X"' tmp;echo
68656C6C6F20776F726C640A

[deng@localhost tmp]$ echo hello | hexdump -e '8/1 "%02X ""\t"" "' -e '8/1 "%c""\n"'
68 65 6C 6C 6F 0A        hello

[deng@localhost tmp]$ echo hello | hexdump -v -e '"x" 1/1 "%02X" " "' ; echo
x68 x65 x6C x6C x6F x0A 
[deng@localhost tmp]$ echo hello | hexdump -v -e '/1 "%02X\n"'
68
65
6C
6C
6F
0A
[deng@localhost tmp]$ echo hello | hexdump -v  -e '/1  "%_ad#  "' -e '/1 " _%_u\_\n"'
0#   _h_
1#   _e_
2#   _l_
3#   _l_
4#   _o_
5#   _lf_
[deng@localhost tmp]$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

05. 附录

参考:【Linux】一步一步学Linux系列教程汇总

注:本文转载自blog.csdn.net的沧海一笑-dj的文章"https://blog.csdn.net/dengjin20104042056/article/details/101457460"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top