Hexedit запускается прямо в терминале командой hexedit имя_файла и сразу открывает двоичный файл в виде двух панелей: слева — шестнадцатеричные значения байтов, справа — их ASCII-представление. Это один из самых лёгких консольных hex-редакторов для Linux, который часто оказывается единственным доступным инструментом на сервере без графического окружения или в аварийной консоли восстановления.
Программа распространяется свободно, входит в репозитории большинства дистрибутивов и не требует ни графического сервера, ни тяжёлых зависимостей. Дальше разберём установку, основные клавиши управления, типовые сценарии работы и меры предосторожности при правке бинарных данных.
Что такое hexedit и когда он нужен
Hexedit — это консольный редактор, позволяющий просматривать и изменять любой файл на уровне отдельных байтов. В отличие от текстового редактора, он не интерпретирует содержимое как текст, а показывает сырые данные в шестнадцатеричном виде.
Такой инструмент полезен, когда нужно:
- 🔍 изучить структуру неизвестного бинарного файла или его заголовок;
- 🛠 исправить повреждённый байт в конфигурации или прошивке;
- 💾 проанализировать содержимое диска, раздела или образа на низком уровне;
- 🧩 изменить отдельные байты в исполняемом файле при отладке или реверс-инжиниринге;
- 📄 проверить сигнатуру файла (магические байты), чтобы определить его реальный формат.
Отдельное преимущество — способность открывать не только обычные файлы, но и блочные устройства вроде /dev/sda. Это делает hexedit инструментом диагностики дисков, хотя работа с устройствами требует особой осторожности.
Установка hexedit в популярных дистрибутивах
В большинстве систем пакет называется hexedit и ставится штатным менеджером пакетов. Для Debian и Ubuntu команда выглядит так:
sudo apt install hexedit
В Fedora используется sudo dnf install hexedit, в Arch Linux — sudo pacman -S hexedit. Если пакет не найден, проверьте, что подключены стандартные репозитории вашего дистрибутива, и обновите их индекс.
Проверить установку можно, просто запустив программу без аргументов — откроется пустой интерфейс. Выход из редактора выполняется клавишами Ctrl+C или Ctrl+X в зависимости от версии; точная подсказка отображается в нижней строке окна программы.
Интерфейс и основные горячие клавиши
После запуска hexedit файл.bin экран делится на три зоны: колонку смещений (адресов), шестнадцатеричную область и текстовую панель. Курсор перемещается стрелками, а правка выполняется прямым вводом: в hex-области набираются цифры 0-9 и буквы A-F, в текстовой — обычные символы.
Ниже — основные клавиши, которые используются чаще всего. Точный список для вашей версии всегда доступен по клавише F1 (встроенная справка).
| Клавиша | Действие |
|---|---|
Ctrl+S | Поиск вперёд по файлу |
Ctrl+R | Повторить поиск |
Tab | Переключение между hex- и ASCII-панелью |
Ctrl+X / Ctrl+C | Выход из редактора |
Ctrl+Z | Приостановить программу (вернуться через fg) |
Обратите внимание: hexedit сохраняет изменения в файл немедленно при вводе, без отдельной команды сохранения. Это принципиально отличает его от привычных текстовых редакторов и является главным источником ошибок новичков.
Практический сценарий: просмотр и правка бинарного файла
Рассмотрим типовую задачу — нужно проверить заголовок файла и исправить один байт. Сначала сделайте резервную копию: cp file.bin file.bin.bak. Это займёт секунду, но спасёт при ошибочной правке.
Затем откройте файл, перейдите к нужному смещению и аккуратно введите новое значение. Порядок действий удобно сверить по чек-листу:
☑️ Безопасная правка файла в hexedit
Для поиска конкретной последовательности байтов используйте Ctrl+S: в hex-режиме вводится шестнадцатеричная строка, в ASCII-режиме — текст. Если совпадений несколько, повторный поиск запускается через Ctrl+R.
⚠️ Внимание: не редактируйте файл, который в этот момент открыт работающей программой или смонтирован как часть файловой системы. Изменение байтов «на лету» может привести к повреждению данных и сбою приложения.
Работа с дисками и блочными устройствами
Hexedit умеет открывать устройства напрямую, например sudo hexedit /dev/sdb. Так можно посмотреть таблицу разделов, загрузочный сектор или суперблок файловой системы. Для чтения это относительно безопасно, но любая запись в сырой диск обходит файловую систему целиком.
Перед экспериментами снимите образ диска или раздела утилитой dd и тренируйтесь на нём. Правка образа ничем не грозит оригиналу, а синтаксис работы в редакторе тот же самый.
⚠️ Внимание: запись изменений напрямую на системный диск (тот, с которого загружена ОС) способна сделать систему незагружаемой. Если точная структура сектора вам неизвестна, ограничьтесь режимом просмотра.
Как отличить hexedit от похожих утилит
Hexdump и od только выводят дамп в терминал без возможности редактирования. Xxd умеет и править, но через промежуточный текстовый файл. Hexedit же даёт интерактивный полноэкранный интерфейс, что удобнее для ручной работы.
Типичные проблемы и их решение
Редактор не открывает файл из-за прав доступа. Проверьте права командой ls -l файл и при необходимости запустите hexedit через sudo — но только для чтения системных файлов, правка под root требует понимания последствий.
Случайно изменён байт. Поскольку отмены в редакторе нет, единственная защита — та самая резервная копия. Восстановите файл из неё и начните заново.
Искажение отображения в терминале. Если интерфейс «ломается», проверьте переменную окружения TERM и попробуйте другой эмулятор терминала. В SSH-сессиях проблема чаще всего связана именно с несовпадением типа терминала.
Альтернативы hexedit
Если возможностей консольного редактора не хватает, есть и другие инструменты. Выбор зависит от задачи и наличия графического окружения.
- 🖥 GHex и Okteta — графические hex-редакторы для Linux с подсветкой структур;
- ⌨️ xxd — консольный просмотр и конвертация дампов, входит в состав Vim;
- 📊 hexdump / od — классические утилиты вывода дампов для скриптов;
- 🧪 wxHexEditor — подходит для очень больших файлов и дисков.
Для автоматизации (пакетной обработки в скриптах) интерактивный hexedit не подходит — там логичнее использовать xxd, dd или скрипты на Python.
Частые вопросы о hexedit
Есть ли в hexedit функция отмены (undo)?
Нет, полноценной отмены в hexedit не предусмотрено, а изменения записываются в файл сразу. Поэтому перед правкой всегда создавайте резервную копию командой cp.
Можно ли редактировать диск в hexedit без прав root?
Нет, для прямого доступа к блочным устройствам вроде /dev/sda требуются права суперпользователя или членство в соответствующей группе (например, disk). Обычные файлы редактируются под своим пользователем, если есть права на запись.
Чем hexedit отличается от hexdump?
Hexdump — это утилита только для просмотра: она выводит дамп файла в терминал. Hexedit — интерактивный редактор с полноэкранным интерфейсом, позволяющий изменять байты прямо в файле.
Безопасно ли открывать системные файлы в hexedit?
Просмотр безопасен, если вы ничего не вводите в область редактирования. Риск появляется при случайном нажатии клавиш, поскольку изменения сохраняются мгновенно. Для изучения системных файлов надёжнее сначала скопировать их и открывать копию.
Подходит ли hexedit для очень больших файлов?
Hexedit справляется с файлами заметного размера и умеет работать с дисками целиком, однако для многогигабайтных образов специализированные редакторы вроде wxHexEditor могут оказаться удобнее за счёт оптимизации работы с большими данными.