Reading this thread on Stackoverflow I wondered how come with so many hex editors in Linux there is not really the best one. In Windows it is easier - the expensive WinHex or the cheap Hview. Anyway, as to the Linux I always use Vim:
Entering %!xxd to switch to HEx editing mode, and after finishing the edit issuing %!xxd -r back to binary to be able to save the edited file. Do not save in the HEx editing mode - the file will be saved as ASCII hex representation file, always revert back to binary.