Linux bash which command

Which Command in Linux [Explained with Examples]

Linux which command is an extremely useful command for locating executable files located anywhere in the Linux system. Learn how to use it.

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:

which man java python nada
[email protected]:~$ which man java python nada /usr/bin/man /usr/bin/java /usr/bin/python

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

The which command in Linux has only one option, -a. By default, which command prints only one pathname for its arguments.

If a program has executable in two places, say in /usr/bin/program and in /usr/local/bin/program, you can display both pathnames using the -a option.

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:

  • 0 – all arguments are found and executable
  • 1 – one or more arguments is nonexistent or non-executable
  • 2 – if an invalid option is specified

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

В этом руководстве мы рассмотрим команду Linux which .

Читайте также:  Deb file kali linux

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

Что такое PATH

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

Чтобы просмотреть содержимое переменной PATH, используйте команду echo с $PATH в качестве аргумента:

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

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

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

Синтаксис команды which следующий:

Например, чтобы найти полный путь к команде ping , вы должны ввести следующее:

Результат будет примерно таким:

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

Вывод будет включать полные пути к исполняемым файлам netcat и uptime :

Поиск производится слева направо, а если более одного совпадения найдены в каталогах , перечисленных в PATH переменной пути, which будет печатать только первый. Чтобы распечатать все совпадения, используйте параметр -a :

В выводе будут показаны два полных пути к touch команде :

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

Выводы

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

Если у вас есть вопросы или отзывы, оставьте комментарий ниже.

Источник

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

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

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

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

К примеру, в MS Windows-приложения запускаются через кнопку «Пуск». У терминала Linux назначение схожее, но туда вводятся инструкции, известные как команды Linux. Итак, вызываем терминал Linux сочетанием клавиш Ctrl–Alt–T . Затем вводим простую команду — например date , чтобы просмотреть текущую дату и время. Текст команды вводится только строчными буквами. Для запуска команды надо нажать кнопку Enter:

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

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

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

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

Чтобы просмотреть путь к любой команде Linux, достаточно ввести в терминал команду type . С её же помощью можно узнать тип целевой команды: встроенная команда оболочки, псевдоним, функция или внешняя. Синтаксис следующий:

type command type -t command type -a command

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

type pwd type date type hello type ping # Display a single word which is one of 'alias', 'keyword', 'function', 'builtin', # 'file or '' , if command is an alias, shell reserved word, shell function, shell builtin, # disk file, or not found, respectively type -t ping type -t if type -t vi type -t nano # The '-a' option shows all locations containing an executable named ping type -a ping

▍ Что такое переменная $PATH ?

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

echo "$PATH" # OR # # More human readable format # echo "$"

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

/home/vivek/google-cloud-sdk/bin /home/vivek/.local/bin /home/vivek/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games /snap/bin

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

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

command -v date command -v pwd command -v ping command -v docker

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

А ещё можно легко получить путь к команде Linux с помощью команды which . Пример:

Читайте также:  What is virtual desktop in linux

Чтобы отобразить все возможные совпадающие пути, воспользуйтесь опцией -a :

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

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

whereis command whereis gcc whereis docker whereis lxc whereis vim

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

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

whereis -m date whereis -m gcc

▍ Команды find и locate

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

locate -b '\date' ## OR ## find / -name "date" -ls # sudo for all files sudo find / -name "date" -ls

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

/snap/core/11316/bin/date /snap/core/11420/bin/date /snap/core18/2066/bin/date /snap/core18/2074/bin/date /snap/core20/1026/usr/bin/date /snap/core20/1081/usr/bin/date /usr/bin/date /usr/lib/byobu/date

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

С этим нам помогут команды whatis , help , man или info .

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

whatis ls whatis clear whatis date whatis gcc

Для всех внешних команд используются команды man или info , которые выводят на экран подробное руководство:

man date man ls man gcc man bash info ls info bash man which

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

help if help exit help logout help type help command

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

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

whatis docker whereis docker type -a docker which docker find / -iname "docker" locate -b '\docker' man docker

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

dpkg -L docker-ce dpkg -L docker-ce | more
/. /etc /etc/default /etc/default/docker /etc/init /etc/init/docker.conf /etc/init.d /etc/init.d/docker /lib /lib/systemd /lib/systemd/system /lib/systemd/system/docker.service /lib/systemd/system/docker.socket /usr /usr/bin /usr/bin/docker-init /usr/bin/docker-proxy /usr/bin/dockerd /usr/share /usr/share/doc /usr/share/doc/docker-ce /usr/share/doc/docker-ce/README.md /usr/share/doc/docker-ce/changelog.Debian.gz

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

Package: docker-ce Version: 5:19.03.13~3-0~ubuntu-bionic Priority: optional Section: admin Maintainer: Docker Installed-Size: 107 MB Depends: docker-ce-cli, containerd.io (>= 1.2.2-3), iptables, libseccomp2 (>= 2.3.0), libc6 (>= 2.8), libdevmapper1.02.1 (>= 2:1.02.97), libsystemd0 Recommends: aufs-tools, ca-certificates, cgroupfs-mount | cgroup-lite, git, pigz, xz-utils, libltdl7, apparmor Conflicts: docker (

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

Источник

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

Favorite

Добавить в избранное

Как улучшить время запуска приложений в Linux

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

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

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

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

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

destroyer@andreyex:~$ which java
/usr/bin/java

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

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

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

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

which man java python nada

destroyer@andreyex:~$ which man java python nada
/usr/bin/man
/usr/bin/java
/usr/bin/python

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

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

Команда which в Linux имеет только одну опцию -a. По умолчанию эта команда печатает только один путь для своих аргументов.

Если программа имеет исполняемый файл в двух местах, например, в /usr/bin/program и в /usr/local/bin/program, вы можете отобразить оба пути с помощью опции -a.

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

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

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

  • 0 — все аргументы найдены и выполняются
  • 1 — один или несколько аргументов не существуют или не выполняются
  • 2 — если указан неверный параметр

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

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

Источник

Оцените статью
Adblock
detector