- Linux / UNIX: Determine where a binary command is stored / located on file system
- whereis command example
- type command example
- 8 примеров использования команды locate в Linux
- 1. Использование команды locate в Linux
- 2. Принцип работы locate или почему поиск осуществляется так быстро
- 3. Вывод информации о количестве найденных файлов и директорий
- 4. Вывод информации лишь о существующих в данный момент файлах
- 5. Игнорирование регистра символов
- 6. Использование символа ASCII NUL для разделения имен файлов
- 7. Вывод информации о базе данных locate
- 8. Поиск файлов с четко заданным именем
- Заключение
- Команда whereis в Linux
- Синтаксис whereis
- Опции whereis
- Примеры использования
- Выводы
Linux / UNIX: Determine where a binary command is stored / located on file system
You can use “type” or “whereis” command to find out which command shell executes and to print binary (command) file location for specified command.
whereis command example
Display ls command location along with man page path:
whereis ls
Output:
ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
type command example
Find out which command the shell executes:
type -a ls
Output:
ls is aliased to `ls –color=tty’
ls is /bin/ls
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
Category | List of Unix and Linux commands |
---|---|
Documentation | help • mandb • man • pinfo |
Disk space analyzers | df • duf • ncdu • pydf |
File Management | cat • cp • less • mkdir • more • tree |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Linux Desktop Apps | Skype • Spotify • VLC 3 |
Modern utilities | bat • exa |
Network Utilities | NetHogs • dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • glances • gtop • jobs • killall • kill • pidof • pstree • pwdx • time • vtop |
Searching | ag • grep • whereis • which |
Shell builtins | compgen • echo • printf |
Text processing | cut • rev |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Comments on this entry are closed.
If for some reason the command you are looking for is not in your PATH you can try the locate command to find out where it might be located
i access my server through sshd using putty but after a certain period of time the port on which sshd is open is closed automatically.
i am not able to figure out this problem.
please help me thanks in advance
How to know the virsion of a binary file in UNIX?
Need unix command for the same.
Typically programs have a version command line option to print the version number. Try running ‘program -v’ or ‘program –version’. Some binary files on your system are actually a link to a specific version of that program. For example, on my system, /usr/bin/python is a link to python-2.7, so I know that I have python version 2.7. (to see if a file is a link run ‘ls -l /path/to/file’ and it will have a ‘l’ at the beginging of the line, and have an arrow at the end followed by the file that the link points to).
Источник
8 примеров использования команды locate в Linux
Оригинал: 8 Linux Locate Command Examples for Beginners
Автор: Himanshu Arora
Дата публикации: 20 апреля 2017 г.
Перевод: А.Панин
Дата перевода: 25 апреля 2017 г.
Хотя find, без сомнения, и является одной из наиболее популярных, а также мощных утилит с интерфейсом командной строки для поиска файлов в Linux, она не является настолько быстрой, чтобы мгновенно выводить результаты поиска. Если вам нужно найти файл в системе с помощью ее интерфейса командной строки, причем скорость поиска имеет решающее значение, вас может заинтересовать другая утилита под названием locate .
В данной статье мы будем обсуждать методику использования команды locate, рассматривая простые для понимания примеры. Помните о том, что все инструкции и примеры, приведенные в данной статье, были протестированы в системе Ubuntu 16.04 LTS с утилитой locate версии 0.26.
1. Использование команды locate в Linux
Команда locate крайне проста в использовании. Все, что вам нужно сделать — это передать ей имя файла, который необходимо найти.
Например, если вам нужно найти все файлы в именах которых содержится строка «dir2» , вы можете использовать locate следующим образом:
Примечание: команда locate dir2 (без звездочек) также вполне применима, ведь locate автоматически заменяет переданное имя файла (такое, как NAME ), на соответствующий шаблон (в данном случае, *NAME* ).
2. Принцип работы locate или почему поиск осуществляется так быстро
Причина, по которой утилита locate работает настолько быстро, заключается в том, что она не исследует файловую систему в поисках файла или директории с заданным именем. Вместо этого она использует информацию из базы данных (собранную утилитой updatedb) в процессе поиска элементов файловой системы с заданными именами и генерирует вывод на основе этой информации.
Хотя данный подход и имеет массу преимуществ, он не лишен недостатков. Основной его недостаток заключается в том, что после создания каждого нового файла или новой директории для корректной работы утилиты приходится обновлять информацию в базе данных. В противном случае утилита не сможет найти файлы и директории, созданные после последнего обновления информации в базе данных.
Например, если я попытаюсь найти файлы с именами, содержащими строку tosearch в директории Downloads , утилита find сгенерирует следующий вывод:
Но при поиске файлов с теми же именами с помощью утилиты locate не будет выведено каких-либо результатов:
Это означает, что информация в базе данных locate не была обновлена после создания интересующего меня файла. Ну что же, давайте обновим информацию в базе данных с помощью команды updatedb . Это делается следующим образом:
Теперь при исполнении приведенной выше команды locate выводится информация о найденных файлах:
Аналогично, после удаления файла или директории вам придется убедиться в наличии актуальной информации в базу данных locate, ведь в противном случае информация о них будет выводиться при последующих операциях поиска.
3. Вывод информации о количестве найденных файлов и директорий
Как вы уже знаете, утилита locate выводит имена найденных файлов вместе с их полными или абсолютными путями. Но при желании вы можете сообщить ей о том, что вместо вывода данной информации нужно выводить лишь информацию о количестве найденных файлов и директорий. Для этой цели предназначен параметр -c .
4. Вывод информации лишь о существующих в данный момент файлах
В данной статье уже говорилось о том, что при удалении файла с диска до обновления базы данных его имя будет выводиться в результатах поиска. Однако, в подобных случаях вы можете не обновлять базу данных и получать корректные результаты поиска благодаря поддержке параметра -e .
Например, рассмотрим следующую ситуацию: я умышленно удалил файл filetosearch.txt с диска. Этот факт был подтвержден утилитой find, которая не смогла найти его:
Но в случае осуществления аналогичной операции поиска с помощью утилиты locate информация о файле все еще выводилась:
И мы без труда можем догадаться, почему это происходит — база данных locate не была обновлена после удаления файла. Однако, в случае использования параметра -e проблема будет решена:
На странице руководства locate данный параметр описан следующим образом: «Выводить информацию лишь о тех файлах, которые существуют в момент запуска утилиты».
5. Игнорирование регистра символов
По умолчанию утилита locate осуществляет поиск файлов с учетом регистра их имен. Но вы можете сообщить утилите о необходимости игнорирования различий в регистре символов имен файлов с помощью параметра -i .
Например, в моей системе имеются два файла с именами newfiletosearch.txt и NEWILETOSEARCH.txt . Очевидно, что имена файлов отличаются лишь регистром символов. Если вы используете утилиту locate для поиска файлов по шаблону *tosearch* , она выведет лишь вариант имени файла в нижнем регистре:
Но в случае использования параметра -i утилита будет игнорировать регистр символов имен файлов, поэтому оба имени появятся в выводе:
6. Использование символа ASCII NUL для разделения имен файлов
По умолчанию имена файлов, выводимые утилитой locate, разделяются с помощью символа перехода на новую строку ( \n ). Но при необходимости вы можете изменить этот символ, а точнее, использовать вместо него символ ASCII NUL . Для этой цели предназначен параметр -0 .
Например, я могу выполнить команду из предыдущего раздела, добавив в нее параметр -0 :
Несложно заметить, что в выводе больше не используется символ перехода на новую строку — он был заменен на символ ASCII NUL .
7. Вывод информации о базе данных locate
Если вам необходима информация об используемой утилитой locate базе данных, а также статистические данные, касающиеся этой базы данных, вы можете воспользоваться параметром -S :
8. Поиск файлов с четко заданным именем
По умолчанию при поиске файла с помощью locate переданное имя, такое, как NAME , будет автоматически преобразовываться в в шаблон поиска *NAME* . Например, при поиске файла с именем testfile будут выведены все имена файлов, соответствующие шаблону поиска *testfile* :
Но что делать тогда, когда нужно искать лишь файлы с именем testfile ? Ну, вы этом случае вы можете воспользоваться регулярным выражением, которое активируется с помощью параметра -r . Исходя из этого, вы можете найти все файлы с именами testfile с помощью регулярного выражения аналогичным образом:
Если вы не знакомы с регулярными выражениями, рекомендую обратиться к данному материалу .
Заключение
Утилита locate поддерживает большое число дополнительных параметров, но тех из них, что описаны в статье, должно хватить для составления хотя бы поверхностного представления о назначении утилиты и успешного начала работы с ней. Рекомендую в первую очередь испытать самостоятельно все описанные параметры утилиты в своей системе Linux, после чего разобраться с дополнительными параметрами, описанными на странице руководства .
Не стесняйтесь оставлять комментарии при возникновении любых сомнений или вопросов.
Источник
Команда whereis в Linux
Команда whereis — это сервисная утилита, которая не имеет графического интерфейса, работает в терминале и полезна в случаях, когда нужно узнать место расположения бинарных или исходных файлов на компьютере.
Она же поможет найти мануалы по выполнению тех или иных команд. Команда whereis linux входит в пакет util-linux. давайте сначала рассмотрим её синтаксис.
Синтаксис whereis
Чтобы воспользоваться возможностями whereis нужно записывать команды следующим образом:
whereis опции имя_программы
Если слово для поиска указывать обязательно, то без перечисления опций можно обойтись. В этом случае поиск будет происходить во всех трех типах файлов — и в бинарных, и в исходных, и в мануалах.
Опции whereis
Вот основные опции whereis:
- -b — поиск бинарных файлов.
- -B — ведет поиск исключительно в указанных пользователем директориях.
-m — поиск мануалов. - -M — ищет справочные файлы в тех директориях, которые выбрал пользователь.
-s — поиск исходников. - -S — будет искать исходные файлы только там, где нужно пользователю
- -u — запрашивает вывод тех команд, у которых отсутствует указанный тип файлов либо имеется в наличии два и больше таковых. К примеру, whereis -m -u* пригодится для поиска команд без мануала или с двумя мануалами.
- -f — должна завершать перечень директорий, поскольку сигнализирует о том, что набор символов, идущий сразу после нее, является названием файла.
- -l — показывает каталоги, в которых по умолчанию происходит поиск.
Вместо следует прописывать путь к требуемой директории.
Примеры использования
Если пользователь не задает директории, в которых он хотел бы проводить поиск файлов той или иной программы, утилита пользуется списками каталогов, которые установлены в ней по дефолту. Просмотреть их перечень можно так:
Чтобы получить всю информацию о конкретной команде (в нашем случае — bash), нужно набрать в терминале
На скриншоте можно увидеть как выглядит вывод, если команда существует в системе:
- bash: — это название искомой команды;
- /bin/bash — адрес, по которому лежит двоичный файл;
- /etc/bash.bashrc — конфигурационный файл;
- /usr/share/man/man1/bash.1.gz — мануал.
Если команда по какой-либо причине не существует, в выводе появится только ее название.
Нужно получить информацию о нескольких командах? Нет нужды отдельно прописывать строку поиска для каждой из них. Можно перечислить все названия через пробел, как здесь:
whereis netcat uptime
На скриншоте видно, что данные о каждой команде выводятся с новой строки. Для поиска исходных файлов достаточно напечатать
whereis -s kword
Вместо kword может быть название любой другой программы или команды. Если исходные файлы будут обнаружены, whereis сообщит об их месте расположения. Поиск мануалов происходит так:
Как и в предыдущем случае, lmms использовано для примера. На этом месте может быть название любой другой команды или программы.
Для поиска информации в определенных директориях с помощью опций -S, -M, -B следует прописывать путь к требуемому каталогу и не забывать об опции -f перед названием команды, об которой будете искать информацию. К примеру, чтобы найти бинарный файл команды cp в каталоге /bin нужно ввести в терминале:
whereis -b -B /bin -f cp
Воспользовавшись опцией -u, легко найти все необычные записи (то есть, команды или программы, у которых нет бинарного или исходного файла, мануала; а также те, у которых таких файлов два и больше). Вот пример для поиска всех бинарных файлов в директории /bin, которые соответствуют упомянутым характеристикам:
cd /bin
whereis -m -u *
Звездочка в качестве маски указывает на то, что будут отображены все имеющиеся файлы, подходящие под запрос.
Выводы
Теперь вы точно знаете как использовать утилиту whereis linux для получения информации о месте нахождения тех или иных файлов — бинарных, исходных или справочных. Если у вас есть что сказать в дополнение к выше изложенному, также не забудьте написать комментарий.
Источник