sharkdphexyl:在终端看十六进制,字节分类全靠颜色

sharkdp/hexyl:在终端看十六进制,字节分类全靠颜色

hexyl 在 GitHub 上拿到了 10.1K Star。

一个用 Rust 写的终端十六进制查看器。跟 xxd、hexdump 这些传统工具的差别是,它用不同颜色标注不同类型的字节,看二进制内容时不再靠肉眼辨认。

github项目主页截图

1、 跟 xxd 有什么不一样

xxd 和 hexdump 是大多数 Linux 发行版自带的,能用,但输出只有一种颜色。面对一屏幕十六进制数字,NULL 字节、可打印字符、控制字符、高位字节混在一起,找东西靠扫。

hexyl 把字节分了五类,每类一种颜色:

  • NULL 字节(0x00)
  • 可打印 ASCII 字符
  • ASCII 空白字符(空格、换行等)
  • 其他 ASCII 字符(控制字符,0x80 以内,NULL 除外)
  • 非 ASCII 字节(0x7F 以上)

三栏布局:左侧偏移量、中间十六进制值、右侧 ASCII 显示,跟 GUI 十六进制编辑器的布局一致。数据里哪里有空白填充、哪里有可读文本、哪里有二进制结构,扫一眼就清楚。

预览截图

2、 怎么装

覆盖面广,主流系统全支持。

Ubuntu 19.10 以上、Debian Buster 以上、Fedora 35 以上、Arch Linux,官方源收录,直接 apt/dnf/pacman 安装。macOS 用 brew install hexyl。FreeBSD、NetBSD、OpenBSD 各有包。Windows 用 scoop install hexyl 或去 release 页面下二进制。Termux 也支持,pkg install hexyl。

装了 Rust 的话,cargo install hexyl 一条命令跨平台。

3、 配色可以改

六个环境变量控制六类元素的颜色:

  • HEXYL_COLOR_ASCII_PRINTABLE:可打印 ASCII
  • HEXYL_COLOR_ASCII_WHITESPACE:空白字符
  • HEXYL_COLOR_ASCII_OTHER:其他 ASCII
  • HEXYL_COLOR_NULL:NULL 字节
  • HEXYL_COLOR_NONASCII:非 ASCII 字节
  • HEXYL_COLOR_OFFSET:左侧偏移量

支持 8 种标准终端色(black、red、green、yellow、blue、magenta、cyan、white),也有 bright 变体,还支持 #RRGGBB 格式。一行 export 换配色。

预览截图

4、 适合谁用

  • 做逆向分析、经常读取二进制文件结构的开发者
  • 写解析器或编解码器,需要逐字节检查数据格式的人
  • 用 xxd 太吃力,想换个能一眼看出字节类型的工具的人
posted @ 2026-06-08 20:27  codinglife66  阅读(3)  评论(0)    收藏  举报