Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #51, ФЕВРАЛЬ 2005 г.

Alma mater

[XL]WOLF <admin@ns0.ru>

Спецвыпуск: Хакер, номер #051, стр. 051-008-1


Изучаем основы *nix

Любое знакомство с новой вещью начинается с чтения инструкции к ней. Ты покупаешь мобильный телефон и ищешь его достоинства и разные функции именно в инструкции. Даже если ты знаешь, как пользоваться мобильником, то все равно есть смысл почитать эту маленькую книжицу. Эта статья задумана как инструкция по *nix-системам на примере FreeBSD.

Мир Мануала

Итак, у меня имеется в распоряжении машина: FreeBSD **.ns0.ru 4.9-STABLE FreeBSD 4.9-STABLE #7: Wed Apr 7 22:30:54 MSD 2004 xlwolf@**.ns0.ru:/usr/obj/usr/src/sys/NS i386. Есть доступ администратора. С чего начать? Конечно же, почитать инструкцию к FreeBSD. Кроме тонны книжек, которые уже сломали не одну твою полку, есть еще и электронный справочник по командам, с помощью которых ты общаешься с FreeBSD.

Конечно, хорошо бы общаться с сервером при помощи голоса, но что будет, если вместо "rm –fr ." тот услышит "rm –fr /". Лучше уж вводить команды вручную. А как узнать, что делает определенная команда (например, rm), какие у нее есть параметры и что они значат (например "-fr")? Обо всех командах и рассказано в man. Культпоход в мир Мануала начнем с команды

# man man

исполнив которую ты узнаешь, что же такое творит команда man. Теперь запусти команду man rm – и покажется мануал по утилите rm. А для того, чтобы ты понял смысл написанного, рассмотрим то, что man отображает на экране. Для отображения мануалов по умолчанию используется программа More. Итак, мануал по какой-либо команде состоит из нескольких частей:

NAME – имя самой команды, ее аналогов и краткое описание команды.

SYNOPSIS – описание синтаксиса данной команды.

DESCRIPTION – этот раздел дает подробное описание того, что делает программа и какие параметры ей можно передавать.

NOTE – здесь описаны некоторые замечания по команде. В частности, по команде rm объясняется, как можно выполнять удаление нетривиальных файлов, например, вида "-filename".

SEE ALSO – очень полезный раздел, так как тут отображаются команды, которые связаны с этой командой.

BUGS – здесь описаны известные ошибки, которые еще не исправлены.

Далее идут некоторые другие секции, которые не очень интересы, кроме одной, представляющей исторический интерес: HISTORY – здесь описывается, когда и в какой версии *nix впервые появилась данная команда.

Вроде бы все понятно, но если приглядеться, то в разделе SEE ALSO можно найти какие-то цифры рядом с командами в скобках. Зачем нужны эти неопознанные цифровые объекты? Для того чтобы все-таки опознать их, нужно посмотреть, откуда берет команда man эти самые страницы мануалов. Самое правильное – пойти в бинарник man, куда он может обращаться в пределах файловой системы. Именно это и сделаем:

# strings /usr/bin/man | grep “/”

Из всех строчек привлекает внимание запись /etc/manpath.config. После исследования этого файла становится понятно, что здесь описывается и где находятся все мануалы в системе. А основные мануалы лежат в /usr/share/man. Вот и они! И много как… man1 man2 man3... И что значат эти цифры? Мануалы структурированы по назначению команд, которые они описывают. Итак, имеем классификацию разделов:

Содержание  Вперед на стр. 051-008-2