команда which в linux

Which Command in Linux [Explained with Examples]

If you are wondering where exactly is a certain program is located, simply use which on it. The which command locates an executable file in your shell’s search path.

This Linux command has a simple syntax:

Let’s see how to use this simple but useful command.

Linux which command examples

Let’s say you want to know where is the Java executable, use which command:

The output could be like this:

Note that which only works on executable files. So you should use it only with the argument that you can run. For example, you install Java through the JDK package but you don’t run a command called ‘jdk’, you run ‘java’. So you use which command on java, not jdk.

If the which command doesn’t find the executable in the current path, it returns nothing.

Using which command with multiple executable files

You can provide more than one argument to which command:

The output for me was:

Did you notice something here? I gave it four arguments but the result is displayed for three of them only. It’s because ‘nada’ is not an executable. There is no output for that.

Display all pathnames with which command

Exit status of which command

If you use which command in a bash script, you may need to know its exit status.

Which command has the following exit status:

That’s all you need to know about which command in Linux. If you have questions or suggestions, do let me know in the comments below.

Источник

Команда which в Linux [с примерами]

Другими словами, если вам интересно, где именно находится определенная программа, просто используйте which. Команда Linux имеет простой синтаксис:

Давайте посмотрим, как использовать эту простую, но полезную команду.

Linux, Примеры команды which

Допустим, вы хотите знать, где находится исполняемый файл Java, используйте команду:

Вывод может быть таким:

$ which java
/usr/bin/java

Обратите внимание, что работает только с исполняемыми файлами. Таким образом, вы должны использовать which только с аргументом. Например, вы устанавливаете Java с помощью пакета JDK, но не запускаете команду с именем «jdk», вы запускаете «java». Таким образом, вы используете команду which на Java, а не JDK.

Если команда which не находит исполняемый файл в текущем пути, она ничего не возвращает.

Использование команды which с несколькими исполняемыми файлами

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

Вывод для нас был такой:

$ which man java python nada
/usr/bin/man
/usr/bin/java
/usr/bin/python

Вы заметили что-то здесь? Мы дали ему четыре аргумента, но результат отображается только для трех из них. Это потому, что «nada» не исполняемый файл. Там нет вывода для which.

Показать все пути с командой which

Статус вывода команды which

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

Команда which имеет следующий статус выхода:

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

12 Linux Which Command, Whatis Command, Whereis Command Examples

This Linux tutorial will explain the three “W” commands. The three “W”s are whatis, whereis and which commands.

You already know how to use find command to efficiently fo find a file.

Now, these three W commands will help you to locate more stuff from Linux command line.

I. Linux whatis Command

Whatis command is helpful to get brief information about Linux commands or functions. Whatis command displays man page single line description for command that matches string passed as a command line argument to whatis command. Whatis command searches for string in its index databases which is maintained by mandb program. Whatis command picks short description of NAME section of man page of command that matches to input given to the whatis command.

Whatis provides several command line options to help user in getting brief information of specific Linux commands as per their need or interest.

Читайте также:  семя плоду поле плоду

For example, here is the output of whatis command, when it is run without any option.

It displays brief information about “write” from man pages.

If we want to get Linux command information from specific section of man pages, then we can provide sections list using “-s or —sections or –section” option. It will restrict whatis command to display brief information from specified man page section only.

It displays open command and function brief information from man page sections 1 and 2.

It displays open function brief information from man page section 2.

If we want to search Linux commands or functions information using wild card, then whatis command gives “-w or –wildcard” option. It will make your search specific as per user’s need.

It displays brief information of Linux commands or functions which start from “ab”.

It displays brief information of Linux commands or functions which start from “ab” and followed by any single character.

If we want to search Linux commands or functions information using regular expressions, then whatis command gives “-r or –regex” option. It will give flexibility to customize your search for Linux commands or functions throughout the Linux system.

It displays brief information of Linux commands or functions which start from “ab”.

It displays brief information of Linux commands or functions which ends with “ab”.

Generally whatis command trims long output of Linux commands or functions information to avoid “Not good” output display on terminal that is going beyond screen. To allow whatis command to show complete output on screen, “-l or –long” option can be used.

It displays trimmed output of brief information of Linux command.

It displays complete output of brief information of Linux command.

It displays brief information of Linux hexdump command from man pages available at path /usr/share/man.

It could not find brief information of Linux hexdump command from specified path /usr/man.

II. Linux whereis Command

Whereis command is helpful to locate binary, source and manual pages of commands in the Linux system. It is very simple utility and provides several options which are given below with examples.

For example, whereis command is run without any option.

It locates binary, source and man pages of “open” command and here it displayed paths where binary, man pages of open command is available in the system.

If we want to locate binary of Linux command, use “-b” option.

It locates binary of “whereis” command and displays paths where binary of command is available in the system.

If we want to locate man page of Linux command, use “-m” option.

It locates man page of “whereis” command and displays path where man page of command is available in the system.

If we want to locate source of Linux command, use “-s” option.

It locates source of “whereis” command, but source of “whereis” command does not exist in the system, so it did not display path for source of command in the system.

This option is something different that searches for unusual entries. These entries are those command whose source, binary or man page does not exist in the system as per options “[-bms]” specified along with “–u”.

Here, whereis command with same options is applied on “grep” command whose man page exists in the system, so whereis returned nothing and exits normally.

If user wants to search for binary and wants to limit the scope of search for whereis command up to specified path, then use “-B” option.

It locates binary of “for_loop” user program from path “/bin”.

If open command’s binary is not found at specified path, then it is not shown but whereis command by default searches for other types (i.e. man page and source) of specified command (i.e. open) and displays them if found.

Читайте также:  кокосовая вода в чем польза

If user wants to search for man pages and wants to limit the scope of search for whereis command up to specified path, then use “-M” option.

Here, it is observed that whereis command is displaying man page of “open” command which is available in specified path only. But, whereis command by default searches for other types (i.e. binary and source) of specified command (i.e. open) and displays them if found.

III. Linux which Command

It locates command names – “ls”, “gdb”, “open” and “grep” specified as arguments to “which” command and displays paths of each executable where it exists in the system.

“which” command gives option “-a” that displays all paths of executable matching to argument.

Источник

Как использовать команду which в Linux

от sasza

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

Двоичные файлы и пути

Но как Bash находит другие команды, программы и внешние автономные двоичные файлы? Что ж, Bash использует путь, который на самом деле представляет собой набор путей, каждый из которых указывает на каталог. Затем он ищет в каждом из этих каталогов исполняемый файл, который соответствует команде или программе, которую вы пытаетесь запустить. Когда он его находит, Bash запускает его и прекращает поиск.

В выходном списке каждый путь разделяется двоеточием (:). На используемом нами компьютере Bash будет искать в следующих каталогах в указанном порядке:

/ usr / местные / sbin
/ USR / местные / бен
/ usr / sbin
/ usr / bin
/ sbin
/ bin
/ пользователь / игры
/ usr / местные / игры
/ оснастка / bin

В файловой системе есть много папок с именами / sbin и / bin, что может привести к некоторой путанице.

Наблюдайте за этими путями

Допустим, у нас есть обновленная версия программы под названием htg. Он находится в нашем текущем каталоге, и мы можем запустить его, набрав следующую команду:

Это не очень похоже на программу — она ​​просто печатает номер версии, а затем закрывается. Новая версия 1.2.138.

Чтобы запустить программу в текущем рабочем каталоге, вы должны ввести «./» перед именем программы, чтобы Bash знал, где ее найти.

Поскольку мы хотим запускать эту конкретную программу из любого каталога, мы собираемся переместить исполняемый файл в каталог / usr / bin. Bash найдет эту программу в пути и запустит ее для нас.

Нам не нужен исполняемый файл в нашем текущем каталоге, и нам не нужно вводить «./» перед именем программы, как показано ниже:

Теперь давайте попробуем запустить программу, набрав:

Что-то работает, но это не наша новая обновленная программа. Вернее, это более старая версия 1.2.105.

Команда which

В этом примере мы используем which и передадим имя исследуемой программы в качестве параметра командной строки:

который сообщает, что обнаружил версию htg в каталоге / usr / local / bin. Поскольку это место появляется в пути перед каталогом, в который мы переместили обновленный htg, Bash использует эту более раннюю версию программы.

Затем он перечисляет все совпадения в любом из каталогов пути.

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

Чтобы проверить, мы можем ввести следующее и явно запустить каждую версию программы:

Это объясняет проблему, и решение простое.

Собственно, варианты есть. Мы можем либо удалить старую версию в каталоге / use / local / bin, либо переместить ее из / usr / bin в / usr / local / bin.

Посмотреть эти результаты

Два результата не обязательно означают два двоичных файла.

который сообщает о двух местах, где находится версия программы less, но так ли это? Было бы странно иметь две разные версии (или одну и ту же версию в разных местах) less на компьютере с Linux. Итак, мы не собираемся принимать вывод, из которого. Вместо этого давайте копнем немного глубже.

Сообщается, что размер файла составляет девять байтов! Это определенно не полная копия менее.

Читайте также:  как узнать битность виндовс

Попробуем еще раз с версией less в / bin:

Эта запись, очевидно, является «настоящим» двоичным исполняемым файлом. Первый символ в списке — дефис (-), что означает, что это обычный файл, размер файла — 167 КБ. Таким образом, установлена ​​только одна копия less, но есть символическая ссылка на нее из другого каталога, которую Bash также находит при поиске пути.

Одновременная проверка нескольких команд

Вы можете передать несколько программ и команд, и он будет проверять их по порядку.

Например, если вы наберете:

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

Что что есть что?

Если вы так склонны, вы также можете использовать его для себя, набрав следующее:

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

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

Источник

Ищем путь до линукс команд, как профессионалы

Один из самых распространённых вопросов от подписчиков — как получить путь к команде Linux, которую только что установили в систему с помощью пакетного менеджера, например, команды apt или DNF. Много новых разработчиков переходит к нам из мира Windows, и для многих это первый опыт использования Linux. Некоторые используют WSL (подсистему Linux в Windows 10), а остальные работают с облачными серверами напрямую по SSH. Рассмотрим ряд распространённых команд, с помощью которых можно отобразить список команд Linux или получить к ним путь.

▍ Что такое команда Linux?

Пользовательский интерфейс Windows по умолчанию графический. Однако у ОС Linux на стороне сервера по умолчанию текстовый интерфейс. Поэтому часто используются такие термины как Bash, оболочка пользователя, консоль, приглашение командной строки, терминал и так далее. Все они относятся к текстовому интерфейсу.


date, pwd, hello и ping — это команды Linux.

▍ Различные типы команд Linux

Команды Linux, которые вводят в терминал, бывают разных типов:

▍ Как определить тип команды Linux

Например, давайте выясним тип команды pwd:

В Linux и Unix-подобных системах переменная PATH содержит перечень папок, в которых хранятся исполняемые программы, например ping, date, vi, docker и так далее. Чтобы просмотреть текущую переменную path, воспользуйтесь командой echo /printf:

Вот что отображается у меня:

▍ Как отобразить информацию о командах

Чтобы получить путь к команде Linux, введите command следующим образом:

▍ Как найти команду Linux

▍ Получаем путь к команде или man-странице Linux

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

Надо, чтобы отображались только двоичные файлы? Есть вот такой вариант:

Ищете только руководства и справочные страницы? Проще простого:

▍ Команды find и locate

Файлы можно также искать по имени файла. К примеру, так будет выглядеть поиск файла, в имени которого содержится слово ‘date’:

Результаты выполнения команды locate:

▍ Вывод справки о командах Linux

Команда whatis :
К каждой команде Linux прилагается man-страница (руководство, описывающее способ применения и синтаксис команды). Кроме того, справка содержит краткое описание команды. Для поиска по названиям man-страниц используется команда whatis. Она отображает описания команд для любых названий, введенных в краткой форме:

Для ключевых слов и встроенных команд Bash используется команда help:

▍ В качестве заключения

Основная проблема, с которой сталкиваются новоиспечённые пользователи Linux — поиск команд. Но благодаря этому доступному руководству вы теперь умеете получать путь к нужным командам и даже выводить справку о них в формате man-страниц. Предположим, вы установили Docker на сервер Ubuntu. Получить путь к этой системе и изучить руководство можно с помощью следующих команд:

Если вы работаете с сервером Debian или Ubuntu Linux, вам пригодятся следующие две команды. Отобразить список всех файлов, установленных на сервер пакетом Docker, можно командой dpkg :

Вывести на экран информацию о пакете Docker можно с помощью команды apt :

Надеюсь, новым пользователям и разработчикам Linux эти команды окажутся полезны.

Источник

Образовательный портал