Розберіться, яким чином ваша команда інтерпретується системою: як псевдонім, як файл на диску, функція оболонки, вбудована інструкція або зарезервоване слово. Команда type
допоможе вам з’ясувати, як саме виконуються ваші команди в Linux, що дасть глибше розуміння роботи системи.
Аналізуємо виконання команд
Коли ми взаємодіємо з комп’ютером через термінал Linux, зазвичай не замислюємося, які саме програмні компоненти обробляють введені нами команди. Ми просто вводимо інструкції, отримуємо результат і продовжуємо працювати.
Однак, розуміння механізмів виконання команд дає нам цінні знання про внутрішню структуру операційних систем Linux та інших Unix-подібних систем. Заглиблення в ці процеси може зробити нас більш обізнаними користувачами.
Команди, які ми вводимо в командний рядок, можуть належати до однієї з наступних категорій:
- Псевдонім: Користувацьке або системне визначення, яке замінює складні послідовності команд на простіші.
- Файл на диску: Бінарний виконуваний файл, наприклад,
/usr/bin/top
. - Функція оболонки: Користувацька або системна функція, яку можна використовувати безпосередньо в командному рядку або в скриптах.
- Вбудована команда: Інструкція, яка виконується безпосередньо оболонкою, наприклад,
pwd
. - Зарезервоване слово: Ключове слово, зарезервоване оболонкою, як-от
if
абоelif
.
Команда type
, детальнішу інформацію про яку можна знайти тут, ідентифікує категорію, до якої належить кожна команда Linux. Нижче представлено короткий посібник для розуміння її виводу.
Команда type
у дії
Розглянемо кілька прикладів для кожної з категорій команд.
type date
Команда date
є файлом, що виконується з диска.
type ls
Команда ls
є псевдонімом, що використовує параметр --color=auto
за замовчуванням.
type lowdown
Команда lowdown
– це користувацька функція, налаштована для виведення короткого огляду системних ресурсів, включаючи whoami
, w
, free
та df
.
type pwd
Команда pwd
є вбудованою командою оболонки Bash.
type elif
Команда elif
є зарезервованим словом оболонки Bash.
Перевірка кількох команд одночасно
Можливо перевіряти кілька команд одночасно:
type date top ls
Опція -t
: Короткий вивід
Параметр -t
забезпечує стислий вивід, показуючи лише тип команди одним словом:
type -t date
type -t pwd
type -t lowdown
Опція -a
: Показати всі місця розташування
Параметр -a
виводить усі місця розташування команди, включаючи псевдоніми та файли. Важливо, що цей параметр не буде працювати в поєднанні з параметром -p
.
Це корисно, коли, наприклад, у вас є псевдонім, що має таке саме ім’я, як і базова команда. Ви зможете отримати інформацію про обидва.
type -a ls
Опція -f
: Виключити функції
Параметр -f
змушує команду type
ігнорувати функції, визначені користувачем або системою. Якщо команда є функцією, команда type
повідомить, що її не знайдено.
type -f top
type -f lowdown
Опція -P
: Пошук тільки в $PATH
Параметр -P
обмежує пошук тільки каталогами, вказаними в змінній середовища $PATH
. Детальнішу інформацію можна знайти тут. Зверніть увагу на використання великої літери P
.
type -P date chmod adduser
Опція -p
: Пошук тільки файлів
Параметр -p
змушує команду type
виводити інформацію тільки у випадку, коли команда є файлом на диску. Зверніть увагу на використання малої літери p
.
type -p mount
type -p ls
type -p -a ls
У прикладі вище, команда type
не дає відповіді для ls
, оскільки ls
є псевдонімом, а не файлом. Але якщо ми додамо параметр -a
, то отримаємо інформацію про основний файл, який використовує псевдонім ls
.
Підсумки
Отже, ми розглянули просту, але дуже корисну команду.
Ми звикли сприймати все, що вводимо в терміналі, як “команду”, не заглиблюючись в деталі. Однак насправді команди реалізуються різними способами в системі Linux. А команда type
дає нам можливість дізнатися, який саме спосіб використовується в конкретному випадку.