linux二进制/十六进制日志文件如何查看和编辑

使用cat查看二进制,显示乱码

[root@localhost ~]# cat /var/log/wtmp
~~~reboot3.10.0-514.el7.x86_64  �YO#5~~~runlevel3.10.0-514.el7.x86_64��Y��
,':0:0(unknown):0��YJ1':0:0:0��Y��J(:0:0bp:0��Y�m
�+pts/0/0bp:0��YMC
pts/0/0bp��Yh�
              �,pts/0/0bp:0�Y�![(:0:0:0��YUpts/0/0bp��Y�`�.:0:0(unknown):0��Y�.:0:0:0��YH@�/:0:0root:0��Y���1pts/0/0root:0��Y[�3pts/1ts/1root192.168.2.1��Y
���pts/0/0root��Y7��/:0:0:0��Y{�~~~shutdown3.10.0-514.el7.x86_64��Y�W
                                                                           ~~~reboot3.10.0-514.el7.x86_64��Y�W�tty1tty1�˜Y<��tty1tty1LOGIN�˜Y<�3~~~rtty3tty3טY+tty3tty3LOGINטY+tty3tty3root��Ynk        tty4tty4    ��Y+T

使用xxd查看二进制文件

[root@localhost ~]# xxd /var/log/wtmp|head -20   #默认显示十六进制
0000000: 0200 0000 0000 0000 7e00 0000 0000 0000  ........~.......
0000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000020: 0000 0000 0000 0000 7e7e 0000 7265 626f  ........~~..rebo
0000030: 6f74 0000 0000 0000 0000 0000 0000 0000  ot..............
0000040: 0000 0000 0000 0000 0000 0000 332e 3130  ............3.10
0000050: 2e30 2d35 3134 2e65 6c37 2e78 3836 5f36  .0-514.el7.x86_6
0000060: 3400 0000 0000 0000 0000 0000 0000 0000  4...............
0000070: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000090: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000100: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000130: 0000 0000 0000 0000 0000 0000 0000 0000  ................



[root@localhost ~]# xxd -b  /var/log/wtmp|head -20     #增加-b选项转换为二进制形式
0000000: 00000010 00000000 00000000 00000000 00000000 00000000  ......
0000006: 00000000 00000000 01111110 00000000 00000000 00000000  ..~...
000000c: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000012: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000018: 00000000 00000000 00000000 00000000 00000000 00000000  ......
000001e: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000024: 00000000 00000000 00000000 00000000 01111110 01111110  ....~~
000002a: 00000000 00000000 01110010 01100101 01100010 01101111  ..rebo
0000030: 01101111 01110100 00000000 00000000 00000000 00000000  ot....
0000036: 00000000 00000000 00000000 00000000 00000000 00000000  ......
000003c: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000042: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000048: 00000000 00000000 00000000 00000000 00110011 00101110  ....3.
000004e: 00110001 00110000 00101110 00110000 00101101 00110101  10.0-5
0000054: 00110001 00110100 00101110 01100101 01101100 00110111  14.el7
000005a: 00101110 01111000 00111000 00110110 01011111 00110110  .x86_6
0000060: 00110100 00000000 00000000 00000000 00000000 00000000  4.....
0000066: 00000000 00000000 00000000 00000000 00000000 00000000  ......
000006c: 00000000 00000000 00000000 00000000 00000000 00000000  ......
0000072: 00000000 00000000 00000000 00000000 00000000 00000000  ......
[root@localhost ~]# 

下面来看一下如何编辑二进制和十六进制文件
以编辑/var/log/wtmp为例
首先vi /var/log/wtmp
在vi命令模式下输入
:%!xxd 进入十六进制编辑模式
:%!xxd -b 进入二进制编辑模式
那么编辑完了怎么保存呢
首先按esc推出编辑模式
:%!xxd -r 返回vi模式
然后:wq保存退出即可

另外还有查看十六进制的hexdump命令,最简单的使用方法就是hexdump filename 就会显示十六进制文件内容

[root@localhost ~]# hexdump   /var/log/wtmp|head -10
0000000 0002 0000 0000 0000 007e 0000 0000 0000
0000010 0000 0000 0000 0000 0000 0000 0000 0000
0000020 0000 0000 0000 0000 7e7e 0000 6572 6f62
0000030 746f 0000 0000 0000 0000 0000 0000 0000
0000040 0000 0000 0000 0000 0000 0000 2e33 3031
0000050 302e 352d 3431 652e 376c 782e 3638 365f
0000060 0034 0000 0000 0000 0000 0000 0000 0000
0000070 0000 0000 0000 0000 0000 0000 0000 0000
*
0000150 0000 0000 b409 5905 234f 000e 0000 0000
[root@localhost ~]# 
原文地址:https://www.cnblogs.com/biaopei/p/7730556.html