В обширной экосистеме Linux инструменты и команды, имеющиеся в вашем распоряжении, часто могут показаться непомерно большими. Среди них команды whereis и which являются ключевыми при поиске исполняемых файлов команд. Хотя может показаться, что они служат схожим целям, их функциональные возможности и результаты существенно различаются. Цель данного руководства - провести подробное сравнение между командами whereis и which в Linux, пролить свет на их нюансы и практическое применение.
Введение в команду which в Linux
Команда which - это утилита, определяющая местоположение исполняемых файлов. Она выполняет поиск по каталогам, перечисленным в переменной окружения PATH, и возвращает путь к команде, которая будет выполнена в случае ее вызова.
Синтаксис и параметры команды which
Основная структура команды which имеет следующий вид:
1 | which [OPTION]... КОМАНДА... |
Некоторые часто используемые опции включают:
-a: Вывести все совпадающие имена путей каждого аргумента.
Например:
1 | which -a python |
Это может вернуть несколько путей, если у вас установлено несколько версий Python.
Практическое применение which
Для определения местоположения команды grep - инструмента, используемого для поиска шаблонов:
1 | which grep |
Это может вернуть:
1 | /bin/grep |
Команда which показала, что двоичный файл команды grep находится в каталоге /bin. Это стандартный каталог для двоичных файлов основных команд в Linux.
Введение в команду whereis в Linux
Команда whereis, хотя и используется для поиска двоичных файлов, предлагает более широкие возможности поиска. Она может находить не только двоичные файлы, но и файлы исходного текста и страницы руководства для команды. Поиск осуществляется в предопределенном наборе каталогов, что обеспечивает баланс между скоростью и полнотой поиска.
Синтаксис и опции whereis
Основная структура команды whereis выглядит следующим образом:
1 | whereis [OPTION]... КОМАНДА... |
Некоторые ключевые опции включают:
- -b: Искать только двоичные файлы.
- -m: Искать только разделы руководства.
- -s: Искать только исходные тексты.
Например:
1 | whereis -b ls |
Это вернет только двоичное расположение команды ls.
Практическое применение whereis
Чтобы узнать больше о команде ls:
1 | whereis ls |
Это может дать результат:
1 | ls: /bin/ls /usr/share/man/man1/ls.1.gz |
Команда whereis указала несколько путей. Первый - это местоположение двоичного файла, а второй - местоположение страницы руководства. Такое комплексное представление отличает whereis от which.
Углубленное сравнение команд which и whereis
Оценка скорости и детализации
Команда which:
- Скорость: Команда which оптимизирована для скорости работы. Это оптимизированный инструмент, который выполняет поиск исключительно в каталогах, указанных в переменной окружения PATH. Такая направленность делает ее особенно быстрой, особенно когда требуется немедленная информация о бинарном расположении команды.
whereis Команда:
- Подробности: Команда whereis, напротив, предлагает более исчерпывающий поиск. Хотя она и работает несколько медленнее, чем whereis, это компенсируется более богатым набором деталей. Она не только определяет местоположение двоичного файла, но и расположение связанных с ним исходных файлов и страниц руководства.
Определение примеров использования
Для мгновенного определения местоположения бинарного файла:
- При написании сценариев или в сценариях, где требуется быстро проверить бинарное местоположение команды, лучше всего использовать команду which. Ее дизайн предназначен для быстрого поиска, что делает ее предпочтительной для многих пользователей Linux.
Для целостного обзора:
- Если Ваши требования выходят за рамки простого поиска бинарного местоположения - скажем, Вас интересуют исходные файлы, страницы руководства или, возможно, Вы хотите просмотреть все местоположения, связанные с определенной командой - команда whereis становится лучшим выбором. Ее исчерпывающий вывод позволяет получить полную картину присутствия команды в системе.
Заключение
Операционная система Linux предлагает огромное количество команд и инструментов, каждый из которых предназначен для решения конкретных задач. В контексте поиска двоичных файлов команд решающую роль играют команды whereis и which. Понимая различия и сходства между командами whereis и which в Linux, пользователи могут принимать более обоснованные решения, оптимизируя свои рабочие процессы и обеспечивая постоянное наличие необходимого инструмента.