Главная > Операционные системы > UNIX
Описание: Кандидат BSDA должен уметь быстро найти где находится нужный файл и знать какие утилиты нужны для обнаружения бинарников, исходных кодов, страниц man и файлов. Кандидат должен уметь обновить базу данных locate(1) Практика: whatis(1), whereis(1),
which(1), locate(1),
find(1), sh(1) включая
встроенную команду type и опции
Комментарий
Команда whatis(1) ищет краткое описание
программы в некоторой индексированной базе данных. База данных
создаётся командой makewhatis. Она разбита на файлы, хранящиеся
там же, где и сами базы man:
Команда whereis(1) в FreeBSD и DragonFly BSD ищет расположение бинарного файла, соответствующей ему страницы man и расположение каталога с исходным кодом для этой программы.
В OpenBSD и NetBSD whereis(1) более лаконична и сообщает только о расположение исполнимого файла. Таким образом, в этих системах она не отличима от команды which(1).
Команда locate(1) позволяет искать файлы в
индексированной базе данных. Поиск в такой базе осуществляется
практически мгновенно, что выгодным образом отличает команду
locate(1) от команды
find(1). Однако база данных locate нуждается
в постоянном обновлении. Иначе результат работы этой команды
может оказаться неактуальным. Обычно обновление базы locate
осуществляется через демон cron, как и обновление базы whatis. В
DragonFly BSD и
FreeBSD это задание присутствует в списке
задач periodic(1) weekly, в
OpenBSD и в NetBSD в
скрипте
Обновление базы данных по всех системах BSD производится
программой locate.updatedb(8) находящейся по
адресу
Запуск команды locate.updatedb(8) в правами
root не лучшая идея. В этом случае в базу данных
locate(1) —
Команда find(1) тоже предназначена для поиска файлов, однако она, в отличие от locate, осуществляет реальный поиск в системе, а не заглядывает в базы данных. Работает она, поэтому, значительно медленнее, однако её возможности чрезвычайно велики. Подробнее она будет описана ниже (см. Раздел 7.6, «Поиск файла по заданным атрибутам»). Не все команды вызываются при помощи сценариев или бинарников. Есть ещё встроенные команды оболочки, определённые функции. Так, например, по команде which alias мы увидим некоторый бинарный файл /usr/bin/alias. Но на самом деле, alias это встроенная команда, как в sh(1), так и в csh(1). Чтобы отличить встроенную команду от обычной существует команда type. Она же поможет нам определить не является ли используемая нами команда собственно alias'ом (псевдонимом).
В csh команды type нет.
Главная > Операционные системы > UNIX |