hexdump command in Linux with examples

The hd or hexdump command in Linux is used to filter and display the specified files, or standard input in a human readable specified format. For example, if you want to view an executable code of a program, you can use hexdump to do so.

Syntax:

hd [OPTIONS...] [FILES...]

Options:

  • -b : One-byte octal display. Display the input offset in hexadecimal, followed by sixteen space-separated, three column, zero-filled, bytes of input data, in octal, per line.

    Syntax:

    hd -b input.txt


    The first column of the output represents the input offset in file.

  • -c : One-byte character display. Display the input offset in hexadecimal, followed by sixteen space-separated, three column, space-filled, characters of input data per line.

    Syntax:



    hd -c input.txt

  • -C : Canonical hex+ASCII display. Display the input offset in hexadecimal, followed by sixteen space-separated, two column, hexadecimal bytes, followed by the same sixteen bytes in %_p format enclosed in “|” characters.

    Syntax:

    hexdump -C input.txt

  • -d : Two-byte decimal display. Display the input offset in hexadecimal, followed by eight space-separated, five column, zero-filled, two-byte units of input data, in unsigned decimal, per line.

    Syntax:

    hd -d input.txt

  • -n length : Where length is an integer. Interprets only ‘length’ bytes of output.

    Syntax:

    hd -n length input.txt

  • -o: Two-byte octal display. Display the input offset in hexadecimal, followed by eight space-separated, six column, zero-filled, two byte quantities of input data, in octal, per line.

    Syntax:

    hd -o input.txt

  • -s offset : Skip ‘offset’ bytes from the beginning of the input. By default, offset is interpreted as a decimal number. With a leading 0x or 0X, offset is interpreted as a hexadecimal number, otherwise, with a leading 0, offset is interpreted as an octal number. Appending the character b, k, or m to offset causes it to be interpreted as a multiple of 512, 1024, or 1048576, respectively.

    Syntax:

    hd -s offset input.txt


    As you can see, in the output, first 6 characters, i.e. ‘Hello ‘ are skipped.

  • -v : Cause hexdump to display all input data. Without the -v option, any number of groups of output lines, which would be identical to the immediately preceding group of output lines (except for the input offsets), are replaced with a line comprised of a single asterisk.

    Syntax:

    hd -v input.txt

    We will see the use of this option as we display the output using -c flag.

    As you can observe, when we use hd for the first time, without -v, when similar output appears, it prints out an asterisk (*). But when we pass a -v flag, we get all the output lines.

  • -x : Two-byte hexadecimal display. Display the input offset in hexadecimal, followed by eight, space separated, four column, zero-filled, two-byte quantities of input data, in hexadecimal, per line.

    Syntax:

    hd -x input.txt



My Personal Notes arrow_drop_up

Full stack web developer | GCI 18 Mentor | JSec at IIITV Coding Club

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.