hexdump用法_linux dump命令

hexdump用法_linux dump命令本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,并注明原作者及原链接。内容可任意使用,但对因使用该内容引起的后果不做任何保证。作者:fireaxe_hq@hotmail.com博客:fireaxe.blog.chinaunix.net转自:http://blog.chinaunix.net/uid-20528014-id-4087756.html开发时经常会…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,并注明原作者及原链接。内容可任意使用,但对因使用该内容引起的后果不做任何保证。

作者:fireaxe_hq@hotmail.com

博客:fireaxe.blog.chinaunix.net

转自:
http://blog.chinaunix.net/uid-20528014-id-4087756.html


开发时经常会需查看非文本文件内容,最常见的16进制查看器就是hexdump。hexdump 看似简单,但还是有些小技巧的。




以文本文件tmpfile为例:

点击(此处)折叠或打开

  1. Happy New Year!
  2. Happy New Year!
  3. Happy New Year!

1)  最简单的方式


hexdump testfile



0000000 6148 7070 2079 654e 2077 6559 7261 0a21
*
0000030



这种方式是以两个字节为一组,其顺序取决于本机字节序。比如在x86架构上就是以blittle-endian方式显示,看起来会很费劲。


如第一行翻译成ascii码:


6148 7070 2079 654e 2077 6559 7261 0a21


aH     pp      y     Ne      w     e      ae     !r




为了避免这种情况,就要用到下面的”以字节方式查看“




2)  以字节方式查看


hexdump -C testfile -s skip -n number



00000000  48 61 70 70 79 20 4e 65  77 20 59 65 61 72 21 0a  |Happy New Year!.|
*
00000030



这种方式就不会有字节序问题了,而且还能同时显示16进制与ascii码,但存在的问题是,如果某几行的内容相同,会省略掉后几行,这个有时也会造成麻烦。如何避免省略呢?




3) 不要省略


hexdump -v testfile



0000000 6148 7070 2079 654e 2077 6559 7261 0a21
0000010 6148 7070 2079 654e 2077 6559 7261 0a21
0000020 6148 7070 2079 654e 2077 6559 7261 0a21
0000030



现在省略是没有了,但又回到了两字节显示的老路上,所以我们要把两种方式结合起来。




4) 字节方式显示且不要省略


hexdump -Cv testfile



00000000  48 61 70 70 79 20 4e 65  77 20 59 65 61 72 21 0a  |Happy New Year!.|
00000010  48 61 70 70 79 20 4e 65  77 20 59 65 61 72 21 0a  |Happy New Year!.|
00000020  48 61 70 70 79 20 4e 65  77 20 59 65 61 72 21 0a  |Happy New Year!.|
00000030



现在就好看多了,既是以单字节方式显示,又不会省略了。但有时文件很大,我们只想查看其中一段,怎么把呢?




5) 显示某一段


hexdump -Cv testfile -s skip -n number



fireaxe $ hexdump -Cv tmp.txt -n 1
00000000  48                                                |H|
00000001

fireaxe $ hexdump -Cv tmp.txt -n 2
00000000  48 61                                             |Ha|
00000002

fireaxe $ hexdump -Cv tmp.txt -n 3
00000000  48 61 70                                          |Hap|
00000003

fireaxe $ hexdump -Cv tmp.txt -s 1 -n 1
00000001  61                                                |a|
00000002
fireaxe $ hexdump -Cv tmp.txt -s 2 -n 1
00000002  70                                                |p|
00000003
fireaxe $ hexdump-Cv tmp.txt -s 3 -n 1
00000003  70                                                |p|
00000004



OK, 整个显示过程都可以自由控制了~~



本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,并注明原作者及原链接。内容可任意使用,但对因使用该内容引起的后果不做任何保证。

作者:fireaxe_hq@hotmail.com

博客:fireaxe.blog.chinaunix.net

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191124.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 分布式锁的实现和应用场景_redis分布式锁释放锁

    分布式锁的实现和应用场景_redis分布式锁释放锁分布式锁为了解决分布式场景下全局加锁的问题。在单体项目中可以使用synchronize完成对于不同线程之间的资源争抢问题。但是在分布式场景下,synchronize只能对其中一个项目进行资源控制,进程之间的资源增强仍然无法解距。换言之,可以将分布式锁理解为对于整个分不是系统的synchronize。通常使用独立与线程之外的工具控制资源,如redis及框架redisson。1.传统单体架构业务流程synchronized(this){ /** 业务逻辑扣减库存 */}以上代码对于单体架构可

    2025年10月1日
    3
  • DNS工作原理

    DNS工作原理

    2021年11月12日
    55
  • javascript 基础_JavaScript高级编程

    javascript 基础_JavaScript高级编程JavaScript知识总结(高级篇)1.深入基础1.1数据类型1.分类:-基本类型-String:任意字符串-Number:任意的数字-boolean:true/false-undefined:未定义-null:空-引用(对象)类型-Object:任意对象-Function:一种特别的对象(可以执行)-Array:一种特别的对象(数值下标,内部数据是有序的)2.判断:-typeof:可以判断:undefined、数值、字符串、布尔值不能判断:null与object

    2022年8月20日
    7
  • 解决iframe嵌套页面问题「建议收藏」

    解决iframe嵌套页面问题「建议收藏」/*如果页面嵌套,跳出嵌套*/if(window.top!=window.self){top.location=this.location;}

    2022年6月26日
    22
  • 使用引用

    使用引用

    2021年10月10日
    40
  • java遍历数组取出最大值_求数组20个数的平均值

    java遍历数组取出最大值_求数组20个数的平均值求平均值与最大值实现前需要懂得如何获取数组长度实现数组遍历例如:int[]array={2,3,6,8,18};for(inti=0;i<array.length;i++){System.out.print(array[i]+”,”);}输出结果:2,3,6,8,18求最大值时则采用擂台制现默认一个数为最大值(max)使用循环遍历数组中的每个数进行两两比较从而得出最大值。实现代码importjav

    2022年9月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号