В данном примере показано, как создавать сценарии adb для просмотра содержимого каталогов и таблицы i-узлов файловой системы. В примере используется каталог с именем dir, который содержит разнообразные файлы. Файловая система связана с файлом устройства /dev/hd3 (/tmp), причем предполагается, что у пользователя есть права на чтение этого файла.
Для просмотра каталога нужно создать сценарий. Обычно каталог содержит одну или несколько записей. Каждая запись состоит из беззнакового номера i-узла файла и 14-символьного имени файла. Для просмотра этой информации в файле сценария нужно указать соответствующую команду. Программа adb предназначена для работы с объектными файлами в формате xcoff. Этот формат отличен от формата каталога. Из-за этого программа adb решит, что длина его текстового сегмента равна нулю. С помощью команды m укажите программе adb, что длина текстового сегмента каталога больше нуля. Начните сеанс работы с adb с ввода команды:
,0?m 360 0
Например, для вывода первых 20 записей, в которых номер i-узла файла будет отделяться от его имени знаком табуляции, нужно ввести следующую команду:
0,20?ut14cn
Вместо второго числа (20) нужно указать реальное число записей. Если в начале сценария будет указана приведенная ниже команда, то программа adb выведет указанные строки как заголовки столбцов значений:
="inumber"8t"Name"
После создания файла сценария укажите его в качестве файла ввода при запуске adb с именем вашего каталога. Например, для того чтобы программа adb была выполнена для каталога geo, считывая команды из входного файла сценария ddump, нужно ввести следующую команду:
adb geo - <ddump
Знак минус (-) запрещает программе adb открывать файл дампа. Программа adb считывает команды из файла сценария.
Для просмотра таблицы i-узлов файловой системы создайте новый сценарий и запустите программу adb, указав в качестве параметра файл устройства файловой системы. Таблица i-узлов файловой системы имеет сложную структуру. Каждая запись содержит:
Ниже приведен пример вывода дампа каталога:
inumber имя 0: 26 . 2 .. 27 .estate 28 adbsamp 29 adbsamp.c 30 calc.lex 31 calc.yacc 32 cbtest 68 .profile 66 .profile.bak 46 adbsamp2.c 52 adbsamp2 35 adbsamp.s 34 adbsamp2.s 48 forktst1.c 49 forktst2.c 50 forktst3.c 51 lpp&us1.name 33 adbsamp3.c 241 sample 198 adbsamp3 55 msgqtst.c 56 newsig.c
Таблица i-узлов начинается с адреса 02000. Вы можете просмотреть таблицу, начиная с первой записи, указав в файле сценария следующую команду:
02000,-1?on3bnbrdn8un2Y2na
Для того чтобы данные вывода было легче читать, в команде указано несколько символов новой строки.
Для просмотра таблицы i-узлов файла /dev/hd3 с помощью файла script введите следующую команду:
adb /dev/hd3 - <script
На экране появится набор записей следующего вида:
02000: 073145 0163 0164 0141 0162 10356 28770 8236 25956 27766 25455 8236 25956 25206 1976 Feb 5 08:34:56 1975 Dec 28 10:55:15
Применение выражений в программе adb
Просмотр и редактирование исходного файла с помощью программы adb
Пример программы adb: adbsamp2
Пример программы adb: adbsamp3