hexyl - Visor de Hexadecimal Colorido en Línea de Comandos
hexyl es un visor de hexadecimal moderno para la terminal, escrito en Rust. Codifica por color los bytes por categoría — NULL, ASCII imprimible, espacio en blanco ASCII, otro ASCII, y no-ASCII — para que la estructura salte a la vista de un vistazo, y muestra un panel de caracteres alineado al lado del hexadecimal. Para ver rápidamente números mágicos, bytes de encabezado y estructura binaria, es mucho más legible que xxd o hexdump, mientras se mantiene scriptable con controles de desplazamiento y longitud.
Instalación
| Plataforma | Comando |
|---|
| Cargo (todas las plataformas) | cargo install hexyl |
| macOS (Homebrew) | brew install hexyl |
| Arch Linux | sudo pacman -S hexyl |
| Debian/Ubuntu | sudo apt install hexyl |
| Fedora | sudo dnf install hexyl |
| Windows (Scoop) | scoop install hexyl |
| Nix | nix-env -iA nixpkgs.hexyl |
Uso Básico
| Comando | Descripción |
|---|
hexyl file.bin | Volcado de hexadecimal con color y panel de caracteres |
hexyl -n 64 file.bin | Muestra solo los primeros 64 bytes |
head -c 256 file | hexyl | Canaliza datos desde stdin |
hexyl --help | Lista completa de opciones |
hexyl --version | Versión |
Control de Rango
| Opción | Descripción |
|---|
-n, --length N | Lee como máximo N bytes |
-c, --bytes N | Alias de longitud en bytes |
-s, --skip N | Salta (busca) N bytes antes de leer |
-r, --range A:B | Lee el rango de bytes de A a B |
--block-size N | Establece el tamaño de bloque para -n/-s (ej. 512) |
Desplazamientos y conteos aceptan unidades y bases: 0x1F, 512, 1KiB, 2MiB.
Opciones de Visualización
| Opción | Descripción |
|---|
--color always|auto|never | Controla la colorización |
--border ascii|unicode|none | Estilo de borde alrededor del volcado |
--panels N | Número de paneles de hexadecimal lado a lado (auto para ajustar al ancho) |
--no-characters | Oculta el panel de caracteres de la derecha |
--no-position | Oculta la columna de desplazamiento |
--group-size N | Bytes por grupo (1, 2, 4, 8) |
--base 2|8|10|16 | Base numérica para valores de bytes |
-p, --plain | Sin colores, sin bordes, sin posición (como xxd) |
Leyenda de Colores
| Categoría de color | Significado |
|---|
0 atenuado | Bytes NULL (0x00) |
| Verde | Caracteres ASCII imprimibles |
| Amarillo/aguamarina | Espacio en blanco ASCII |
| Otra sombra | Otros bytes de control ASCII |
| Brillante | No-ASCII (0x80–0xFF) |
Esta coloración hace que números mágicos, relleno, y regiones texto-versus-binario sean instantáneamente visibles.
Flujos de Trabajo Comunes
# Verifica los bytes mágicos / encabezado de un archivo
hexyl -n 16 mystery.file
# Inspecciona una estructura específica en un desplazamiento conocido
hexyl -s 0x200 -n 0x40 firmware.bin
# Compara encabezados de dos archivos rápidamente
hexyl -n 32 a.bin; echo '---'; hexyl -n 32 b.bin
# Salida plana estilo xxd para diff o scripts
hexyl --plain -n 64 file.bin
# Mira una porción de un flujo
curl -s https://example.com/file | hexyl -n 128
hexyl vs Herramientas Clásicas
| Función | hexyl | xxd | hexdump |
|---|
| Color por categoría de byte | Sí | No | No |
| Panel de caracteres | Sí | Sí | Con formato |
| Banderas de rango/búsqueda | Sí | Limitadas | Limitadas |
| Disposición multi-panel | Sí | No | No |
| Modo plano/scriptable | Sí (-p) | Sí | Sí |
Recursos