HEXD(1)

πŸ“¦ version 1.1.0, in nixos 26.05, nixpkgs unstable, opensuse-leap 16.0

πŸ’– HEXD(1) β€” human-friendly hexdump tool πŸ’–

okay so bestie, welcome to the General Commands Manual page for hexd β€” no cap, this little tool is lowkey iconic and has main character energy when it comes to looking at binary data. Let's go πŸ’…


✨ NAME ✨

hexd β€” human-friendly hexdump tool

πŸ¦‹ SYNOPSIS πŸ¦‹

hexd [-p] [-P] [-v] [-g groupsize] [-r range] [-w width] [file ...]

πŸ’– DESCRIPTION πŸ’–

hexd prints a human-readable hexdump of the files you name, or standard input if you don't name any. Its main distinguishing feature is literally the colours: they visually indicate which range of values an octet belongs to, which is highkey useful for spotting patterns in binary data. The colour-coding? Obsessed. It ate. It's giving β€œbinary data but make it readable” β€” periodt ✨

The ranges an octet is classified into are:

  • zero β€” 0x00
  • low β€” 0x01..0x1F
  • printable β€” 0x20..0x7E
  • high β€” 0x7F..0xFE
  • all β€” 0xFF

By default, colours are used if output is a terminal, and omitted if not.

Repeated output lines are collapsed into only one copy followed by a line with only *, unless -v is used.

πŸ’… OPTIONS πŸ’…

If no file operands are specified, standard input is read instead. Available options are listed below.

  • -h β€” Print usage information.
  • -p β€” Plain: disable colours/formatting.
  • -P β€” Pretty: enable colours/formatting.
  • -v β€” Verbose: show every hexdump line (don't collapse repetition with *).
  • -g groupsize β€” Number of octets per group, set to 8 by default.
  • -r range β€” Range of octets to print from each file. Specified as either start-end or start+count, where start and end/count are positive integers specified in either decimal, hexadecimal or octal (C-style notation).

When the former syntax is used, both ends of the range are optional and default to the start or end of the file when omitted.

  • -w width β€” Number of octets per line, separated into groups (see -g). Set to 16 by default.

🌈 ENVIRONMENT 🌈

HEXD_COLORS can be used to override the formatting used by hexd to classify octets. If set, it should consist of space-separated pairs of the form key=value, where key is one of 'zero', 'low', 'printable', 'high' or 'all', and value is an SGR formatting string. SGR formatting is interpreted by your terminal emulator; consult its documentation or ECMA-48 for more details.

For example, the default formatting used when HEXD_COLORS is not defined corresponds to the value:

zero=38;5;238 low=38;5;150 high=38;5;141 all=38;5;167

πŸ“ EXAMPLES πŸ“

Here are some examples of useful uses of hexd's features.

πŸ’« hexd -r0x1000+0x200 foo.bin

Display the 512-byte range in foo.bin starting at offset 0x1000. Useful when files contain other embedded files/formats at a certain location (e.g. archive files).

πŸ¦‹ hexd -r-0x10 *.bin

Show the first 16 bytes of each of the *.bin files, with a heading above each file (if more than one). This is useful for example to compare headers of several samples of an unknown format.

🌸 curl -s http://example.com | hexd -P | less -R

hexd works as a filter, too. For paging long hexdumps, less(1)'s -R flag is useful.

πŸ”₯ SEE ALSO πŸ”₯

hexdump(1), od(1), xxd(1)

πŸ‘‘ AUTHORS πŸ‘‘

Written by FireFly


mwah πŸ’‹ this Debian edition is dated February 18, 2022 β€” go hexdump cute, bestie β€” slay πŸ’–

πŸ“¦ where this page comes from