В данном примере показано, как создавать сценарии 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