我想查看当前目录中文件的内容,但从命令行以二进制格式查看。我怎样才能做到这一点呢?
作为后备,总是有od -xc filename
od -xc filename
hexdump -C yourfile.bin
当然,除非你想编辑它。大多数linux发行版默认具有hexdump(但显然不是所有)。
hexdump
看到改进了Vim Tips Wiki中的十六进制编辑。
vi your_filename
打击esc
输入:%!xxd查看十六进制字符串,n :%!xxd -r返回正常编辑。
:%!xxd
:%!xxd -r
xxd同时处理二进制和十六进制。
xxd
本:
xxd -b file
十六进制:
xxd file
sudo apt-get install bless
Bless是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。
emacs -nw
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 #
例句:
xxd hello.c #
要查看二进制文件中的所有内容和代码,我们可以使用readelf和objdump, hexdump,... .这样的命令
readelf
objdump
例如,如果我们想查看一个二进制文件(可执行文件、共享库、目标文件)的所有内容,我们说:
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;Linux中/bin/bash路径下的二进制文件,比如bash:
xxd hello.c readelf -a /bin/bash
己基格式很好:sudo apt安装己基
以十六进制形式在一行中获得所有输出:
xxd -p yourfile.bin | tr -d '\n'