Введение
В этом лабе вы узнаете о команде od (octal dump) в Linux, которая используется для отображения содержимого файла в восьмеричном, десятичном, шестнадцатеричном или других форматах. Вы начнете с понимания базового использования команды od, затем изучите различные параметры для настройки формата вывода и, наконец, выполните шестнадцатеричный дамп файлов. В этом лабе рассматриваются основные навыки по базовым операциям с файлами и директориями в среде Linux.
Разберитесь с командой od
В этом шаге вы узнаете о команде od (octal dump) в Linux. Команда od используется для отображения содержимого файла в восьмеричном, десятичном, шестнадцатеричном или других форматах.
Для начала создадим примерный файл с некоторым текстом:
echo "Hello, Linux!" > sample.txt
Теперь можно использовать команду od для просмотра содержимого файла в шестнадцатеричном формате:
od -x sample.txt
Пример вывода:
0000000 4865 6c6c 6f2c 2020 4c69 6e75 7821 0a00
0000020
Параметр -x сообщает od отображать содержимое файла в шестнадцатеричном формате. Каждая строка показывает смещение (в байтах) от начала файла, за которым следует шестнадцатеричное представление данных.
Также можно использовать параметр -t для указания формата вывода. Например, чтобы отобразить содержимое файла в десятичном формате:
od -t d1 sample.txt
Пример вывода:
0000000 72 101 108 108 111 44 32 108 105 110 117 120 33 10
0000020
Аргумент d1 сообщает od отображать данные в формате десятичного представления 1 байта.
Изучите параметры команды od
В этом шаге вы изучите различные параметры, доступные для команды od, чтобы настроить формат вывода.
Сначала создадим еще один примерный файл с некоторыми бинарными данными:
echo -e "\x01\x02\x03\x04\x05\x06\x07\x08" > binary.txt
Теперь можно использовать команду od с разными параметрами для отображения содержимого файла в различных форматах:
## Отобразить в восьмеричном формате
od -t o1 binary.txt
## Отобразить в шестнадцатеричном формате
od -t x1 binary.txt
## Отобразить в ASCII формате
od -t c binary.txt
Пример вывода:
0000000 001 002 003 004 005 006 007 010
0000010
0000000 01 02 03 04 05 06 07 08
0000010
0000000 001 002 003 004 005 006 007 010
0000010
Параметр -t позволяет вам указать формат вывода. В примерах выше o1 представляет 1-байтовый восьмеричный формат, x1 представляет 1-байтовый шестнадцатеричный формат, а c представляет формат символов (ASCII).
Вы также можете комбинировать несколько форматов вывода с использованием параметра -t:
od -t x1 -t d1 -t c binary.txt
Пример вывода:
0000000 01 02 03 04 05 06 07 08
0000010
Это покажет содержимое файла в шестнадцатеричном, десятичном и формате символов рядом.
Выполните шестнадцатеричный дамп файлов
В этом финальном шаге вы узнаете, как использовать команду od для выполнения шестнадцатеричного дампа файлов.
Создадим более крупный примерный файл с некоторыми случайными данными:
dd if=/dev/urandom of=random.txt bs=1024 count=10
Это создаст файл с именем random.txt с 10 килобайтами случайных данных.
Теперь можно использовать команду od для отображения шестнадцатеричного дампа файла:
od -x random.txt
Пример вывода:
0000000 f6d1 9d2e 4a4b 5b8f 6acd 0f1e 0f6a 1b2e
0000020 b6f9 2d4a 1e0f 6a1b 2e6f 9d2e 4a4b 5b8f
0000040 6acd 0f1e 0f6a 1b2e b6f9 2d4a 1e0f 6a1b
0000060 2e6f 9d2e 4a4b 5b8f 6acd 0f1e 0f6a 1b2e
0000100 b6f9 2d4a 1e0f 6a1b 2e6f 9d2e 4a4b 5b8f
0000120 6acd 0f1e 0f6a 1b2e b6f9 2d4a 1e0f 6a1b
0000140 2e6f 9d2e 4a4b 5b8f 6acd 0f1e 0f6a 1b2e
0000160 b6f9 2d4a 1e0f 6a1b 2e6f 9d2e 4a4b 5b8f
0000200 6acd 0f1e 0f6a 1b2e b6f9 2d4a 1e0f 6a1b
0000220 2e6f 9d2e 4a4b 5b8f 6acd 0f1e 0f6a 1b2e
0000240
Вывод показывает шестнадцатеричное представление содержимого файла, при этом каждая строка отображает смещение (в байтах) от начала файла.
Вы также можете использовать параметр -c для отображения содержимого файла в ASCII формате вдоль с шестнадцатеричным дампом:
od -tx1 -tc random.txt
Пример вывода:
0000000 f6 d1 9d 2e 4a 4b 5b 8f 6a cd 0f 1e 0f 6a 1b 2e |......JK[..j...j..|
0000020 b6 f9 2d 4a 1e 0f 6a 1b 2e 6f 9d 2e 4a 4b 5b 8f |..-J..j..o..JK[.|
0000040 6a cd 0f 1e 0f 6a 1b 2e b6 f9 2d 4a 1e 0f 6a 1b |j....j....-J..j.|
0000060 2e 6f 9d 2e 4a 4b 5b 8f 6a cd 0f 1e 0f 6a 1b 2e |.o..JK[.j....j..|
0000100 b6 f9 2d 4a 1e 0f 6a 1b 2e 6f 9d 2e 4a 4b 5b 8f |..-J..j..o..JK[.|
0000120 6a cd 0f 1e 0f 6a 1b 2e b6 f9 2d 4a 1e 0f 6a 1b |j....j....-J..j.|
0000140 2e 6f 9d 2e 4a 4b 5b 8f 6a cd 0f 1e 0f 6a 1b 2e |.o..JK[.j....j..|
0000160 b6 f9 2d 4a 1e 0f 6a 1b 2e 6f 9d 2e 4a 4b 5b 8f |..-J..j..o..JK[.|
0000200 6a cd 0f 1e 0f 6a 1b 2e b6 f9 2d 4a 1e 0f 6a 1b |j....j....-J..j.|
0000220 2e 6f 9d 2e 4a 4b 5b 8f 6a cd 0f 1e 0f 6a 1b 2e |.o..JK[.j....j..|
0000240
Этот вывод отображает шестнадцатеричные значения рядом с их соответствующими ASCII-символами, что делает легче интерпретировать содержимое файла.
Резюме
В этом лабе вы узнали о команде od (octal dump) в Linux, которая используется для отображения содержимого файла в различных форматах, включая восьмеричный, десятичный и шестнадцатеричный. Вы создали примерные файлы с текстом и бинарными данными, и изучили различные параметры, доступные для команды od, чтобы настроить формат вывода. Вы узнали, как использовать параметр -t для указания требуемого формата вывода, такого как 1-байтовый восьмеричный, 1-байтовый шестнадцатеричный и формат символов (ASCII). Кроме того, вы узнали, как комбинировать несколько параметров для дальней настройки вывода.



