Дізнайтеся, чи розв’язується команда в псевдонім, файл на диску, функцію оболонки, вбудовану команду чи зарезервоване слово. Використовуйте тип, щоб дізнатися, як виконуються ваші команди Linux, і краще зрозуміти вашу систему.
Виконуйте мої ставки
Коли ми відкриваємо вікно терміналу й починаємо видавати команди на наш комп’ютер Linux, ми рідко замислюємося, які програмні компоненти в операційній системі реагують на наші команди та виконують їх за нас. Ми вводимо команду, отримуємо результат і продовжуємо роботу.
Знання того, як виконуються команди, дає нам краще розуміння того, як побудована наша Linux або інша Unix-подібна операційна система. Зазирнути під капот може зробити нас більш поінформованим водієм.
Інструкції, які ми надаємо командному рядку, належать до однієї з наступних категорій:
Псевдонім: визначена користувачем (або системою) команда, яка викликає інші, зазвичай довгі або складні, послідовності команд.
Дисковий файл: двійковий виконуваний файл, наприклад /usr/bin/top.
Функція оболонки: визначена користувачем (або системою) функція, яку можна використовувати в командному рядку або включати в сценарії.
Вбудована команда: команда, яку виконує сама оболонка, наприклад pwd.
Зарезервване слово: слово, яке зарезервовано оболонкою, наприклад if і elif. Їх ще називають ключовими словами.
Команда типу розповідає, до якої категорії будь-яка з команд Linux належить. Ось короткий посібник для розуміння виводу команди.
Тип Команда
Давайте розглянемо кілька швидких прикладів для кожної з категорій команд.
type date
Команда date — це файл виконуваного диска.
type ls
Команда 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
Назвемо цей варіант «усі». У ньому перераховано всі місця розташування команди. Зауважте, що цей параметр не працюватиме, якщо ви також використовуєте параметр -p.
Наприклад, якщо у вас є псевдонім із тим самим ім’ям, що й базова команда, ви можете отримати інформацію про псевдонім і команду.
type -a ls
Параметр -f
Параметр -f змушує тип не шукати функції, визначені користувачем або системою. Подумайте про цю опцію як про «вимкнення функції пошуку». Зауважте, що якщо команда є функцією, type повідомить, що команду не можна знайти.
type -f top
type -f lowdown
Параметр -P
Якщо ви використовуєте параметр -P, введіть лише пошук каталоги в $PATH. Тому ми можемо назвати цей параметр «шляхом». Зауважте, що цей параметр використовує велику букву «P».
type -P date chmod adduser
Параметр -p
Якщо ви використовуєте параметр -p, тип відповідатиме, лише якщо команда є файлом на жорсткому диску. Зауважте, що цей параметр використовує нижній регістр «p».
type -p mount
type -p ls
type -p -a ls
type не дає жодної відповіді для ls, оскільки ls є псевдонімом, а не файлом на диску.
Але якщо ми включимо параметр -a, щоб тип шукав усі екземпляри команди ls, він перерахував основний дисковий файл, який використовує псевдонім ls.
Резюме
Це було гарно і просто, але все одно яскраво.
Ми схильні вважати все, що ми вводимо у вікні терміналу, як «команду», і залишаємо це на цьому. Але насправді команди реалізуються різними способами в системі Linux. А тип дозволяє дізнатися, який саме.