Як використовувати команду типу Linux

Розберіться, яким чином ваша команда інтерпретується системою: як псевдонім, як файл на диску, функція оболонки, вбудована інструкція або зарезервоване слово. Команда 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 дає нам можливість дізнатися, який саме спосіб використовується в конкретному випадку.