[~/shell]# xxd -g 1 concat.sh
-g 1,2:1和2的区别就是:1 2分别是:66 6669 明白了吧,呵呵!
主要用途:可以用来查看PHP在windows下的utf8记事本编码的bom,会导致session,cookie,输出图片出现异常的bom,大名鼎鼎啊,ef bb bf 就是utf-8 bom,如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。
如,注意efbb这个就是bom啦:
[~/shell]# hexdump bom.txt -C
00000000 ef bb bf 64 66 64 66 64 0a |...dfdfd.|
---------------------------------------------------------------------------------------------------------------------------------------------
[~/shell]# xxd -g 2 bom.txt
0000000: efbb bf64 6664 6664 0a ...dfdfd.
---------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------
vi在linux下查看16进制文件的方法。
xxd
Creates a hex dump of the given file; it can also do the
reverse, so it can be used for binary patching
用法很简单:
在vi的命令状态下
:%!xxd ——将当前文本转换为16进制格式。(实践OK,但在windows下还是wxHexEditor界面打开好用)
:%!xxd -r ——将当前文件转换回文本格式。
于是乎:
将当前文本转换为16进制格式,Vi命令行模式,输入:
:%!xxd
将当前文件转换回文本格式,Vi命令行模式,输入:
:%!xxd -r
哈哈,就在这一转16进制后又转回来的时候,你就发现bom,露出了原型,0000000: efbb bfef bbbf 6466 6466 640a ......dfdfd.到转回来后出现<feff>dfdfd,哈哈哈哈,原形毕露了吧!
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[~/shell]# xxd -g 1 test.sh
0000000: 66 69 6c 65 6e 61 6d 65 3d 24 31 0a 73 74 72 69 filename=$1.stri
0000010: 6e 67 31 3d 65 78 69 73 74 0a 73 74 72 69 6e 67 ng1=exist.string
0000020: 32 3d 78 69 0a 63 6f 6d 6d 61 6e 64 3d 22 63 61 2=xi.command="ca
0000030: 74 20 24 66 69 6c 65 6e 61 6d 65 20 7c 20 67 72 t $filename | gr
0000040: 65 70 20 24 73 74 72 69 6e 67 31 20 7c 20 67 72 ep $string1 | gr
0000050: 65 70 20 24 73 74 72 69 6e 67 32 22 0a 65 76 61 ep $string2".eva
0000060: 6c 20 24 63 6f 6d 6d 61 6e 64 0a l $command.
---------------------------------------------------------------------------------------------------------------------------------------------
[~/shell]# xxd -g 2 test.sh
0000000: 6669 6c65 6e61 6d65 3d24 310a 7374 7269 filename=$1.stri
0000010: 6e67 313d 6578 6973 740a 7374 7269 6e67 ng1=exist.string
0000020: 323d 7869 0a63 6f6d 6d61 6e64 3d22 6361 2=xi.command="ca
0000030: 7420 2466 696c 656e 616d 6520 7c20 6772 t $filename | gr
0000040: 6570 2024 7374 7269 6e67 3120 7c20 6772 ep $string1 | gr
0000050: 6570 2024 7374 7269 6e67 3222 0a65 7661 ep $string2".eva
0000060: 6c20 2463 6f6d 6d61 6e64 0a l $command.
---------------------------------------------------------------------------------------------------------------------------------------------
当然你也可以这样:
[~/shell]# hexdump test.sh -C
00000000 66 69 6c 65 6e 61 6d 65 3d 24 31 0a 73 74 72 69 |filename=$1.stri|
00000010 6e 67 31 3d 65 78 69 73 74 0a 73 74 72 69 6e 67 |ng1=exist.string|
00000020 32 3d 78 69 0a 63 6f 6d 6d 61 6e 64 3d 22 63 61 |2=xi.command="ca|
00000030 74 20 24 66 69 6c 65 6e 61 6d 65 20 7c 20 67 72 |t $filename | gr|
00000040 65 70 20 24 73 74 72 69 6e 67 31 20 7c 20 67 72 |ep $string1 | gr|
00000050 65 70 20 24 73 74 72 69 6e 67 32 22 0a 65 76 61 |ep $string2".eva|
00000060 6c 20 24 63 6f 6d 6d 61 6e 64 0a |l $command.|
0000006b
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/3654/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2019-11-5 23:40
评论列表