Обзор
od (octal dump) — это утилита, которая считывает содержимое файла по байтам и преобразует его в различные удобочитаемые форматы. Как следует из названия 'octal' (восьмеричный), по умолчанию он выводит данные в восьмеричном формате, но с помощью опций можно выводить их также в шестнадцатеричном, десятичном и других форматах. В то время как `hexdump` в основном используется для шестнадцатеричного вывода, `od` отличается тем, что предоставляет больше форматов вывода и опций управления. Он также используется для анализа структуры двоичных файлов и судебной экспертизы данных.
Основные особенности
Основные особенности команды `od`:
- Выводит содержимое файла в восьмеричном, шестнадцатеричном, десятичном и других форматах.
- Подходит для анализа и отладки двоичных файлов.
- Предоставляет мощные опции для указания различных форматов и макетов вывода.
- Может обрабатывать вывод других команд через пайп (|).
Различия с hexdump
od и hexdump функционально схожи, но отличаются в деталях вывода и опциях.
- od: По умолчанию выводятся восьмеричные числа, поддерживает дамп различных типов данных (целые числа, числа с плавающей запятой и т. д.).
- hexdump: По умолчанию выводятся шестнадцатеричные числа, основной формат — `canonical`, который одновременно отображает смещение, шестнадцатеричные значения и ASCII-строки.
Основные опции
Опции команды `od`, часто используемые, сгруппированы по назначению.
1) Управление форматом вывода
2) Фильтрация и управление
3) Справка
Сгенерированная команда:
Комбинируйте команды.
Описание:
`od` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Изучите функции команды `od` на различных примерах использования.
Вывод содержимого файла в восьмеричном формате
od /bin/cat | head
Выводит содержимое двоичного файла `/bin/cat` в восьмеричном формате. Это стандартное поведение `od`.
Вывод в шестнадцатеричном формате и ASCII-символами
echo 'Hello World!' | od -t x1c
Одновременно выводит содержимое файла в виде шестнадцатеричных байтов и ASCII-символов. Опция `-t x1c` указывает формат, объединяющий шестнадцатеричный вывод (x1) и ASCII-символы (c).
Вывод только определенной части файла
od -t x1 -N 100 /bin/ls
Выводит 100 байтов содержимого файла `/bin/ls`, начиная с начала, в шестнадцатеричном формате.
Анализ файла с символами новой строки
echo 'Hello\nWorld' | od -c
Проверяет содержимое текстового файла, содержащего символы новой строки (`\n`), в виде ASCII-символов и восьмеричных кодов. `012` — это восьмеричный код символа новой строки.
Советы и примечания
Собраны важные моменты, на которые следует обратить внимание при использовании команды `od`.
Советы
- `od` предоставляет больше форматов вывода (опция `-t`), чем `hexdump`, что полезно для интерпретации дамп-данных в различных типах данных.
- При выполнении команды `od` вывод всего файла может привести к зависанию терминала. Поэтому рекомендуется использовать опцию `-N` или команду `head` для ограничения длины вывода.
- Вывод `od` не имеет того же макета, что и опция `-C` `hexdump`, поэтому для более привычного формата может быть удобнее использовать `hexdump`.