Команда whereis — это сервисная утилита, которая не имеет графического интерфейса, работает в терминале и полезна в случаях, когда нужно узнать место расположения бинарных или исходных файлов на компьютере.
Она же поможет найти мануалы по выполнению тех или иных команд. Команда whereis linux входит в пакет util-linux. давайте сначала рассмотрим её синтаксис.
Синтаксис whereis
Чтобы воспользоваться возможностями whereis нужно записывать команды следующим образом:
whereis опции имя_программы
Если слово для поиска указывать обязательно, то без перечисления опций можно обойтись. В этом случае поиск будет происходить во всех трех типах файлов — и в бинарных, и в исходных, и в мануалах.
Опции whereis
Вот основные опции whereis:
- -b — поиск бинарных файлов.
- -B <папки> — ведет поиск исключительно в указанных пользователем директориях.
-m — поиск мануалов. - -M <папки> — ищет справочные файлы в тех директориях, которые выбрал пользователь.
-s — поиск исходников. - -S <папки> — будет искать исходные файлы только там, где нужно пользователю
- -u — запрашивает вывод тех команд, у которых отсутствует указанный тип файлов либо имеется в наличии два и больше таковых. К примеру, whereis -m -u* пригодится для поиска команд без мануала или с двумя мануалами.
- -f — должна завершать перечень директорий, поскольку сигнализирует о том, что набор символов, идущий сразу после нее, является названием файла.
- -l — показывает каталоги, в которых по умолчанию происходит поиск.
Вместо <папки> следует прописывать путь к требуемой директории.
Примеры использования
Если пользователь не задает директории, в которых он хотел бы проводить поиск файлов той или иной программы, утилита пользуется списками каталогов, которые установлены в ней по дефолту. Просмотреть их перечень можно так:
whereis -l
Чтобы получить всю информацию о конкретной команде (в нашем случае — bash), нужно набрать в терминале
whereis bash
На скриншоте можно увидеть как выглядит вывод, если команда существует в системе:
- bash: — это название искомой команды;
- /bin/bash — адрес, по которому лежит двоичный файл;
- /etc/bash.bashrc — конфигурационный файл;
- /usr/share/man/man1/bash.1.gz — мануал.
Если команда по какой-либо причине не существует, в выводе появится только ее название.
Нужно получить информацию о нескольких командах? Нет нужды отдельно прописывать строку поиска для каждой из них. Можно перечислить все названия через пробел, как здесь:
whereis netcat uptime
На скриншоте видно, что данные о каждой команде выводятся с новой строки. Для поиска исходных файлов достаточно напечатать
whereis -s kword
Вместо kword может быть название любой другой программы или команды. Если исходные файлы будут обнаружены, whereis сообщит об их месте расположения. Поиск мануалов происходит так:
whereis -m lmms
Как и в предыдущем случае, lmms использовано для примера. На этом месте может быть название любой другой команды или программы.
Для поиска информации в определенных директориях с помощью опций -S, -M, -B следует прописывать путь к требуемому каталогу и не забывать об опции -f перед названием команды, об которой будете искать информацию. К примеру, чтобы найти бинарный файл команды cp в каталоге /bin нужно ввести в терминале:
whereis -b -B /bin -f cp
Воспользовавшись опцией -u, легко найти все необычные записи (то есть, команды или программы, у которых нет бинарного или исходного файла, мануала; а также те, у которых таких файлов два и больше). Вот пример для поиска всех бинарных файлов в директории /bin, которые соответствуют упомянутым характеристикам:
cd /bin
whereis -m -u *
Звездочка в качестве маски указывает на то, что будут отображены все имеющиеся файлы, подходящие под запрос.
Выводы
Теперь вы точно знаете как использовать утилиту whereis linux для получения информации о месте нахождения тех или иных файлов — бинарных, исходных или справочных. Если у вас есть что сказать в дополнение к выше изложенному, также не забудьте написать комментарий.