我想查看当前目录中文件的内容,但从命令行以二进制格式查看。我怎样才能做到这一点呢?


作为后备方案,总是有od -xc filename


hexdump -C yourfile.bin

当然,除非你想编辑它。大多数linux发行版默认都有hexdump(但显然不是全部)。


参见Vim Tips Wiki中的改进十六进制编辑。


vi your_filename

打击esc

类型:% !XXD查看十六进制字符串,n:%!XXD -r返回正常编辑。


XXD处理二进制和十六进制。

bin:

xxd -b file

hex:

xxd file

Sudo apt-get安装祝福

祝福是GUI工具,可以查看,编辑,搜索和很多更多。 它的重量很轻。


可以使用hexdump二进制文件

sudo apt-get install hexdump

hexdump -C yourfile.bin

$ echo -n 'Hello world!' | hd
00000000  48 65 6c 6c 6f 20 77 6f  72 6c 64 21              |Hello world!|
0000000c

您可以打开emacs(在终端模式下,例如使用emacs -nw),然后使用Hexl模式:M-x Hexl -mode。

https://www.gnu.org/software/emacs/manual/html_node/emacs/Editing-Binary-Files.html


如果你想打开二进制文件(在CentOS 7中):

strings <binary_filename>

要将文件转换为二进制代码(十六进制表示),我们说:

xxd filename                                         #

e.g:

xxd hello.c                                          #

要查看二进制文件中的所有内容和代码,可以使用readelf和objdump、hexdump、... .等命令

例如,如果我们想查看一个二进制文件(可执行文件、共享库、目标文件)的所有内容,我们说:

hexdump binaryfilename

e.g.

hexdump /bin/bash

但是readelf是分析elf(可执行文件和链接格式)文件的最佳工具。如果我们说:

readelf -a /bin/bash

二进制文件bash中的所有内容都将显示给我们,我们也可以为readelf提供不同的标志,以分别查看elf文件的所有部分和头,例如,如果我们只想看到elf头,我们说:

readelf -h /bin/bash

读取文件的所有段:

readelf -l /bin/bash

读取文件的所有部分:

readelf -S /bin/sh

但是作为总结,对于读取一个普通文件,如“hello.c”和一个二进制文件,如bash在Linux路径/bin/bash,我们说:

xxd hello.c

readelf -a /bin/bash

己基格式很好:sudo apt安装己基


以十六进制形式在一行中获得所有输出:

xxd -p yourfile.bin | tr -d '\n'