Technical Documentation: sharkdp/hexyl
โน๏ธ Provenance: Multi-Tier Ingestion ยท CodeWiki Reference
Overview (`README.md`)
hexyl is a hex viewer for the terminal. It uses a colored output to distinguish different categories
of bytes (NULL bytes, printable ASCII characters, ASCII whitespace characters, other ASCII characters and non-ASCII).
Preview
Installation
On Ubuntu
... and other Debian-based Linux distributions.
If you run Ubuntu 19.10 (Eoan Ermine) or newer, you can install the officially maintained package:
sudo apt install hexylIf you use an older version of Ubuntu, you can download
the latest .deb package from the release page and install it via:
sudo dpkg -i hexyl_0.15.0_amd64.deb # adapt version number and architectureOn Debian
If you run Debian Buster or newer, you can install the officially maintained Debian package:
sudo apt-get install hexylIf you run an older version of Debian, see above for instructions on how to
manually install hexyl.
On Fedora
If you run Fedora 35 or newer, you can install the officially maintained Fedora package:
sudo dnf install hexylOn Arch Linux
You can install hexyl from the official package repository:
pacman -S hexylOn Void Linux
xbps-install hexylOn Gentoo Linux
Available in dm9pZCAq overlay
sudo eselect repository enable dm9pZCAq
sudo emerge --sync dm9pZCAq
sudo emerge sys-apps/hexyl::dm9pZCAqOn macOS
Via Homebrew:
brew install hexyl...or via MacPorts:
sudo port install hexylOn FreeBSD
pkg install hexylOn NetBSD
pkgin install hexylOn OpenBSD
doas pkg_add hexylon Termux
pkg install hexylor
apt install hexylVia Nix
nix-env -i hexylVia Guix
guix package -i hexylOr add the hexyl package in the list of packages to be installed in your system configuration (e.g., /etc/config.scm).
On other distributions
Check out the release page for binary builds.
On Windows
Check out the release page for binary builds.
Alternatively, install from source via cargo, snap or scoop (see below).
Make sure that you use a terminal that supports ANSI escape sequences (like ConHost v2 since Windows 10 1703
or Windows Terminal since Windows 10 1903).
Via cargo
If you have Rust 1.56 or higher, you can install hexyl from source via cargo:
cargo install hexylAlternatively, you can install hexyl directly from the repository by using:
git clone https://github.com/sharkdp/hexyl
cargo install --path ./hexylNote: To convert the man page, you will need Pandoc.
You can convert from Markdown by using (in the project root):
pandoc -s -f markdown -t man -o ./doc/hexyl.1 ./doc/hexyl.1.mdVia snap package
sudo snap install hexylVia [Scoop](https://scoop.sh)
scoop install hexylVia [X-CMD](https://x-cmd.com)
x env use hexylConfiguration
hexyl colors can be configured via environment variables. The variables used are as follows:
HEXYL_COLOR_ASCII_PRINTABLE: Any non-whitespace printable ASCII characterHEXYL_COLOR_ASCII_WHITESPACE: Whitespace such as space or newline (only visible in middle panel with byte values)HEXYL_COLOR_ASCII_OTHER: Any other ASCII character (<0x80) besides nullHEXYL_COLOR_NULL: The null byte (0x00)HEXYL_COLOR_NONASCII: Any non-ASCII byte (>0x7F)HEXYL_COLOR_OFFSET: The lefthand file offset
The colors can be any of the 8 standard terminal colors: black, blue, cyan, green, magenta, red,yellow and white. The "bright" variants are also supported (e.g., bright blue). Additionally, you can use
the RGB hex format, #abcdef. For example, HEXYL_COLOR_ASCII_PRINTABLE=blue HEXYL_COLOR_ASCII_WHITESPACE="bright green" HEXYL_COLOR_ASCII_OTHER="#ff7f99".
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Doc Hexyl.1 (`doc/hexyl.1.md`)
% HEXYL(1) hexyl 0.12.0 | General Commands Manual
%
% 2022-12-05
NAME
hexyl - a command-line hex viewer
SYNOPSIS
hexyl [OPTIONS] [FILE]
DESCRIPTION
hexyl is a simple hex viewer for the terminal.
It uses a colored output to distinguish different categories of bytes (NULL
bytes, printable ASCII characters, ASCII whitespace characters, other ASCII
characters and non-ASCII).
POSITIONAL ARGUMENTS
FILE
: The file to display.
If no FILE argument is given, read from STDIN.
OPTIONS
-n, --length N
: Only read N bytes from the input.
The N argument can also include a unit with a decimal prefix (kB, MB, ..)
or binary prefix (kiB, MiB, ..), or can be specified using a hex number.
Examples:
:
Read the first 64 bytes:
: $ **hexyl \--length=64**
Read the first 4 kibibytes:
: $ **hexyl \--length=4KiB**
Read the first 255 bytes (specified using a hex number):
: $ **hexyl \--length=0xff**-c, --bytes N
: An alias for -n/--length.
-l N
: Yet another alias for -n/--length.
-s, --skip N
: Skip the first N bytes of the input.
The N argument can also include a unit (see --length for details).
A negative value is valid and will seek from the end of the file.
--block-size SIZE
: Sets the size of the block unit to SIZE (default is 512).
Examples:
:
Sets the block size to 1024 bytes:
: $ **hexyl \--block-size=1024 \--length=5block**
Sets the block size to 4 kilobytes:
: $ **hexyl \--block-size=4kB \--length=2block**-v, --no-squeezing
: Displays all input data.
Otherwise any number of groups of output lines which would be identical to
the preceding group of lines, are replaced with a line comprised of a
single asterisk.
--color WHEN
: When to use colors.
The auto-mode only displays colors if the output goes to an interactive
terminal.
Possible values:
: - **always** (default)
- **auto**
- **never**--border STYLE
: Whether to draw a border with Unicode characters, ASCII characters, or none
at all.
Possible values:
: - **unicode** (default)
- **ascii**
- **none**-o, --display-offset N
: Add N bytes to the displayed file position.
The N argument can also include a unit (see --length for details).
A negative value is valid and calculates an offset relative to the end of
the file.
-h, --help
: Prints help information.
-V, --version
: Prints version information.
ENVIRONMENT VARIABLES
hexyl colors can be configured via environment variables. The variables used are as follows:
: - HEXYL_COLOR_ASCII_PRINTABLE: Any non-whitespace printable ASCII character
- HEXYL_COLOR_ASCII_WHITESPACE: Whitespace such as space or newline (only visible in middle panel with byte values)
- HEXYL_COLOR_ASCII_OTHER: Any other ASCII character (< 0x80) besides null
- HEXYL_COLOR_NULL: The null byte (0x00)
- HEXYL_COLOR_NONASCII: Any non-ASCII byte (> 0x7F)
- HEXYL_COLOR_OFFSET: The lefthand file offset
The colors can be any of the 8 standard terminal colors: black, blue, cyan, green, magenta, red,
yellow and white. The "bright" variants are also supported (e.g., bright blue). Additionally, you can use
the RGB hex format, #abcdef. For example, HEXYL_COLOR_ASCII_PRINTABLE=blue HEXYL_COLOR_ASCII_WHITESPACE="bright green"
HEXYL_COLOR_ASCII_OTHER="#ff7f99".
NOTES
Source repository:
: https://github.com/sharkdp/hexyl
EXAMPLES
Print a given file:
: $ hexyl small.png
Print and view a given file in the terminal pager:
: $ hexyl big.png | less -r
Print the first 256 bytes of a given special file:
: $ hexyl -n 256 /dev/urandom
AUTHORS
hexyl was written by David Peter [email protected].
REPORTING BUGS
Bugs can be reported on GitHub at:
: https://github.com/sharkdp/hexyl/issues
COPYRIGHT
hexyl is dual-licensed under:
: - Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0)
- MIT License (https://opensource.org/licenses/MIT)
SEE ALSO
hexdump(1), xxd(1)
--- METRICS ---
- Files Extracted: 2
- Estimated Token Budget: ~2295 tokens
- Canonical Reference: https://codewiki.google/github.com/sharkdp/hexyl