Linux下文件十六进制查看工具

下午突然想到,内存有大端小端,那么磁盘存储有吗?
要看文件的十六进制格式,想了想命令只记起来一个od。。。
od真odd,做了一番功课后,记一记linux下常用的十六进制查看工具。
让我倍感意外的是,utf8编码,一个汉字用3个字节表示,我以前一直以为是2个字节。。。这个要读读相关的标准才知道了。
另外,使用gedit打开文本,编辑后会自动在最末端添上0x0A换行符。


1. od - dump files in octal and other formats
  顾名思义是查看八进制,可以通过指定参数为查看十六进制
  -A 指定左边侧栏显示的地址基数,默认为八进制
  -t 指定输出单元的进制格式和字节数
  -x = -t x2 输出单元为双字节(注意:每单元内排列顺序从左到右为 [高字节|低字节])
  例:
[atom@localhost code]$ od -t x1 txtfile
0000000 74 68 65 20 71 75 69 63 6b 20 66 6f 78 20 6a 75
0000020 6d 70 20 6f 76 65 72 20 6c 61 7a 79 20 64 6f 67
0000040 73 0a
0000042

[atom@localhost code]$ od -A x -t x1 txtfile
000000 74 68 65 20 71 75 69 63 6b 20 66 6f 78 20 6a 75
000010 6d 70 20 6f 76 65 72 20 6c 61 7a 79 20 64 6f 67
000020 73 0a
000022

[atom@localhost code]$ od -A x -x txtfile
000000 6874 2065 7571 6369 206b 6f66 2078 756a
000010 706d 6f20 6576 2072 616c 797a 6420 676f
000020 0a73
000022

2. hexdump - ascii, decimal, hexadecimal, octal dump
  查看十六机制的首选工具。
  -c 每单元以字节为单位,显示出对应的ASCII码
  -C 每单元以字节为单位,同时显示十六机制和ASCII码
  例:
[atom@localhost code]$ hexdump -c txtfile
0000000   t   h   e       q   u   i   c   k       f   o   x       j   u
0000010   m   p       o   v   e   r       l   a   z   y       d   o   g
0000020   s  \n                                                       
0000022

[atom@localhost code]$ hexdump -C txtfile
00000000  74 68 65 20 71 75 69 63  6b 20 66 6f 78 20 6a 75  |the quick fox ju|
00000010  6d 70 20 6f 76 65 72 20  6c 61 7a 79 20 64 6f 67  |mp over lazy dog|
00000020  73 0a                                             |s.|
00000022

3. xxd - make a hexdump or do the reverse.
  能够显示文件对应的十六机制格式,同时还能将修还后的十六进制格式反写回文件,一般与vim结合使用。(利用vim的:! 参数执行外部命令)
使用过程如下:
(1)用vim打开要查看文件
    vim txtfile
(2)在vim命令模式下输入
  :% !xxd
  解释: %表示文件的所有行,!xxd表示执行外部命令xxd,结合在一起,就是把当前vim上显示的所有行传递给xxd,xxd把处理后的结果重新显示在vim上。
  结果如图所示
Linux下文件十六进制查看工具 

(3)这时候可以直接在上面修改十六进制值。注意:当前修改了十六进制值,右边侧栏的ASCII码并不会相应改变。
(4)修改完毕后,反写回原文件。在vim命令模式下输入
 :% !xxd -r
  只有十六进制的修改部分才会被采用,右边侧栏的ASCII码值忽略不管。

 如果你不熟悉vim,可以参考vim自带的vimtutor,然后再参考vim cookbook,主流的技巧就算是掌握了。

带GUI的十六进制编辑器,可以参考ghex和bless,有很多。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值