Найти тему
Игорь Сотников

ПОИСК И РАСПОЛОЖЕНИЕ КОМАНД В LINUX. Часть 2.

Есть другая команда - locate mail.

-2

Данная команда отрабатывает практически мгновенно. Команда find искала именно по синтаксису, плюс можно добавлять сложные конструкции поиска. Команда locate делает проще показывает все где находится сочетание символов.

Запустим поиск с помощью команды find / -user siadmin, поиск будет искать все что касается данного пользователя. Поиск опять идет дольше, чем поиск командой locate siadmin.

Дело в том, что данная команда по умолчанию ищет не везде и у нее есть конфигурационный файл cat /etc/updatedb.conf.

-3

В данном конфигурационном файле мы можем увидеть, что данная утилита не ищет в примонтированных файловых системах. Даная строчка # PRUNENAMES=".git .bzr .hg .svn", говорит о том , что в данных форматы в поиске не выдаются. Поиск не производится в папках PRUNEPATHS="/tmp /var/spool /media /var/lib/os-prober /var/lib/ceph /home/.ecryptfs /var/lib/schroot". И не ищет в перечисленных файловых системах в файле. Данный файл можно конфигурировать и будут манятся параметры поиска.

Создадим файл текстовый touch Vadim.txt. И попробуем найти - locate Vadim.txt. Ничего не нашел. find Vadim.txt - поиск успешен.

-4

locate работает с индексной локацией. Данный механизм напоминает индексацию файлов в MS Windows. Проходит индексация файлов и папок и после этого windows знает, что и где лежит. А если индексация не была проведена, то операционная система Windows или говорит, что ничего не найдено или поиск происходит длительное время. Аналогично утилита locate работает в Linux. Раз в день, команда locate запускает команду find. Команда find пробегает по всей файловой системе, а команда locate создает некую Базу данных и запоминает где и что находиться. Именно поэтому команда find работает долго, а команда locate работает практически моментально. Locate знает, где и что лежит в тот момент когда find искал. Но есть большой минус, данная функция происходит раз в день и изменения могут быть не актуальны. Для обновления базы данных команды locate, необходимо ее запустить вручную updatedb. Т.е ест конфигурация /etc/updatedb.conf и мы запускаем обновление Базы данных команды. После обновления, команда будет практически мгновенно находить.

И последняя часть статьи, в которой необходимо рассмотреть поиск по командам. Тут достаточно просто, есть команда ls – она показывает содержимое папки. Мы можем найти где находиться данная команда which ls и получим, что она находиться /bin/ls. Т.е. команда ls хранится в папке bin – где хранятся бинарники тех команд, которые могут быть вызваны пользователями. По сути когда мы набираем команду ls, мы вводим /bin/ls.

У нас есть команда type. Обратите внимание, когда мы вызываем команду ls срабатывает подсветка файлов и так далее, т.е. настройки оболочки. Когда мы запускаем напрямую /bin/ls то вызывается непосредственно команда и игнорируются настройки оболочки. Причина заключается в том, что когда мы запускаем просто команду ls, то она запускается с некоторыми ключами.

-5

Чтобы узнать, что за ключи используются необходимо набрать type ls.

-6

Обратите внимание, что команда ls – это алиас\псевдоним. Т.е запуская в таком режиме, фактически мы вводим /bin/ls –color=auto. И получаем красивый вывод. Type позволяет выводить псевдоним.

Есть еще одна команда, которая более детальную информацию выводит whereis ls. Для ls там не много информации.Показывает, где лежит и к какому пакету относится.

Если у кого появится желание пообщаться или для сотрудничества, мой ТГ канал https://t.me/ITharchevnya

Если у кого есть желание сказать спасибо за канал или статьи :

Сбер : 4274 3200 2419 9740

Paypal: is.sotnikov@gmail.com

QIWI: KNEYE561

Юmoney ( ЯД ) 410016062893453