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

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/FileandDirectoryManagementGroup -.-> linux/whereis("File/Command Finding") subgraph Lab Skills linux/whereis -.-> lab-215211{{"Команда whereis в Linux: поиск файлов и команд"}} end

Понимание основ команды 'whereis'

Ваша первая задача в TechCorp - ознакомиться с командой whereis. Эта команда используется для поиска бинарных файлов, исходных кодов и страниц руководства для указанной команды.

Начнем с использования команды 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: Это местоположение страницы руководства для команды 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. Страницы руководства (man pages) являются важным инструментом для понимания того, как использовать различные команды.

Используйте опцию -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 (повторно используемый код, используемый программами на Python)
  • /etc/python3: Директория, содержащая файлы конфигурации Python 3
  • /usr/share/python3: Директория, содержащая общие данные Python 3
  • /usr/share/man/man1/python3.1.gz: Местоположение страницы руководства для Python 3

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

Поиск исходных файлов

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

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

whereis -s bash

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

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

whereis bash

Эта команда без каких-либо опций покажет всю доступную информацию о bash, которая может выглядеть следующим образом:

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

Этот вывод показывает:

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

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

Итоги

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

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

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

Дополнительные опции команды whereis, не рассмотренные в этом практическом занятии, включают:

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

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