- Команда which в Linux
- Что такое PATH
- Как использовать команду which
- Выводы
- Как найти исполняемый файл, с помощью простой команды, в Linux
- Как узнать путь до исполняемого файла в Linux?
- 3 ответа 3
- Ищем путь до линукс команд, как профессионалы
- ▍ Что такое команда Linux?
- ▍ Различные типы команд Linux
- ▍ Как определить тип команды Linux
- ▍ Что такое переменная $PATH ?
- ▍ Как отобразить информацию о командах
- ▍ Как найти команду Linux
- ▍ Получаем путь к команде или man-странице Linux
- ▍ Команды find и locate
- ▍ Вывод справки о командах Linux
- ▍ В качестве заключения
Команда which в Linux
В этом руководстве мы рассмотрим команду Linux which .
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
Когда-нибудь случилось со мной не помню Каталог или путь установки любой Утилита или инструмент, который вы установили ранее в Linux, или возможно маршрут некоторых команда собственный Система. Вы в конечном итоге работать с так много различные дистрибутивы Это становится моментом в который смешивает некоторые с другими.
Обычно вы идете к папке обычный, которые часто встречаются такие приложения, и, как правило, быть там, но в других случаях, на сегодняшний день этот взгляд, путь установки для приложения-это мы устойчива к и ему не удалось дать с ним.
Чтобы решить эту проблему, Существует команда который. Это команда довольно простой То, что расположен в исполняемый файл на вашей системе. Это позволяет передавать, как параметры, одно или несколько имен для поиска и делает его через настроенные маршруты в переменная среды $ПУТЬ.
Предположим, что мы хотим, чтобы искать где сделать установку MySQL. Для этого, Мы выполняем следующие, получение соответствующего ответа:
Как узнать путь до исполняемого файла в Linux?
Как в Linux узнать путь до исполняемого файла? В виндовс, например, на ярлыке или в bin/app.exe можно через свойство посмотреть Интересуюсь с целью создавать *.desktop ярлыки для заполнениями ими рабочего стола 🗔, так как способ «добавить в избранное» мне не подходит и получается рабочий стол пустой 😔
Для создания *.desktop нет необходимости указывать полный путь. Посмотрите примеры в /usr/share/applications
3 ответа 3
Я по факту могу найти приложение в диспетчере приложений, можно ли как-то оттуда взять этот путь? Или лучше и правильнее поискать путь к .exe в папках типа как в Windows —> C/Program FIles/app_folder/bin/app.exe ?
Внизу слева есть кнопка «Показать приложения», я про это имел в виду, оттуда бы как-то брать пути, там же ярлыки и их на рабочий стол хочу закидывать : )
Если вы знаете имя исполняемого файла, который выполняется в текущий момент, то полный путь к исполняемому можно узнать вот так:
pgrep | while read pid; do echo -ne "$pid\t"; readlink -f /proc/$pid/exe; done
Например, вывод для исполняемого процесса gopls (сервер go для VS Code):
pgrep gopls | while read pid; do echo -ne "$pid\t"; readlink -f /proc/$pid/exe; done 30880 /mnt/drive2/home2/user/go/bin/gopls
Набрав в командной строке
whereis locates the binary, source and manual files for the specified command names. The supplied names are first stripped of leading pathname components and any (single) trailing extension of the form .ext (for example: .c) Prefixes of s. resulting from use of source code control are also dealt with. whereis then attempts to locate the desired program in the standard Linux places, and in the places specified by $PATH and $MANPATH.
Ищем путь до линукс команд, как профессионалы
Один из самых распространённых вопросов от подписчиков — как получить путь к команде 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 . Пример:
Чтобы отобразить все возможные совпадающие пути, воспользуйтесь опцией -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 эти команды окажутся полезны.