Модуль 0.2: Що таке термінал?
Складність:
[QUICK]— Абсолютний новачокЧас на проходження: 20-25 хвилин
Передумови: Відсутні. Серйозно, жодних. Якщо ви можете прочитати це речення — ви готові.
Що ви зможете зробити
Розділ «Що ви зможете зробити»Після цього модуля ви зможете:
- Відкрити термінал у вашій операційній системі та розпізнати запрошення (prompt)
- Запустити базові команди (
echo,date,whoami) та прочитати результат їхнього виконання - Пояснити, чому інженери надають перевагу терміналу, а не GUI для роботи з серверами
- Виправляти типові помилки новачків (пропущені лапки, “завислі” запити) за допомогою Ctrl+C
Чому це важливо
Розділ «Чому це важливо»Кожен інструмент у сучасній програмній інженерії — Kubernetes, Docker, хмарні платформи, скрипти автоматизації — починається з одного: термінала.
Ви могли чути, як його називають “командним рядком”, “CLI” або “оболонкою” (shell). Це звучить лячно. Це виглядає як щось із фільмів про хакерів 90-х. Але ось правда: це просто ще один спосіб спілкування з вашим комп’ютером, і ви навчитеся цьому прямо зараз.
До кінця цього модуля ви введете свої перші команди. Це все, що потрібно для старту.
Що таке GUI?
Розділ «Що таке GUI?»Почнімо з того, що ви вже знаєте.
Прямо зараз ви дивитеся на екран свого комп’ютера. Ви бачите іконки, вікна, кнопки, меню. Ви клікаєте мишкою. Ви перетягуєте файли в папки. Ви натискаєте на застосунки, щоб відкрити їх.
Це називається GUI (Графічний інтерфейс користувача) — Graphical User Interface.
- Graphical: Він використовує картинки та візуальні елементи.
- User: Це ви.
- Interface: Спосіб вашої взаємодії з комп’ютером.
Більшість людей використовують комп’ютери саме через GUI щодня. Коли ви відкриваєте браузер, клікаючи на його іконку — це GUI. Коли ви перетягуєте фото в папку — це GUI. Коли ви натискаєте кнопку “Надіслати” в електронному листі — це GUI.
GUI чудово підходить для повсякденних завдань. Він візуальний, інтуїтивно зрозумілий, і вам не потрібно нічого запам’ятовувати — ви просто вказуєте та клікаєте.
Тож навіщо комусь знадобилося щось інше?
Що таке термінал?
Розділ «Що таке термінал?»Термінал (також відомий як командний рядок або CLI) — це текстовий спосіб спілкування з вашим комп’ютером.
Замість того, щоб клікати по іконках, ви друкуєте інструкції. Замість перетягування файлів ви пишете команду. Замість навігації по меню ви точно кажете комп’ютеру, що робити.
Ось як виглядає термінал:
$Це все. Миготливий курсор, що чекає на вашу інструкцію. Жодних іконок. Жодних кнопок. Тільки ви та комп’ютер у текстовому діалозі.
Коли ми кажемо “CLI”, ми маємо на увазі Command Line Interface:
- Command: Інструкція, яку ви друкуєте.
- Line: Ви друкуєте її в рядку тексту.
- Interface: Спосіб вашої взаємодії з комп’ютером.
Аналогія з ресторанною кухнею
Розділ «Аналогія з ресторанною кухнею»Уявіть, що ви в ресторані.
GUI = Замовлення з меню з картинками
Ви дивитеся на глянцеве меню. Бачите фото бургера. Показуєте на нього пальцем. Офіціант приносить його. Легко! Але ви отримуєте саме те, що на картинці — без змін та особливих побажань (ну, хіба що декілька).
Термінал = Пряма розмова з шеф-кухарем
Ви заходите на кухню і кажете: “Я хочу бургер з подвійними огірками, без цибулі, на підсмаженій булці, прожарювання medium-rare, а фірмовий соус подайте окремо”. Шеф киває і готує саме те, що ви попросили.
Розмова з шеф-кухарем потребує більше знань — ви повинні знати, що можливо приготувати та які слова використовувати. Але ви отримуєте набагато більше контролю і можете точно описати свій запит.
Це і є термінал. Більше потужності, більше точності, і як тільки ви вивчите мову, це часто виявляється швидше, ніж вказувати та клікати.
Ми будемо використовувати цю аналогію протягом усіх модулів. Термінал — це ваша кухня. Команди — ваші рецепти. Ви вчитеся бути шеф-кухарем.
Чому інженери використовують термінали?
Розділ «Чому інженери використовують термінали?»Ви можете подумати: “Якщо GUI простіший, навіщо використовувати термінал?”
Гарне запитання. Ось чотири причини:
1. Швидкість
Розділ «1. Швидкість»Перейменування 500 файлів у GUI означає клік на кожен, правий клік, вибір “Перейменувати”, введення нового імені… 500 разів.
У терміналі? Один рядок:
for f in *.txt; do mv "$f" "backup_$f"; doneЦе перейменує всі 500 файлів менш ніж за секунду. Одна команда замість 500 кліків.
2. Автоматизація
Розділ «2. Автоматизація»Ви можете зберігати команди термінала у файлі (який називається скриптом — сприймайте його як записаний рецепт) і запускати їх знову і знову. Щоранку о 6:00 автоматично створювати резервні копії файлів. Щоразу, коли ви зберігаєте код, автоматично перевіряти його на помилки. GUI не може зробити це так легко.
3. Віддалений доступ
Розділ «3. Віддалений доступ»Багато серверів керуються віддалено, і перед ними ніхто не сидить перед екраном. На практиці інженери часто використовують термінал через SSH (Secure Shell), який OpenSSH описує як основний клієнт для віддаленого входу, хоча хмарні консолі та веб-інструменти адміністрування також існують. Якщо ви хочете працювати з серверами — а в Kubernetes ви будете це робити — доступ через термінал є стандартною та важливою навичкою. (Документація OpenSSH)
4. Скрипти та повторюваність
Розділ «4. Скрипти та повторюваність»Коли ви клікаєте в GUI, кроки буває важко задокументувати та повторити, якщо інструмент не записує їх за вас. Але коли ви друкуєте команди, у вас зазвичай є історія оболонки (shell history), і ви можете зберегти точні кроки в скрипті. Ви можете поділитися цими командами з колегою, записати їх і послідовно запускати ту саму процедуру.
Зупиніться та подумайте: Уявіть, що вам потрібно налаштувати 10 ідентичних серверів для нового застосунку. У GUI ви б 10 разів проходили крізь ті самі екрани налаштування, сподіваючись не пропустити жодну галочку на сервері №7. У терміналі ви один раз пишете команди налаштування, зберігаєте їх у скрипт і запускаєте цей скрипт на всіх 10 серверах. Який підхід з більшою ймовірністю дасть вам 10 ідентичних серверів?
Задокументована операційна помилка
Реальний приклад операційного ризику походить від AWS. В офіційному звіті про збій Amazon S3 28 лютого 2017 року AWS повідомила, що авторизований член команди неправильно ввів один параметр в операційній команді, що призвело до видалення більшої кількості серверів, ніж планувалося, і спричинило серйозний збій у регіоні us-east-1. Пізніше AWS додала запобіжники до інструменту, щоб зменшити ймовірність повторення такої помилки. Урок тут не в тому, що термінали — це погано, а GUI — добре. Урок у тому, що повторювані інструменти, перевірки та заходи безпеки мають значення, коли одна дія може вплинути на багато систем. (Звіт AWS postmortem)
GUI проти термінала — чесні компроміси Ми багато хвалимо термінал, але GUI дійсно виграє в кількох сферах. Якщо ви дивитеся на візуальні дашборди моніторингу (як-от Grafana), щоб помітити раптовий стрибок трафіку, редагуєте складні схеми архітектури або вперше вивчаєте абсолютно новий застосунок, GUI значно кращий. Золоте правило: використовуйте GUI для сприйняття візуальної інформації та первинного ознайомлення; використовуйте термінал для маніпуляцій з текстом, автоматизації та точного виконання.
Чи знали ви?
Розділ «Чи знали ви?»
Перші комп’ютери взагалі не мали екранів. Перші програмісти використовували перфокарти — буквально шматки картону з дірками — щоб давати інструкції комп’ютерам. Термінал є сучасним нащадком тих текстових взаємодій. GUI з’явилися лише в 1970-х роках і стали масовими лише у 1980-х з появою Apple Macintosh.
Слово “термінал” походить від фізичного пристрою. У 1960-70-х роках “термінал” був реальним апаратом — клавіатурою та екраном (або принтером), підключеним до великого комп’ютера (меййнфрейма). Сьогоднішній термінал — це програма, яка симулює той старий пристрій. Його називають “емулятором термінала”, бо він емулює (імітує) оригінальне обладнання.
Величезна частина інтернет-інфраструктури працює за допомогою інструментів на базі термінала та автоматизації. Багато серверів та хмарних навантажень адмініструються через оболонки (shells), скрипти та інструменти віддаленого керування, а не через локальні десктопні застосунки. Вам не потрібен термінал для кожного завдання, але це ключова навичка для системного адміністрування, хмарних технологій та Kubernetes.
Відкриття термінала
Розділ «Відкриття термінала»Зробімо це! Ось як відкрити термінал на вашому комп’ютері:
macOS
Розділ «macOS»- Натисніть Cmd + Space, щоб відкрити Spotlight Search.
- Напишіть Terminal.
- Натисніть Enter.
Ви побачите вікно з текстом, схожим на:
Last login: Mon Mar 23 10:15:00 on ttys000yourname@your-mac ~ %У macOS ваше запрошення закінчується на
%(якщо використовується zsh, за замовчуванням) або$(якщо використовується bash). Обидва варіанти підходять.
Windows
Розділ «Windows»У Windows є кілька варіантів:
Варіант А: PowerShell
- Натисніть клавішу Windows.
- Напишіть PowerShell.
- Натисніть Enter.
Варіант Б: Windows Terminal (рекомендовано, безкоштовно з Microsoft Store)
- Встановіть “Windows Terminal” з Microsoft Store.
- Відкрийте його з меню “Пуск”.
Варіант В: WSL (Windows Subsystem for Linux — найкращий варіант для цього курсу)
- Відкрийте PowerShell від імені адміністратора.
- Введіть:
wsl --install - Перезавантажте комп’ютер.
- Відкрийте “Ubuntu” з меню “Пуск”.
Для навчання в KubeDojo ми рекомендуємо WSL у Windows, оскільки інструменти Kubernetes найкраще працюють у середовищі Linux. Не турбуйтеся про це зараз — просто використовуйте будь-який термінал, який зможете відкрити сьогодні.
Linux
Розділ «Linux»- Натисніть Ctrl + Alt + T.
Зазвичай цього достатньо! Якщо не спрацювало, пошукайте “Terminal” у меню програм вашої системи.
Пояснення запрошення (Prompt)
Розділ «Пояснення запрошення (Prompt)»Коли ви відкриваєте термінал, ви бачите щось подібне:
yourname@yourcomputer ~ $Це називається запрошенням (або промптом). Це термінал каже: “Я готовий. Що ти хочеш, щоб я зробив?”
Розберімо його на частини:
| Частина | Значення | Аналогія |
|---|---|---|
yourname | Ваше ім’я користувача на цьому комп’ютері | Ваш бейдж з іменем на кухні |
@ | Символ “at” (у) | — |
yourcomputer | Назва вашого комп’ютера | Назва ресторану |
~ | Ваше поточне розташування (домашня папка) | В якій частині кухні ви перебуваєте |
$ або % | ”Я готовий до команди” | Шеф каже: “Слухаю замовлення — що потрібно?” |
Символ $ (або % у macOS) — найважливіша частина. Він означає: термінал чекає, поки ви щось надрукуєте.
У цьому курсі, коли ви бачите
$на початку рядка, це означає “надрукуйте те, що йде після нього”. Сам символ$друкувати не потрібно — він просто позначає початок командного рядка.
Наприклад, якщо ви бачите:
$ echo "Hello"Ви друкуєте: echo "Hello" і натискаєте Enter. Символ $ ви не вводите.
Ваша перша команда
Розділ «Ваша перша команда»Готові? Надрукуймо вашу найпершу команду в терміналі.
Зупиніться та подумайте: Як ви гадаєте, що зробить команда
echo "Hello, World!"? Команда називаєтьсяecho— як відлуння в каньйоні. Спробуйте вгадати перед запуском.
У вашому терміналі введіть це і натисніть Enter:
$ echo "Hello, World!"Ви маєте побачити:
Hello, World!Вітаємо! Ви щойно запустили команду!
Розберімося, що сталося:
echo— це команда. Вона каже комп’ютеру: “Повтори мені те, що я тобі дам”. Сприймайте це як відлуння в каньйоні — ви щось вигукуєте, і воно повертається до вас."Hello, World!"— це аргумент, тобто те, що ви передаєте команді. Це те, що ви хочете почути у відповідь.
У нашій ресторанній аналогії:
echo— це як сказати шеф-кухарю “Повтори моє замовлення”. А"Hello, World!"— це саме замовлення.
Ще кілька команд для спроби
Розділ «Ще кілька команд для спроби»Спробуймо ще декілька. Вводьте кожну і натискайте Enter:
Яка сьогодні дата?
$ dateВи маєте побачити щось на кшталт:
Mon Mar 23 14:30:00 UTC 2026Команда date запитує ваш комп’ютер: “Яка зараз дата і час?”
Від чийого імені я в системі?
$ whoamiВи побачите своє ім’я користувача:
yournameКоманда whoami (Who am I?) запитує: “Який я користувач?”. Це може здатися дивним на особистому комп’ютері, але коли ви працюєте на віддалених серверах, це дуже корисно — перевірити, під яким іменем ви увійшли.
Як називається цей комп’ютер?
$ hostnameВи побачите назву свого комп’ютера:
your-mac.localРозуміння структури команди
Розділ «Розуміння структури команди»Кожна команда слідує певному шаблону:
command [options] [arguments]| Частина | Що це таке | Аналогія з рестораном |
|---|---|---|
| Команда | Дія, яку треба виконати | ”Приготуй мені бургер” |
| Опції | Як саме це зробити (зазвичай починаються з -) | “Добре просмажений, з сиром” |
| Аргументи | З чим/над чим це зробити | ”З котлетою з яловичини ангус” |
Наприклад:
$ echo "Hello"- Команда:
echo(дія: повторити щось) - Аргумент:
"Hello"(що саме повторити)
А ось приклад з опцією:
$ date -u- Команда:
date(дія: показати дату) - Опція:
-u(показати її в часі UTC, а не за вашим місцевим часом)
Не турбуйтеся про запам’ятовування цієї структури. Це стане природним з практикою. Так само як ви не вчили граматичні правила перед тим, як почати говорити — ви засвоїли їх, використовуючи мову.
Типові помилки
Розділ «Типові помилки»Кожен робить ці помилки на початку. Це абсолютно нормально.
| Помилка | Що відбувається | Як виправити |
|---|---|---|
Введення символу $ | $: command not found або неочікувана поведінка | Не друкуйте $ — це символ запрошення, а не частина команди |
| Забули натиснути Enter | Нічого не відбувається, команда просто “висить” | Натисніть Enter, щоб запустити команду |
| Одруки в назвах команд | echoo: command not found | Перевірте написання. Термінал суворий — echoo це не echo |
| Неправильний регістр | Echo: command not found | Більшість команд пишуться малими літерами. echo працює, Echo — ні |
| Забули закрити лапки | Термінал чекає продовження з символом > | Поставте закриваючу лапку " і натисніть Enter, або натисніть Ctrl+C, щоб скасувати |
| Паніка, коли щось іде не так | Стрес! | Натисніть Ctrl+C, щоб скасувати майже будь-що. Це ваша кнопка екстреної зупинки |
Ctrl+C — ваш найкращий друг. Якщо щось пішло не так, якщо термінал застряг, якщо ви випадково запустили щось не те — натисніть Ctrl+C. Це скасовує поточну операцію. Сприймайте це як вогнегасник на кухні. Завжди під рукою.
Типові помилки в реальній роботі (Production)
Розділ «Типові помилки в реальній роботі (Production)»Коли ви перейдете від навчання до роботи на справжніх серверах, ціна помилки зростає. Ось приклади помилок з реального життя:
| Помилка в продакшені | Реальні наслідки | Як запобігти |
|---|---|---|
| Запуск команди не на тому сервері, бо ви не прочитали запрошення | Така помилка може вдарити по продакшену замість тестового середовища. Під час збою бази даних GitLab 31 січня 2017 року компанія повідомила, що випадкове видалення даних з основної бази спричинило великий збій і незворотну втрату частини даних. (Звіт GitLab postmortem) | Завжди перевіряйте username@hostname у вашому промпті перед натисканням Enter для руйнівної команди. |
| Копіювання та вставка багатьох рядків команд з інтернету прямо в термінал | Термінал може виконати приховані шкідливі команди або запустити неповні команди миттєво. | Спершу вставте текст у простий текстовий редактор, перевірте, що роблять команди, і лише потім копіюйте в термінал. |
| Запуск скрипта без попереднього тестування | Маленький одрук в автоматизованому скрипті вимикає 50 серверів одночасно замість одного. | Тестуйте скрипти на одному некритичному сервері (staging), перш ніж запускати їх всюди. |
Контрольні запитання
Розділ «Контрольні запитання»Перевірте своє розуміння! Спробуйте відповісти перед тим, як відкрити рішення.
Запитання 1: Ви випадково запустили команду, яка виводить нескінченні рядки тексту на екран, і ви не можете нічого надрукувати. Якою буде ваша негайна дія і чому?
Показати відповідь
Ви повинні негайно натиснути Ctrl+C. Це універсальний сигнал “зупини те, що робиш” у терміналі. Коли ви натискаєте це скорочення, воно надсилає сигнал переривання (interrupt) запущеному процесу, наказуючи йому негайно завершити роботу. Це важливо, бо дає вам надійний шлях відступу, якщо команда зависла, триває занадто довго або почала робити щось небажане. Знання того, що ви завжди можете зупинити процес, дає впевненість для безпечного дослідження та навчання.
Запитання 2: Ви намагаєтеся вивести абзац тексту за допомогою echo, але після натискання Enter термінал просто показує символ > у новому рядку замість звичного запрошення. Що ймовірно сталося і як вирішити ситуацію?
Показати відповідь
Ймовірно, ви забули закриваючу лапку (" або '). Термінал показує символ >, бо вважає, що ваша команда ще не завершена, і чекає, поки ви закінчите введення текстового рядка. Щоб виправити це, ви можете просто ввести відсутню лапку і натиснути Enter для завершення команди, або натиснути Ctrl+C, щоб скасувати все і почати заново з чистого промпта. Це часто трапляється при роботі з текстовими аргументами, тому розпізнавання символу > вбереже вас від зайвої паніки.
Запитання 3: Ви перемикаєтеся між декількома вікнами термінала для вирішення проблеми. В одному з вікон ви помічаєте, що запрошення виглядає так: alice@db-primary-main /etc/config $. Виходячи з цього промпта, яку саме інформацію ви знаєте про свою поточну сесію?
Показати відповідь
Зі структури промпта зрозуміло, що ви увійшли під користувачем alice і зараз працюєте на машині з назвою db-primary-main. Крім того, частина /etc/config вказує на те, що ваше поточне розташування (або папка) на цій машині — каталог /etc/config. Символ $ підтверджує, що термінал готовий до введення команд від імені звичайного користувача. Розуміння цього запрошення є критично важливим, оскільки воно слугує вашим компасом, постійно нагадуючи, хто ви і де перебуваєте, перш ніж ви виконаєте потенційно важливі інструкції.
Запитання 4: Вам потрібно створити документ, який точно фіксує час оновлення сервера. Чому використання команди date у скрипті термінала надійніше, ніж погляд на годинник на стіні?
Показати відповідь
Команда date видає точну позначку часу безпосередньо з системного годинника комп’ютера, що автоматично включає правильний часовий пояс і точність до секунди. Покладання на настінний годинник вносить значний людський фактор: помилку при конвертації часового поясу, округлення до хвилини або просте забудькуватість записати час одразу. У скрипті термінала мітка часу генерується автоматично, є зрозумілою для машини та стає частиною незмінної історії подій. У промислових середовищах точні, згенеровані системою часові шкали необхідні для ефективної діагностики інцидентів та відстеження точної послідовності подій.
Запитання 5: Вам потрібно змінити налаштування конфігурації на 50 серверах. Поясніть, чому підхід через термінал безпечніший за GUI, і назвіть принаймні два конкретні ризики методу GUI.
Показати відповідь
Використання термінала безпечніше, бо дозволяє написати один протестований скрипт, який застосує ідентичну зміну на всіх 50 серверах без втручання людини. Підхід через GUI дуже ризикований, оскільки людська втома робить майже неминучою помилку при повторенні тих самих маніпуляцій мишкою 50 разів. Один конкретний ризик GUI — випадково пропустити важливу галочку на одному з серверів, що призведе до неузгодженості конфігурацій, яку неймовірно важко виявити пізніше. Інший ризик — відсутність історії дій (audit trail): GUI рідко записує кожен ваш клік, тоді як термінальний скрипт є постійним документом, який можна перевірити.
Запитання 6: Молодший колега стверджує, що GUI завжди краще, бо він інтуїтивніший і візуальний. Опишіть три конкретні інженерні сценарії, де використання термінала є не просто бажаним, а абсолютно необхідним для успіху.
Показати відповідь
По-перше, коли потрібно автоматизувати повторювані завдання, такі як перейменування 500 файлів або налаштування щоденних бекапів — термінал дозволяє написати скрипт, який зробить це миттєво і щоразу ідеально, що важко відтворити в GUI. По-друге, при керуванні віддаленими серверами в дата-центрах або хмарах: ці машини зазвичай не мають графічного інтерфейсу для економії ресурсів, тому доступ через термінал по SSH є єдиним способом зв’язку з ними. По-третє, коли потрібно поділитися складним робочим процесом з колегою: ви можете просто скопіювати команди термінала, щоб гарантувати виконання ідентичних кроків, тоді як пояснення дій у GUI потребує неоднозначних скріншотів або довгих описів “куди натиснути”. У всіх цих випадках термінал забезпечує автоматизацію, доступ та точність, яких суворо вимагає сучасна інженерія.
Практична вправа: Ваша перша термінальна сесія
Розділ «Практична вправа: Ваша перша термінальна сесія»Мета
Розділ «Мета»Відкрити термінал і успішно запустити чотири команди.
Кроки
Розділ «Кроки»-
Відкрийте свій термінал, використовуючи інструкції для вашої операційної системи (див. розділ “Відкриття термінала” вище).
-
Запустіть свою першу команду echo:
$ echo "Hello, World!"Очікуваний результат: Hello, World!
- Перевірте дату:
$ dateОчікуваний результат: поточна дата і час.
- Дізнайтеся, хто ви:
$ whoamiОчікуваний результат: ваше ім’я користувача.
- Зробіть це особистим — виведіть власне ім’я:
$ echo "Мене звати [ВАШЕ ІМ'Я] і я щойно скористався терміналом!"Замініть [ВАШЕ ІМ'Я] на ваше справжнє ім’я.
- Спробуйте поєднати команди:
$ echo "Сьогодні $(date) і я — $(whoami)"Це невеличкий анонс потужної можливості: ви можете вставляти команди всередину $(...), і термінал запустить їх та вставить результат. Не хвилюйтеся, якщо не зовсім розумієте, як це працює — просто зауважте, що це можливо!
Критерії успіху
Розділ «Критерії успіху»Ви виконали цю вправу, якщо можете:
- Відкрити вікно термінала
- Запустити
echo "Hello, World!"і побачити результат - Запустити
dateі побачити сьогоднішню дату - Запустити
whoamiі побачити своє ім’я користувача - Запустити комбіновану команду
echoі побачити речення з датою та вашим ім’ям користувача
Ви щойно скористалися інструментом, яким щодня користуються досвідчені інженери. Ви на своєму місці.
Наступний модуль
Розділ «Наступний модуль»Ви зробили перший крок — відкрили термінал і запустили команди. У наступних модулях ви навчитеся навігації по файловій системі, роботі з файлами та почнете будувати справжні професійні навички.
Наступний модуль: Модуль 0.3: Перші команди термінала — Дізнайтеся, як відкрити термінал і запустити свої перші команди.