Давайте еще немного поговорим о командах, которые есть в Linux. Рассмотрим их со стороны типизации.
Команда может быть:
- Выполняемой программой, это скомпилированные программы, написанные на разных языках программирования, или даже с помощью сценариев. Главное отличие таких программ - это уже готовый исполняемый продукт. Обычно такие программы находятся в каталоге /usr/bin
- Встроенной командой. Многие командные оболочки, такие как bash, zsh, tsch и т.д. имеют свои встроенные команды, например cd.
- Функцией командной оболочки - это такие маленькие сценарии на языке, поддерживаемой текущей командной оболочкой.
- Псевдонимом - или их еще называют алиасы (alies). Такие команды мы можем сделать сами из других команд.
Узнать к какому типу относится команда можно с помощью cледующей команды.
type
Основное назначение этой команды, это определять тип команды. Синтаксис ее следующий:
$type команда
Давайте посмотрим на примеры использования.
В первом случае команда type сообщает нам, что она является встроенной в командную оболочку. Во втором, мы можем увидеть, что команда ls является псевдонимом. И при вызове команды ls, мы ее вызываем с параметром --color=auto. В третьем случае, узнаем, что cp - является выполняемой командой, расположенной в /usr/bin/cp.
В системах Linux, в очень редких случаях, может иметься более одной версии исполняемой программы. И тут нам приходит на помощь следующая команда.
which
Эта команда позволяет определить местоположение исполняемого файла. which не способна выявлять встроенные команды и псевдонимы. Благодаря этому свойству, можно также косвенно определить, что за команда перед вами. Синтаксис следующий
$which команда
Давайте рассмотрим следующие примеры
В первом случае, which показывает непосредственно саму команду, так как она не способна искать алиасы. Во втором команда вывела сообщение о том, что она не смогла найти такую программу в каталогах с исполняемыми программами.
Вот мы и разобрались с тем, как определить что за команда перед нами. Теперь попробуем выяснить, что же, а главное как команды что-то делают.
Справка.
В ОС Linux есть несколько способов получить информацию по командам (поисковики и мой дзен в расчет не беру :-)).
Во первых это man, как ей пользоваться обсуждалось в статье Linux. Ищем нужную информацию. Поэтому на нем сейчас подробно останавливаться не буду.
Во вторых help, здесь конечно информации бывает поменьше, но обычно ее хватает. Ну и не со всеми командами help работает.
В третьих, многие команды поддерживают параметр --help. С помощью этого параметра можно иногда получить описание синтаксиса и параметров для этих команд.
В четвертых, команда info. Эта команда вызывает info-страницы, это достойная альтернатива man-страницам. Главное преимущество комнады info, это наличие гиперссылок с помощью которых можно перемещаться по справке. Гиперссылку можно узнать по наличию звездочки в начале строки. Если перейти на эту строку и нажать enter, то можно сразу перейти к интересующей вас информации.
Ну и в пятых, файлы readme и другие файлы с описанием программ. Обычно это текстовые файлы, которые можно просмотреть, например, с помощью команды less или HTML-страницы, их можно открыть в браузере.
Еще, кстати, в Linux есть возможность найти справочные страницы по заданному термину. В этом нам поможет следующая команда.
apropos
Работа команды apropos заключается в поиске и выводе списка подходящих команд. Хоть это и не точный поиск, но иногда помогает. Ниже пример работы этой команды.
Первое слово в каждой строке это имя команды. В скобках указано номер раздела, к которому относится команда. Далее идет краткое описание для команды. Кстати вызов команды man с параметром -k делает тоже самое.
Заключение.
В этой статье немного разобрались в том, как узнать что за тип команды, что она делает, и как она это делает. Надеюсь информация была полезна.
От вас жду комментарии, что не понятно, о чем бы хотелось еще узнать. А пока подписывайтесь на мой канал. И про телеграмм тоже не забываем.