Узнайте, преобразуется ли команда в псевдоним, дисковый файл, функцию оболочки, встроенную команду или зарезервированное слово. Используйте type
чтобы узнать, как выполняются ваши команды Linux, и лучше понять вашу систему.
Сделать мои торги
Когда мы открываем окно терминала и начинаем давать команды нашему компьютеру Linux, мы редко останавливаемся, чтобы подумать, какие программные компоненты в операционной системе реагируют на наши команды и выполняют их для нас. Мы набираем команду, получаем результат и переходим к нашей рабочей нагрузке.
Знание того, как выполняются команды, дает нам лучшее понимание того, как устроена наша Linux или другая Unix-подобная операционная система. Подглядывание под капотом может сделать нас более информированным водителем.
Инструкции, которые мы выдаем для командной строки, относятся к одной из следующих категорий:
- Псевдоним : пользовательская (или системная) определенная команда, которая вызывает выполнение других, обычно длинных или сложных, последовательностей команд.
- Файл диска : двоичный исполняемый файл, такой как
/usr/bin/top
. - Функция оболочки : определенная пользователем (или системой) функция, которая может использоваться в командной строке или включаться в сценарии.
- Встроенная команда : команда, выполняемая самой оболочкой, например
pwd
. - Зарезервированное слово : слово, зарезервированное оболочкой, например
if
иelif
. Их также называют ключевыми словами.
Команда type
сообщает нам, к какой категории относится любая из команд Linux. Вот краткое руководство по пониманию вывода команды.
Тип Команда
Давайте рассмотрим несколько быстрых примеров для каждой из категорий команд.
введите дату
Команда date
является исполняемым файлом на диске.
типа лс
Команда ls
— это псевдоним, заключающий в себе базовую команду ls
для использования параметра --color=auto
по умолчанию.
тип lowdown
Команда lowdown
— это пользовательская функция, которая была настроена на пригородной зоне, используемой для исследования этой статьи. Это обеспечивает быстрый снимок некоторых системных ресурсов. Это комбинация whoami
, w
, free
и df
.
типа pwd
Команда pwd
является встроенной командой оболочки Bash.
тип элиф
Команда elif
является зарезервированным словом оболочки Bash.
Использование нескольких команд
Вы можете указать несколько команд для одновременной идентификации.
введите дату сверху ls
Опция -t
Ни один из параметров, которые принимает type
не имеет имен. Таким образом, мы можем достать нашу книгу имен и крестить их сами. Если вы считаете, что параметр -t
означает «краткий», вы не ошибетесь. Это уменьшает ответы от type
до односложных ответов.
введите -t дата
наберите -t pwd
введите -t lowdown
Опция -a
Давайте назовем этот вариант «все». В нем перечислены все местоположения, в которых находится команда. Обратите внимание, что этот параметр не будет работать, если вы также используете параметр -p
.
Например, если у вас есть псевдоним с тем же именем, что и основная команда, вы можете получить информацию о псевдониме и команде.
введите -a ls
Опция -f
Опция -f
заставляет type
не выполнять поиск пользовательских или системных функций. Думайте об этой опции как о «поиске функции». Обратите внимание, что если команда является функцией, type
сообщит, что команда не может быть найдена.
введите -f top
тип -f lowdown
Опция -P
Если вы используете опцию -P
, type
будет искать только каталоги в $ PATH . Поэтому мы можем назвать эту опцию «путь». Обратите внимание, что эта опция использует заглавную «P.»
введите -P дата chmod adduser
Опция -p
Если вы используете опцию -p
, type
будет отвечать, только если команда представляет собой файл на жестком диске. Обратите внимание, что эта опция использует строчную букву «р».
введите -p mount
введите -p ls
введите -p -a ls
type
не дает никакого ответа для ls
потому что ls
— псевдоним, а не файл диска.
Но если мы включим опцию -a
чтобы type
просматривал все экземпляры команды ls
, он перечисляет базовый дисковый файл, который использует псевдоним ls
.
Резюме
Это было красиво и просто, но все равно освещало.
Мы склонны думать о чем-либо, что мы печатаем в окне терминала, как о «команде», и мы оставляем это при этом. Но на самом деле команды реализуются различными способами в системе Linux. И type
позволяет узнать, какой это.