Can you recommend a hex editor that can be run from shell? I need to be able to edit not only view the content.


9 Answers 9


This tool is the most commonly available I have found for this type of task (available by default on both latest Ubuntu and macOS). You can remove the ascii readable part on the right if needed using -p and you can revert (change ascii input to binary data) using the -r function. Here are some simple example uses:

Converting to hex with ascii view:

echo example | xxd

Converting to a hexdump (no ascii view on the right):

echo example | xxd -p

Converting from a hexdump back to binary data:

echo 746573740a | xxd -p -r

You can get much more complex with this in shell scripts. I have actually used this and "dd" to scan for specific sequences and modify them in a predefined fashion all from a shell script using nothing but bash, dd, and xxd. You actually don't need dd for this either as you can "seek" to a specific location and write to that location the byte sequence you need. The biggest advantage to this approach is its easily scriptable.

  • 2
    xxd seems to be installed on Ubuntu 16.04 by default, which is SWEET! Thanks! Sep 30, 2016 at 0:44
  • Also available by default on MacOS!
    – thom_nic
    Jul 12, 2017 at 12:41
  • 1
    The echo command substitutes newline at the end of the line. To avoid this, you can call the command like this echo -n example | xxd Jul 16, 2022 at 10:17
  • 4
    The question is asking for an editor, not a viewer. xxd is a viewer
    – Baruch
    Oct 23, 2022 at 20:19
  • @Baruch xxd can convert from binary to human-readable hex and back again, so paired with a regular text editor it can actually cover some use cases for a hex editor.
    – Thomas
    Jan 25, 2023 at 7:50

There is also DHEX

apt-cache show dhex

ncurses based hex editor with diff mode

This is more than just another hex editor: It includes a diff mode, which can be used to easily and conveniently compare two binary files. Since it is based on ncurses and is themeable, it can run on any number of systems and scenarios. With its utilization of search logs, it is possible to track changes in different iterations of files easily.

If you are not familiar with vim or emacs, this one doesn't seem to have much of a learning curve.

  • 3
    Only downside to dhex imho is it cannot insert/delete bytes. Otherwise it is a very nice console hex editor.
    – Nicholi
    Nov 18, 2016 at 0:22
  • When I run "dhex /path/to/big/file", I get "error opening inputfile /path/to/big/file". I like dhex and use it all the time for normal sized files. Aug 17, 2017 at 16:16
  • @sondra.kinsey : I just tried a 20GB file on my 8GB RAM machine, and didn't have a problem. This is on Ubuntu 16.04 64 bit, with dhex 0.68-2build1 (amd64). So it should work.
    – mivk
    Aug 18, 2017 at 17:35
  • @mivk, I tried dhex unsuccessfully with a 44GB file using dhex_0.68-2build1_i386 on Ubuntu 17.04 with 3GB RAM. hexedit and wxHexEditor open the same file without complaint. Aug 19, 2017 at 14:37
  • @sondra.kinsey : maybe a problem/bug with the 32bit version of dhex and files over 4GB?
    – mivk
    Aug 19, 2017 at 16:49

You might be able to use vi/vim as a hex editor too (it can call xxd).

Enter hex mode:


Exit hex mode:

:%!xxd -r

Source: Using vi as a hex editor

  • 4
    I'd be careful with that. I've found :%!xxd adding new characters(i.e. new line) to the file. Dec 6, 2016 at 3:46
  • 2
    @iamcreasy it's not xxd who does this: rather Vim itself.
    – Ruslan
    Jun 5, 2017 at 15:44
  • 6
    Don't forget to :set binary! Otherwise, VIM is likely to corrupt the file by adding a line-end (CR/LF/CRLF) at the end of the file (depending on what you have the format set to (set ff=[mac/unix/dos])). This is highly likely to break executables and data binaries. And it does. A lot. Making sure VIM is in binary mode will prevent that from happening. Feb 3, 2018 at 4:57
  • file didn't save and gave conversion error. Even after :set binary
    – wick
    Jan 3, 2021 at 13:06
  • I would add this link for more info as well: vi.stackexchange.com/questions/343/…
    – Shayan
    Nov 11, 2021 at 15:08

emacs has a hexl-mode for hex editing.

  • 5
    hexl-mode isn't suitable for large files or disk partitions, since it loads the whole file into an emacs buffer. It's great for small files if you're already comfortable with emacs. Feb 15, 2015 at 23:36
  • 2
    @PeterCordes, for editing a disk, simply dd the region you want to edit into a file and open that in emacs, then dd it back.
    – psusi
    Feb 17, 2015 at 15:21
  • 8
    @psusi The problem is, I shouldn't have to go to that effort to edit a file
    – Cole Tobin
    Nov 11, 2015 at 3:54
  • 1
    @ColeJohnson, we aren't talking about editing a file; we're talking about editing an entire raw hard disk.
    – psusi
    Nov 11, 2015 at 23:15
  • 2
    @psusi On my Windows machine, I can use HxD and open up a disk just like any other file.
    – Cole Tobin
    Nov 15, 2015 at 6:54

This one is dead simple to use:

sudo apt-get install hexcurse
  • 2
    This is the one to beat. All other answers seem like just hex dumps or unnecessary vim acrobatics. Hex editor should have a multiple cursor, one on the hex, and one on the output representation.
    – DannyB
    Feb 24, 2022 at 13:54

I know this is an old question, but I was dissatisfied with all of the answers here. I was looking for a hex editor that allowed for me to create my own binary files (aka insert mode) and could handle very large files.

I came across tweak, which fulfills both of these requirements, as well as the OPs.

  • Tweak supports insert mode (not particularly useful if you're editing an executable file or a filesystem image, but can be extremely handy in other file formats such as PNG).
  • Cutting, copying and pasting within the file you are editing is extremely efficient. No matter how big the chunk of data you are moving around - even if it's a 200Mb section of a CD image - Tweak will always perform the operation effectively instantly.
  • Tweak supports lazy loading of the input file: rather than sucking it all into memory straight away, it simply remembers which parts of the editing buffer are copies of which parts of the input file and refers to the file on disk when it needs to. Tweak only has to take significant time when you genuinely need it to read the entire file. The only two operations with this property are searching, and saving the modified version of the file to disk. Everything else is instant.
  • 1
    Hmmm, a program that's ready to modify the buffer with every mistaken keystroke, and doesn't instruct the user how (or exit!) to use the program. Yuck! Turns out the "exit" command is the same as emacs... but it didn't work for me the first time, so I tried everything else I could think of before trying it again. I gave up on emacs decades ago, but remember the most important command: Ctrl-X, Ctrl-C. If you like emacs, you might like tweak, but for me it was awkward. I may try it again if I really need editing. Run man tweak from the terminal for an overview and list of commands.
    – Lambart
    Aug 14, 2019 at 0:47
  • @Lambart The whole point of tweak's insert mode is to modify the buffer, so your point isn't really valid there. Also, you should read the man page before using it anyway. Not doing so and then complaining that it doesn't tell you how to exit is just lazy.
    – Gogeta70
    Aug 16, 2019 at 15:04

Bless Hex Editor is a is a binary (hex) editor and currently provides the following features:

  • Efficient editing of large data files and block devices.
  • Multilevel undo - redo operations.
  • Customizable data views.
  • Fast data rendering on screen.
  • Multiple tabs.
  • Fast find and replace operations.
  • A data conversion table.
  • Advanced copy/paste capabilities.
  • Highlighting of selection pattern matches in the file.
  • Plugin based architecture.
  • Export of data to text and html (others with plugins).
  • Bitwise operations on data.
  • A comprehensive user manual.

You can dounload it from here: http://packages.debian.org/sid/all/bless/download.

To install it, see How do I install a .deb file via the command line?

Need more?

  • 12
    The question is asking for a command line editor.
    – psusi
    Sep 12, 2013 at 13:39
  • 1
    @psusi No, the OP asked about a hex editor that can be run from shell, not inside shell/terminal. It can be run from shell using bless command after is installed. Sep 12, 2013 at 14:05
  • 38
    There is nothing you can not run from the shell; he wouldn't have mentioned it unless he meant command line.
    – psusi
    Sep 12, 2013 at 17:50
  • Actually I was searching "ubuntu hex viewer" meaning window-based viewer in mind and the search site brought me here. So this answer was what I had search for. May 16, 2018 at 16:37

Try hexed, it's made for use in scripts and make files.


There is also ht. Install it as

sudo apt-get install ht

and then run it by typing hte.

I haven't tried it with really large files/partitions, though.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .