- Ищем путь до линукс команд, как профессионалы
- ▍ Что такое команда Linux?
- ▍ Различные типы команд Linux
- ▍ Как определить тип команды Linux
- ▍ Что такое переменная $PATH ?
- ▍ Как отобразить информацию о командах
- ▍ Как найти команду Linux
- ▍ Получаем путь к команде или man-странице Linux
- ▍ Команды find и locate
- ▍ Вывод справки о командах Linux
- ▍ В качестве заключения
Ищем путь до линукс команд, как профессионалы
Один из самых распространённых вопросов от подписчиков — как получить путь к команде 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 эти команды окажутся полезны.