Поиск файлов и команд в Linux

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

Введение

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

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

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

Понимание команды whereis

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

Начнем с того, чтобы понять, как работает команда whereis. Сначала убедитесь, что вы находитесь в директории проекта:

cd ~/project

Для более глубокого понимания команды whereis давайте посмотрим на ее справочную информацию:

whereis --help

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

Usage:
 whereis [options] [-BMS <dir>... -f] <name>...

Locate the binary, source, and manual page files for a command.

Options:
 -b         search only for binaries
 -B <dirs>  define binaries lookup path
 -m         search only for manuals and infos
 -M <dirs>  define man and info lookup path
 -s         search only for sources
 -S <dirs>  define sources lookup path
 -f         terminate <dirs> argument list
 -u         search for unusual entries
 -l         output effective lookup paths

For more details see whereis(1).

Этот вывод объясняет, что whereis можно использовать для поиска бинарных файлов (исполняемых файлов), исходных файлов и страниц руководства для команд. Также здесь показаны различные параметры, которые можно использовать для уточнения поиска.

Поиск бинарных исполняемых файлов с помощью whereis

В Linux бинарные исполняемые файлы представляют собой скомпилированные программы, готовые к запуску из командной строки. Обычно они хранятся в директориях, таких как /usr/bin, /bin или /usr/local/bin.

Давайте используем команду whereis для поиска местоположения некоторых часто используемых команд Linux.

Сначала найдем бинарный файл для команды grep, которая используется для поиска шаблонов в файлах:

whereis grep

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

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

Этот вывод сообщает вам две важные вещи:

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

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

whereis -b grep

Вывод будет показывать только местоположение бинарного файла:

grep: /usr/bin/grep

Теперь найдем местоположение другой распространенной команды, ls, которая используется для вывода содержимого директории:

whereis ls

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

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

Это показывает, что бинарный файл команды ls находится в /usr/bin/ls, а ее страница руководства - по адресу /usr/share/man/man1/ls.1.gz.

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

Поиск справочных страниц с помощью whereis

Страницы руководства (man pages) предоставляют документацию по командам и программам в Linux. Они содержат подробную информацию о том, как использовать команду, какие параметры доступны, а также примеры обычного использования.

Команда whereis может помочь вам найти эти страницы руководства с использованием опции -m. Давайте посмотрим, как искать страницы руководства для различных команд.

Сначала найдем страницу руководства для команды find, которая используется для поиска файлов в иерархии директорий:

whereis -m find

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

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

Это показывает, что страница руководства для команды find расположена по адресу /usr/share/man/man1/find.1.gz.

Страницы руководства в Linux обычно хранятся в директории /usr/share/man, организованной по номерированным разделам:

  • Раздел 1: Пользовательские команды (исполняемые программы или команды оболочки)
  • Раздел 2: Системные вызовы (функции, предоставляемые ядром)
  • Раздел 3: Вызовы библиотек (функции в программах-библиотеках)
  • Раздел 4: Специальные файлы (обычно находятся в /dev)
  • Раздел 5: Форматы файлов и соглашения
  • Раздел 6: Игры
  • Раздел 7: Разное
  • Раздел 8: Команды системного администрирования

Большинство часто используемых команд имеют свои страницы руководства в разделе 1, поэтому вы часто будете видеть имена файлов, оканчивающиеся на .1.gz (сжатые файлы раздела 1).

Давайте найдем страницу руководства для команды passwd, которая используется для изменения паролей пользователей:

whereis -m passwd

Вы, возможно, увидите вывод, похожий на следующий:

passwd: /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz

Обратите внимание, что у passwd есть страницы руководства в двух разных разделах - раздел 1 для самой команды и раздел 5 для формата файла паролей.

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

man find

Нажмите q, чтобы выйти из просмотрщика страниц руководства, когда закончите чтение.

Поиск исходных файлов с помощью whereis

Исходные файлы - это оригинальные файлы кода, из которых компилируются бинарные исполняемые файлы. Команда whereis также может помочь вам найти эти исходные файлы, если они доступны в вашей системе.

Для поиска исходных файлов используйте опцию -s с командой whereis. Попробуем найти исходные файлы для некоторых распространенных команд:

whereis -s ls

В зависимости от конфигурации вашей системы вы может не увидеть никакого вывода или увидеть что - то вроде этого:

ls:

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

Некоторые программы, особенно те, которые вы компилируете из исходного кода или инструменты разработки, могут иметь свои исходные файлы в системе. Попробуем другую команду, например gcc (GNU C Compiler):

whereis -s gcc

Снова, вывод зависит от вашей системы. Вы можете увидеть что - то вроде этого:

gcc: /usr/lib/gcc

Это означает, что исходные файлы, связанные с gcc, могут быть найдены в директории /usr/lib/gcc.

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

Давайте объединим несколько опций, чтобы получить более полное представление о том, где находятся файлы, связанные с командой. Например, чтобы найти все бинарные, руководственные и исходные файлы для python:

whereis python

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

Комбинирование параметров и поиск нескольких команд

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

Сначала давайте объединим несколько опций, чтобы уточнить наш поиск. Например, если вы хотите найти как бинарные файлы, так и страницы руководства (но не исходные файлы) для команды tar:

whereis -b -m tar

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

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

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

Вы также можете искать несколько команд в одном запросе whereis. Это полезно, когда вам нужно сразу найти несколько связанных команд. Давайте найдем местоположения трех команд - cp, mv и rm:

whereis cp mv rm

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

cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz
mv: /usr/bin/mv /usr/share/man/man1/mv.1.gz
rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz

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

Еще одна полезная опция - -l, которая выводит список директорий, в которых whereis ищет файлы:

whereis -l

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

bin: /usr/bin
bin: /usr/sbin
bin: /usr/games
bin: /usr/local/bin
bin: /usr/local/sbin
man: /usr/man/all
man: /usr/share/man/all
man: /usr/local/man/all
man: /usr/local/share/man/all
src: /usr/src/linux
src: /usr/src/packages
src: /usr/local/src
...

Эта информация полезна для понимания, где whereis ищет файлы и почему он может не найти определенные файлы, даже если они существуют в вашей системе.

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

Резюме

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

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

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

По мере продолжения вашего пути в Linux вы также можете изучить связанные команды, такие как which (которая находит только исполняемые файлы в переменной PATH), locate (которая может найти любые файлы по имени с использованием базы данных) и find (которая может искать файлы по различным критериям). Каждая из этих команд имеет свои преимущества и области применения, дополняя то, что вы узнали о whereis.