如何从bash查看二进制文件?

时间:2009-11-19 18:04:12

标签: bash shell binary

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

13 个答案:

答案 0 :(得分:400)

xxd同时执行二进制和十六进制

仓:

xxd -b file

己烷:

xxd file

答案 1 :(得分:166)

hexdump -C yourfile.bin

除非您想要编辑它。大多数Linux发行版默认都有hexdump(但显然不是全部)。

答案 2 :(得分:65)

vi your_filename

点击 esc

键入:%!xxd以查看十六进制字符串,n :%!xxd -r返回正常编辑。

答案 3 :(得分:25)

作为后备,总是od -xc filename

答案 4 :(得分:11)

sudo apt-get install bless

Bless是GUI工具,可以查看,编辑,搜索等等。 它重量很轻。

答案 5 :(得分:6)

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

cv2.imwrite('mask.png',img)

答案 6 :(得分:3)

答案 7 :(得分:2)

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

答案 8 :(得分:2)

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

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

答案 9 :(得分:1)

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

xxd filename                                         #

例如:

xxd hello.c                                          #

要查看二进制文件中的所有内容和代码,我们可以使用readelfobjdumphexdump,...等命令。

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

hexdump binaryfilename

例如

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

答案 10 :(得分:0)

您可以使用hexdump二进制文件

sudo apt-get install hexdump

hexdump -C yourfile.bin

答案 11 :(得分:0)

十六进制格式很好:sudo apt install hexyl

enter image description here

答案 12 :(得分:0)

以十六进制在一行中获取全部输出:

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