Команда Linux whereis: поиск файлов и команд

LinuxBeginner
Практиковаться сейчас

Введение

Добро пожаловать в отдел системного администрирования TechCorp! В качестве нового младшего системного администратора ваша задача — освоить команду whereis. Этот мощный инструмент поможет вам находить исполняемые файлы, исходные коды и справочные страницы для различных команд в системе Linux. К концу этой лабораторной работы вы сможете эффективно ориентироваться в файловой системе и находить критически важные компоненты системы.

Основы работы с 'whereis'

Ваше первое задание в TechCorp — познакомиться с командой whereis. Она используется для определения местоположения исполняемых файлов (бинарников), исходных текстов и файлов документации (man-страниц) для конкретной команды.

Давайте начнем с использования whereis для поиска информации о команде ls:

whereis ls

Вы должны увидеть вывод, похожий на этот:

ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

Этот результат содержит два важных элемента:

  1. /usr/bin/ls: Это путь к исполняемому файлу ls. Когда вы вводите ls в терминале, запускается именно эта программа.
  2. /usr/share/man/man1/ls.1.gz: Это путь к справочной странице (manual page) для ls. Справочные страницы содержат подробную информацию о том, как использовать команды.

Команда whereis ищет файлы в ограниченном наборе стандартных мест, включая каталоги с исполняемыми файлами, библиотеки и директории с документацией. Благодаря этому поиск выполняется гораздо быстрее, чем сканирование всей файловой системы.

Если вам интересно, что означают эти пути:

  • /usr/bin — стандартное место хранения пользовательских команд.
  • /usr/share/man — здесь обычно хранятся справочные страницы.
  • man1 указывает на то, что это раздел руководства для пользовательских команд (в отличие от системных вызовов или библиотечных функций).
  • Расширение .gz означает, что файл сжат для экономии места.

Поиск исполняемых файлов

Руководитель группы попросил вас найти исполняемый файл для команды grep. Опция -b команды whereis идеально подходит для этой задачи, так как она ограничивает поиск только бинарными файлами.

Попробуйте выполнить следующую команду:

whereis -b grep

Вы увидите примерно следующее:

grep: /usr/bin/grep

Этот вывод показывает точное расположение исполняемого файла grep. Бинарные файлы — это и есть те программы, которые запускаются при вводе команды. В данном случае, когда вы используете grep, вы фактически запускаете программу, расположенную в /usr/bin/grep.

Теперь давайте попробуем найти исполняемый файл для команды, которой может не быть в системе. Используйте whereis -b для поиска вымышленной команды nonexistent:

whereis -b nonexistent

Результат будет таким:

nonexistent:

Пустой результат после двоеточия означает, что исполняемый файл для nonexistent не найден. Это полезно, когда вы не уверены, установлена ли конкретная утилита в вашей системе.

Поиск справочных страниц

Ваша следующая задача — найти справочные страницы для команды ssh. Документация крайне важна для понимания принципов работы различных инструментов.

Используйте опцию -m с командой whereis, чтобы найти только файлы руководств:

whereis -m ssh

Вы получите вывод, похожий на этот:

ssh: /usr/share/man/man1/ssh.1.gz

Здесь указан путь к справочной странице ssh. Расширение .gz говорит о том, что файл заархивирован.

Обычно для чтения документации используется команда man. Но так как мы еще не разбирали её, давайте просто проверим физическое наличие файла:

ls /usr/share/man/man1/ssh.1.gz

Если файл существует, его имя отобразится в выводе. Это подтверждает, что документация действительно присутствует в системе.

Умение находить справочные страницы критически важно для системного администратора. Это позволяет быстро проверить наличие документации к инструменту, что неоценимо при настройке ПО или поиске причин неисправностей.

Комбинирование опций

По мере освоения whereis ваш руководитель дает вам более сложное задание: найти одновременно и исполняемый файл, и справочную страницу для python3 одной командой.

Для этого можно объединить опции -b и -m:

whereis -bm python3

Вывод может выглядеть так:

python3: /usr/bin/python3 /usr/lib/python3 /etc/python3 /usr/share/python3 /usr/share/man/man1/python3.1.gz

Этот результат дает исчерпывающую информацию:

  • /usr/bin/python3: Путь к исполняемому файлу Python 3.
  • /usr/lib/python3: Директория с библиотеками Python 3 (повторно используемый код).
  • /etc/python3: Каталог с конфигурационными файлами.
  • /usr/share/python3: Директория с общими данными приложения.
  • /usr/share/man/man1/python3.1.gz: Путь к справочной странице.

Такой комплексный обзор особенно полезен при работе со сложным программным обеспечением, компоненты которого разбросаны по разным частям файловой системы.

Поиск исходных кодов

В качестве финального задания руководитель просит вас проверить, доступны ли в системе исходные коды оболочки bash. Исходные файлы полезны для изучения логики работы программы или для сборки её модифицированных версий.

Используйте опцию -s для поиска исходных кодов:

whereis -s bash

Вывод может оказаться пустым, так как исходные коды обычно не устанавливаются по умолчанию в большинстве дистрибутивов. Если же вы увидите путь, это будет местом расположения исходников bash.

Теперь давайте объединим все возможности, чтобы получить полную картину по команде bash:

whereis bash

Запуск команды без опций покажет всю доступную информацию:

bash: /usr/bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz

Этот вывод демонстрирует:

  • /usr/bin/bash: Исполняемый файл оболочки.
  • /etc/bash.bashrc: Системный конфигурационный файл для bash.
  • /usr/share/man/man1/bash.1.gz: Справочная страница.

Знание расположения этих файлов необходимо для администрирования. Например, если вам нужно изменить настройки bash для всех пользователей сразу, вы теперь знаете, что искать их нужно в /etc/bash.bashrc.

Резюме

В ходе этой лабораторной работы вы научились использовать команду whereis для поиска исполняемых файлов, исходных кодов и справочных страниц в Linux. Вы освоили следующие навыки:

  1. Получение базовой информации о командах.
  2. Поиск исполняемых файлов с помощью опции -b.
  3. Поиск справочных страниц с помощью опции -m.
  4. Комбинирование опций для получения детальной информации.
  5. Поиск исходных кодов с помощью опции -s.

Эти навыки станут фундаментом вашей работы в качестве системного администратора, позволяя быстро находить нужные файлы и понимать структуру системы Linux.

Дополнительные опции whereis, не рассмотренные в этой работе:

  • -u: Поиск «необычных» записей (файлов, которые не соответствуют стандартным шаблонам именования).
  • -B: Изменение или ограничение путей, где whereis ищет исполняемые файлы.
  • -M: Изменение или ограничение путей для поиска справочных страниц.
  • -S: Изменение или ограничение путей для поиска исходных кодов.

Помните, что whereis — это лишь один из многих инструментов. Она отлично подходит для быстрого поиска стандартных компонентов, но для более глубокого сканирования всей файловой системы в будущем вам могут понадобиться команды find или locate.