Модуль 0.2: Що таке термінал?
Складність:
[ШВИДКО]- Абсолютний новачокЧас на проходження: 25-35 хвилин
Передумови: Жодних. Серйозно, жодних. Якщо ви можете прочитати це речення, ви готові.
Що ви зможете зробити
Розділ «Що ви зможете зробити»Після цього модуля ви зможете виконувати ці базові завдання в терміналі та пояснювати логіку кожного з них:
- Порівняти графічні інтерфейси та інтерфейси термінала, а потім вибрати кращий інструмент для інженерного завдання початкового рівня.
- Відкрити термінал на macOS, Windows або Linux та діагностувати, про що свідчить видимий рядок запрошення.
- Запустити прості команди, такі як
echo,date,whoamiтаhostname, а потім інтерпретувати їхній вивід без здогадок. - Налагодити типові проблеми початківців у терміналі, включно зі скопійованими символами запрошення, друкарськими помилками в командах, незакритими лапками та командами, що довго виконуються.
Чому це важливо
Розділ «Чому це важливо»Гіпотетичний сценарій: ви дотримуєтеся посібника з налаштування Kubernetes для версії 1.35, і перша інструкція каже відкрити термінал та виконати команду. Якщо термінал здається чимось загадковим, посібник перестає бути посібником і перетворюється на стіну. Ви можете не знати, чи потрібно вводити символ $, чи команда вже виконана, чому курсор перемістився на новий рядок, або як скасувати щось, що виводить занадто багато тексту.
Ця невпевненість має значення, оскільки сучасна інженерна робота сповнена текстових інструментів. Docker, Git, хмарні CLI, SSH, Terraform, менеджери пакетів, інструменти для пошуку в логах та kubectl припускають, що ви вмієте читати підказку (prompt), вводити команду та співвідносити вивід із машиною, якою ви керуєте. Вам не потрібно ставати експертом з термінала вже сьогодні, але вам потрібна спокійна ментальна модель, перш ніж наступні модулі попросять вас здійснювати навігацію файлами, виконувати скрипти та діагностувати сервіси (troubleshoot services).
Цей модуль будує цю модель з нуля. Ви почнете з інтерфейсу, який вам уже знайомий, — GUI (графічний інтерфейс користувача), а потім порівняєте його з терміналом як з іншим інтерфейсом, а не як з якимось страшним прихованим режимом. Ви відкриєте свій власний термінал, розпізнаєте частини підказки (prompt), виконаєте безпечні команди, які лише виводять інформацію, і попрактикуєте дії для відновлення, які допомагають новачкам не застрягати.
GUI та термінал: два інтерфейси, різні сильні сторони
Розділ «GUI та термінал: два інтерфейси, різні сильні сторони»GUI (графічний інтерфейс користувача) — це інтерфейс, з яким більшість людей стикається найперше. Він надає вам іконки, вікна, кнопки, меню, маркери для перетягування, засоби вибору файлів і візуальний зворотний зв’язок. Коли ви відкриваєте браузер, натискаючи на його іконку, переміщуєте фотографію до папки за допомогою миші або натискаєте кнопку “Надіслати” в поштовому застосунку, ви використовуєте GUI для спілкування з комп’ютером через зображення та видимі елементи керування.
Графічні інтерфейси (GUI) чудово підходять, коли завдання є візуальним, дослідницьким або нерегулярним. Переглядати діаграму, порівнювати кольори, змінювати розмір вікна, впорядковувати схему, гортати фотографії або вивчати новий застосунок легше, коли ви можете бачити об’єкти безпосередньо. Вам не потрібно запам’ятовувати точні назви команд, а інтерфейс може показати вам доступні варіанти у вигляді меню, панелей інструментів та діалогових вікон.
Термінал — це також інтерфейс, але він текстовий. Замість того, щоб натискати видимі елементи керування, ви вводите інструкцію і натискаєте Enter. Комп’ютер виводить відповідь, змінює щось або запускає програму. Це може виглядати просто, тому що термінал не намагається показати кожну можливу дію одночасно; він чекає, поки ви точно опишете, чого хочете, короткою мовою команд.
Ось найменше можливе зображення підказки, яка очікує на введення, показане окремо, щоб ви могли зосередитися на сигналі:
$Цей єдиний символ легко недооцінити. Він означає, що оболонка (shell) готова до команди, подібно до того, як порожнє поле пошуку означає, що браузер готовий до запиту. Термінал не скасовує графічні можливості комп’ютера; він дає вам ще один спосіб керувати тією ж машиною, який особливо добре підходить для точної, повторюваної роботи, що містить багато тексту.
Аналогія з кухнею ресторану допомагає, оскільки вона відокремлює зручність від контролю. GUI — це як замовлення з меню з картинками: ви можете вказати на страву, а видимі варіанти роблять процес комфортним. Термінал — це як розмова безпосередньо з шеф-кухарем: вам потрібно знати кілька слів, але ви можете попросити саме те, що хочете, записати інструкцію та повторити її пізніше, не покладаючись на пам’ять.
Цей компроміс є реальним, тому не перетворюйте це на змагання. Використовуйте GUI, коли вам потрібен візуальний огляд, дослідження або багата взаємодія. Використовуйте термінал, коли вам потрібна повторюваність, віддалений доступ, автоматизація, логи, операції з файлами, встановлення пакетів або команди, які ваш колега може скопіювати один в один. Хороші інженери перемикаються між обома інтерфейсами замість того, щоб вдавати, ніби один інструмент перемагає в будь-якій ситуації.
Термінал також змінює те, як ви сприймаєте роботу, оскільки кожна дія стає реченням, яке комп’ютер може повторити. Клік мишею буває важко перевірити постфактум, особливо якщо застосунок його не фіксує. Команду можна скопіювати в нотатки, вставити в чат до колеги, зафіксувати в репозиторії або запустити знову наступного тижня, коли доведеться виконувати те саме завдання з обслуговування.
Ось чому уроки з хмарних технологій та інфраструктури вводять термінал на ранньому етапі. Кластер Kubernetes може мати чудову панель керування, але офіційний шлях усунення несправностей (troubleshooting) все ще значною мірою спирається на команди, логи та текстовий вивід. Зрештою ви будете використовувати kubectl, щоб ставити прямі запитання про Pod-и, Service-и, простори імен (namespace) та події, тому закладення основ починається зі значно безпечніших команд, які навчають тому ж самому ритму “введення-виведення”.
| Інтерфейс | Сильні сторони | Слабкі сторони | Ознака для новачка |
|---|---|---|---|
| GUI | Візуальний огляд, дослідження, робота з перетягуванням (drag-and-drop), панелі моніторингу (dashboards) | Повторення багатьох точних кроків, документування кожного кліку, віддалені текстові сервери | Ви переважно натискаєте на видимі елементи керування |
| Термінал | Точні команди, автоматизація, віддалений доступ, повторювана діагностика (troubleshooting) | Візуальне редагування, початкове дослідження, завдання, де зображення несуть сенс | Ви вводите команду і читаєте текстовий вивід |
Зупиніться та подумайте: якби вам довелося перейменувати сотні файлів в однаковий спосіб, який інтерфейс дозволив би легше уникнути помилок і чому? Відповідь полягає не в тому, що термінал є морально кращим. Відповідь у тому, що повторювані точні зміни — це та сфера, де введену інструкцію можна перевірити один раз, переглянути, зберегти та запустити знову, не покладаючись на сотні обережних рухів мишкою.
Наприклад, робочий процес у GUI для перейменування багатьох файлів може стати проблемою виснаження. Ви клацаєте на файл, вибираєте перейменування, вводите нове ім’я, підтверджуєте його, а потім повторюєте цю послідовність знову і знову. Термінал може виразити той самий патерн у вигляді циклу, що означає, що комп’ютер бере на себе повторення, тоді як ви зосереджуєтесь на тому, чи правильний сам патерн.
Тільки для ілюстрації — поки що не запускайте це
Ось як виглядає цикл перейменування файлів в оболонці (shell). Ви ще не вивчали операції з файлами або цикли; якщо це виконати, воно перейменує реальні
.txtфайли на вашій машині і може перезаписати наявні іменаbackup_*.txt. Прочитайте це лише для розуміння ідеї; ви будете виконувати подібні команди в наступному модулі.
for f in *.txt; do mv "$f" "backup_$f"; doneВам поки що не потрібно опановувати цей цикл. Важлива ідея полягає в тому, що термінал перетворює повторювану дію на текст. Як тільки дія стає текстом, її можна зберегти в скрипті, вставити в документацію, віддати на перевірку іншій людині та виконати на віддаленій машині, де немає робочого столу.
Ця ж ідея застосовується навіть тоді, коли завдання не є масштабним. Якщо ви виконаєте date до і після внесення змін, у вас у нотатках будуть чіткі часові позначки. Якщо ви виконаєте whoami перед редагуванням файлу на спільній тренувальній машині, ви зменшите ймовірність сплутати свій обліковий запис із чужим. Маленькі команди створюють маленькі шматочки доказів, а якісна діагностика (troubleshooting) — це переважно ретельний збір доказів.
Відкриття термінала та читання підказки (prompt)
Розділ «Відкриття термінала та читання підказки (prompt)»Відкриття термінала трохи відрізняється в кожній операційній системі, але перша мета всюди однакова: дістатися до вікна, яке показує підказку (prompt) та курсор, що блимає. На macOS натисніть Cmd + Space, введіть Terminal і натисніть Enter. У багатьох десктопних середовищах Linux комбінація Ctrl + Alt + T відкриває термінал, а меню застосунків зазвичай має пункт Terminal, якщо швидкий доступ вимкнено.
Windows має кілька прийнятних варіантів, і вони служать різним цілям. Windows Terminal — це сучасний термінальний застосунок від Microsoft, і він є хорошим повсякденним контейнером для оболонок (shells). WSL, підсистема Windows для Linux (Windows Subsystem for Linux), надає вам оболонку в стилі Linux на Windows; використовуйте вкладку WSL для Unix-команд у цьому модулі (date, date -u та прикладів у стилі bash, таких як $(date)). PowerShell є вбудованим і працює для echo (псевдонім) та перевірки ідентичності, наприклад whoami, але в ньому немає команди date — є лише командлет Get-Date без псевдоніма date — тому звичайний PowerShell видасть помилку, якщо ви введете date, як показано нижче. З цієї ж причини WSL рекомендується для решти цього навчального курсу.
Якщо ви пізніше оберете WSL, офіційний шлях встановлення починається з PowerShell і використовує команду встановлення від Microsoft. Для цього модуля вам не потрібно її виконувати, але вигляд цієї команди допоможе вам зрозуміти, що інструкції в терміналі можуть встановлювати реальні інструменти. Цей навчальний курс повернеться до WSL, коли деталі операційної системи матимуть більше значення.
wsl --installКоли термінал відкривається на macOS, ви можете побачити інформаційне повідомлення про вхід перед підказкою, схоже на цей приклад:
Last login: Mon Mar 23 10:15:00 on ttys000yourname@your-mac ~ %Цей текст ще не просить вас нічого робити. Рядок “Last login” є інформаційним, а рядок, що закінчується на %, є підказкою. У Linux або WSL підказка часто закінчується на $ замість цього. Точний стиль варіюється, оскільки оболонки та теми можна налаштовувати, але більшість підказок намагаються відповісти на три запитання: хто я, де я, і чи готова оболонка?
Корисно розділяти три слова, які люди часто плутають. Термінальний застосунок — це вікно, яке відображає текст і приймає введення з клавіатури. Оболонка (shell) — це програма всередині цього вікна, яка читає ваш командний рядок і запускає команди. Підказка (prompt) — це невеликий фрагмент тексту, який оболонка виводить, щоб показати, що вона готова до наступної інструкції.
Різні системи можуть використовувати різні оболонки. Сучасна macOS використовує zsh за замовчуванням, багато систем Linux використовують bash, а Windows PowerShell має власну мову та конвенції. Цей модуль настільки, наскільки це можливо, уникає специфічних для певних оболонок хитрощів, оскільки перша навичка полягає не в запам’ятовуванні конкретної оболонки; перша навичка — це розпізнавання патерну розмови, спільного для всіх них.
yourname@yourcomputer ~ $Ось та сама підказка, розбита на частини. Ставтеся до неї як до мітки на карті, надрукованої на краю вашої робочої зони. Перш ніж виконати команду, підказка допомагає вам перевірити, чи є ви очікуваним користувачем, на очікуваній машині, в очікуваному місці, і чи дивитесь ви на оболонку, яка чекає на введення.
| Частина | Значення | Аналогія |
|---|---|---|
yourname | Ваше ім’я користувача на цьому комп’ютері | Ваш бейдж з ім’ям на кухні |
@ | ”на” (at) | Слово, що пов’язує вас із місцем |
yourcomputer | Назва вашого комп’ютера | Назва ресторану |
~ | Ваше поточне розташування, зазвичай ваша домашня директорія | У якому приміщенні кухні ви перебуваєте |
$ або % | Оболонка готова до вашої команди | Шеф-кухар каже, що станція готова |
Цей навчальний курс іноді показує символ підказки на початку рядка з прикладом, щоб відрізнити підказку від команди:
$ echo "Hello"Коли ви бачите приклад у такому стилі, $ не є частиною команди. Це візуальний маркер, який означає “вводьте те, що йде після підказки”. Сама команда — це лише echo "Hello". Копіювання символу підказки є однією з найпоширеніших помилок новачків, і раннє розпізнавання цієї конвенції запобіжить багатьом незрозумілим помилкам.
Підказка в терміналі також повідомляє вам, коли команда завершилася. Якщо підказка повертається, оболонка готова до наступної інструкції. Якщо підказка не повертається, можливо, програма все ще виконується, очікує додаткового введення або зависла. Наступні модулі нададуть вам більше інструментів для діагностики, але на сьогодні достатньо простого правила: видима підказка означає “готовий”; відсутність підказки означає, що щось досі відбувається.
Це правило особливо корисне, коли виводу майже немає. Деякі команди друкують результат, деякі друкують лише помилки, а деякі успішні команди не друкують нічого взагалі. Новачки часто очікують, що кожна успішна команда буде голосно оголошувати про успіх, але інструменти командного рядка зазвичай розроблені так, щоб залишатися мовчазними, якщо немає чогось важливого для повідомлення. Тому спостереження за поверненням підказки є частиною читання виводу.
Ваші перші безпечні команди
Розділ «Ваші перші безпечні команди»Найбезпечніші перші команди — це ті, що виводять інформацію і не змінюють файли. echo виводить текст на екран, date запитує у системного годинника поточну дату та час, whoami виводить ім’я поточного користувача, а hostname виводить ім’я машини. Ці команди невеликі, але вони навчають усьому циклу: ввести інструкцію, натиснути Enter, прочитати вивід, дочекатися повернення запрошення.
Зупиніться та подумайте: перед тим як виконати це, який вивід ви очікуєте від команди з назвою echo, коли аргументом є Hello, World!? Спершу зробіть прогноз звичайними словами. Прогнозування має значення, оскільки термінал може здаватися менш випадковим, коли ви привчаєте себе порівнювати очікуваний вивід із фактичним.
echo "Hello, World!"Ви повинні побачити такий вивід, який підтверджує, що echo отримала текстовий аргумент і вивела його:
Hello, World!Назва команди — echo, а аргумент — "Hello, World!". Аргумент — це інформація, яку ви передаєте команді, щоб вона знала, з чим працювати. За аналогією з рестораном, echo — це інструкція «повторіть мені це замовлення», а текст у лапках — це замовлення, яке потрібно повторити.
Деякі старіші навчальні приклади містять символ запрошення всередині блоку коду, тому звикайте до цієї захищеної нотації:
$ echo "Hello, World!"Якщо ви вводите текст вручну, такий стиль відображення є нешкідливим, оскільки ви природно починаєте вводити після запрошення. Якщо ви копіюєте та вставляєте, це може спричинити проблеми, оскільки оболонка отримує $ як текст. З цієї причини в цьому курсі використовуються блоки команд без символу запрошення, якщо мається на увазі практика копіювання та вставляння.
Тепер запитайте у комп’ютера дату та час. Точний вивід залежить від вашої операційної системи, часового поясу, локалі та оболонки, тому не хвилюйтеся, якщо він відформатований інакше, ніж у прикладі. Головне, що команда повертає позначку часу, а потім знову видає вам запрошення. У Windows запускайте це у WSL (або іншій оболонці bash/zsh); лише в PowerShell використовуйте натомість Get-Date — там немає команди date.
dateОдин з можливих виводів виглядає так, але ваш місцевий часовий пояс і форматування можуть створити інший рядок:
Mon Mar 23 14:30:00 UTC 2026Команда date є кориснішою, ніж здається на перший погляд. Інженери використовують позначки часу в нотатках, логах, записах про розгортання, хронології інцидентів та скриптах. Коли скрипт виводить позначку часу із самої машини, це дозволяє уникнути людських помилок, які виникають через погляд на настінний годинник, забування часового поясу або округлення часу з пам’яті.
Далі дізнайтеся, який обліковий запис користувача запускає оболонку, оскільки ідентичність впливає на дозволи та право власності:
whoamiВи повинні побачити ім’я користувача, наприклад, назву облікового запису, яку ваша операційна система використовує внутрішньо:
yournameКоманда whoami може здатися безглуздою на вашому особистому ноутбуці, але вона стає важливою на спільних системах і віддалених серверах. Виконання команди від імені не того користувача може змінити дозволи, приховати файли від облікового запису, якому вони потрібні, або призвести до неочікуваного збою наступної команди. Швидка перевірка ідентичності — це професійна звичка, а не просто вправа для початківців.
Нарешті, запитайте в машини її ім’я, щоб ви могли пов’язати поточне вікно термінала з конкретним комп’ютером:
hostnameВи можете побачити такий вивід, хоча керовані ноутбуки, віртуальні машини та середовища WSL часто використовують інші шаблони найменування:
your-mac.localІмена машин мають значення, коли у вас відкрито більше одного вікна термінала. Уявіть, що одна вкладка підключена до тренувальної машини, а інша — до продакшн-сервера. Видиме ім’я хоста дає вам можливість зупинитися перед виконанням правильної команди в неправильному місці. Це одна з причин, чому багато інженерів налаштовують запрошення, щоб виділити важливі середовища.
Практичний сценарій: під час практичної лабораторної роботи у вас відкрито два вікна термінала. Одне запрошення каже alex@laptop ~ $, а інше — alex@training-vm /tmp $. Яке з них ви б використали для запуску команди, що має вплинути лише на тренувальну машину, і яка частина запрошення підтверджує ваше рішення? Відповідь на це запитання — це початок операційної обережності.
Чотири команди в цьому розділі також є зразком того, як вивчати майбутні команди. Починайте з команд, ефекти яких є видимими та оборотними, віддавайте перевагу запитанням перед діями, і зосереджуйте увагу на взаємозв’язку між командним рядком і надрукованою відповіддю. До того часу, коли ви дійдете до команд, що створюють файли або інспектують ресурси Kubernetes, ви вже матимете звичку спочатку читати, а не реагувати.
Вивід може відрізнятися, не будучи при цьому неправильним. Ваш формат date може містити назву часового поясу замість UTC, ваше ім’я користувача може бути коротшим за ім’я, яке ви використовуєте на графічному екрані входу, а ваше ім’я хоста може виглядати згенерованим автоматично. Термінал повідомляє, як система ідентифікує себе внутрішньо, тому сприймайте відмінності як підказки про середовище, а не як невідповідність скриншоту.
Корисна рутина для початківців — промовляти команду в реченні перед її запуском. Для whoami це речення: «запитати в системи, який користувач запускає цю оболонку». Для hostname це: «запитати в системи, на якій машині перебуває ця оболонка». Цей невеликий крок перекладу не дає назвам команд стати магічними словами, і він дає вам спосіб розмірковувати про незнайомі команди пізніше.
Ви також можете почати вести особистий журнал команд. Запишіть команду, вставте короткий зразок виводу і додайте одне речення з поясненням, чому ви її запустили. Це не марна робота; саме так багато інженерів створюють надійні нотатки під час налаштування та усунення несправностей. Хороша нотатка фіксує як інструкцію, так і докази, які вона згенерувала.
Структура команд і лапки
Розділ «Структура команд і лапки»Більшість команд термінала дотримуються шаблону, який достатньо простий, щоб вивчити його на ранньому етапі, і достатньо гнучкий, щоб слугувати роками. Спочатку йде назва команди. Опції зазвичай модифікують поведінку команди. Аргументи зазвичай визначають дані, з якими команда має працювати, наприклад, текст, файл, каталог, ім’я сервера або URL-адреса.
command [options] [arguments]Квадратні дужки в навчальній схемі означають «опціонально», а не те, що ви буквально друкуєте. Команда може не мати жодної опції, мати одну опцію, багато опцій, не мати аргументів або мати кілька аргументів. Оболонка розбиває рядок на частини, визначає назву команди та передає решту частин цій команді відповідно до власних правил програми.
Пробіли (whitespace) є частиною цієї структури. Оболонка зазвичай використовує пробіли для розділення назви команди, опцій та аргументів. Ось чому лапки мають значення, коли один аргумент містить пробіли. Ви можете уявити оболонку як таку, що готує маленький конверт для команди: вона пише назву команди зовні, а потім кладе кожну опцію та аргумент всередину як окрему частину інформації.
| Частина | Що це таке | Аналогія з рестораном |
|---|---|---|
| Команда | Дія, яку потрібно виконати | «Зробіть мені бургер» |
| Опції | Як це зробити, часто починаються з - | «Добре просмажений, додатковий сир» |
| Аргументи | З чим або над чим це робити | «З котлетою з яловичини Ангус» |
Найпростіший приклад має одну команду та один аргумент. Лапки кажуть оболонці тримати слова разом як єдине текстове значення. Без лапок багато команд усе ще працюють для простого тексту, але лапки стають важливими, щойно з’являються пробіли, розділові знаки або спеціальні символи.
echo "Hello"Команда — echo, а аргумент — "Hello". Оболонка видаляє лапки як синтаксис і передає команді текст усередині них. Спочатку ця різниця є тонкою: лапки — це не прикраса для людей, це інструкції для оболонки про те, як групувати слова перед тим, як команда їх отримає.
Опції змінюють поведінку. Команда date зазвичай виводить місцевий час, але опція -u запитує UTC. UTC — це стандартний еталон часу, який активно використовується в розподілених системах, оскільки він дозволяє уникнути плутанини, коли люди, сервери або логи перебувають в різних часових поясах. Ця опція призначена для Unix-подібних оболонок (macOS, Linux, WSL); PowerShell замість цього використовує Get-Date із форматуванням, орієнтованим на UTC.
date -uЦя команда має назву команди, date, та опцію, -u. Немає додаткового аргументу, оскільки команда вже знає, що вона має вивести. Іншим командам знадобляться аргументи, такі як ім’я файлу, шлях до каталогу або ім’я ресурсу Kubernetes, але структура залишається знайомою.
Опції часто мають коротку та довгу форми, хоча точні назви залежать від кожної команди. Коротка опція може виглядати як -u, тоді як довга опція може виглядати як --help або --version. Ви не повинні припускати, що кожна команда приймає однакові опції, але ви можете припускати, що опції існують для формування поведінки. Ця звичка зробить сторінки man та вивід довідки менш страшними згодом.
Ось та сама ідея структури команди у вигляді статичної діаграми. Читайте її зліва направо та зверніть увагу, що оболонка не розуміє вашого наміру з інтуїції. Вона розуміє токени, які є частинами, створеними після того, як вона обробляє пробіли, лапки та спеціальний синтаксис.
+----------------------+----------------------+----------------------+| Command | Option | Argument |+----------------------+----------------------+----------------------+| date | -u | || echo | | "Hello, World!" || hostname | | |+----------------------+----------------------+----------------------+Лапки — це те, на чому багато початківців уперше застрягають, тому це заслуговує на спокійну увагу. Якщо ви вводите початкову лапку і забуваєте кінцеву, оболонка вважає, що ваша команда не завершена. Замість того, щоб запустити команду, вона може показати запрошення до продовження, таке як >, і чекати на решту тексту.
Це одна з причин, чому в прикладах часто текст для людей беруть у лапки, навіть якщо крихітний приклад може працювати й без них. Раннє використання лапок формує звичку, яка стає необхідною, коли аргументи містять пробіли. Оболонка бачить Hello World як два окремих слова без лапок, але вона бачить "Hello World" як один аргумент. Для багатьох майбутніх команд ця різниця матиме величезне значення.
echo "This command is missing its closing quoteПравильне виправлення — не панікувати і не закривати всю програму. Ви можете ввести пропущену лапку та натиснути Enter, або ви можете натиснути Ctrl+C, щоб скасувати незавершену команду та повернутися до нового запрошення. Ctrl+C надсилає сигнал переривання, що називається SIGINT, до програми, яка працює на передньому плані або очікує, і більшість інструментів командного рядка реагують зупинкою.
>Це > не є звичайним запрошенням готовності в цій ситуації. Це оболонка просить більше вводу, оскільки попередній рядок був неповним. Розпізнавання різниці між звичайним запрошенням і запрошенням до продовження перетворює заплутаний момент на вирішуваний.
Спробуйте ще одну безпечну комбінацію. Цей приклад використовує підстановку команд (command substitution), що означає, що оболонка спочатку запускає команди всередині $(...) і вставляє їхній вивід у зовнішню команду echo. Вам ще не потрібно опановувати підстановку команд; просто зверніть увагу, що команди термінала можна компонувати.
echo "Today is $(date) and I am $(whoami)"Важливий урок полягає в тому, що композиція — це одна з суперсил термінала. Кнопка графічного інтерфейсу (GUI) зазвичай виконує одну видиму операцію. Команда оболонки може об’єднувати менші команди в більшу інструкцію. Саме тому пізніше стає можливим створення скриптів. Наразі композиція просто означає, що ви можете будувати з невеликих надійних частин, замість того, щоб запам’ятовувати одну гігантську команду.
У композиції також є урок безпеки. Коли команда містить менші команди, оболонці доводиться обчислювати деякі частини до того, як запуститься фінальна команда. Це потужно, але це також означає, що вам слід читати складені команди уважніше, ніж команди з одного слова. У цьому модулі складена команда лише виводить текст, тому це гарне місце, щоб побачити механізм, не ризикуючи файлами або налаштуваннями системи.
Продовжуючи навчання, уникайте вимірювання прогресу кількістю назв команд, які ви можете згадати. Кращим показником є те, чи можете ви визначити позиції команди, опції та аргументу в незнайомому прикладі. Щойно ви зможете це зробити, читати документацію стане набагато легше, тому що ви більше не дивитесь на рядок символів; ви шукаєте роль, яку відіграє кожна частина.
Таке читання на основі ролей — це саме те, що вам знадобиться для довших інструментів. Команда Kubernetes може включати назву команди, підкоманду, тип ресурсу, ім’я ресурсу, опцію простору імен та опцію виводу. Вона виглядає перевантаженою, але це все одно структуроване речення. Вивчення граматики на безпечних командах не дозволить пізнішим реченням здаватися випадковою пунктуацією.
Відновлення роботи, коли термінал здається завислим
Розділ «Відновлення роботи, коли термінал здається завислим»Початківці часто хвилюються, що одна неправильна команда зламає комп’ютер. Безпечні команди в цьому модулі навмисно нудні, і більшість перших помилок призводять до повідомлення про помилку, а не до пошкоджень. Ваша перша справжня навичка — це відновлення: помітити, в якому стані перебуває оболонка, за необхідності зупинити поточну дію та повернутися до запрошення (prompt), не погіршуючи проблему.
Перша звичка для відновлення — перевірити, чи досі є запрошення. Якщо ви бачите $ або % наприкінці рядка з курсором після нього, оболонка готова до роботи. Якщо текст усе ще виводиться на екран, команда виконується. Якщо ви бачите запрошення продовження, як-от >, оболонка чекає на додаткове введення, оскільки командний рядок не завершений.
Ctrl+C — це перша екстрена зупинка, яку варто спробувати, коли звичайна команда виконується занадто довго, нескінченно виводить текст або чекає у спосіб, якого ви не планували. Це не означає «копіювати» в контексті термінала, і це не закриває вікно термінала. Ця комбінація надсилає сигнал SIGINT процесу на передньому плані, що є ввічливим, але твердим проханням для цього процесу зупинитися.
Ctrl+CCtrl+C не є універсальним засобом, тому чітко розумійте межі. Якщо сам застосунок термінала завис, закрити та знову відкрити вікно може бути більш практичним. Якщо ви перебуваєте у повноекранній програмі, такій як less, top або vim, ця програма може мати власну клавішу виходу. Якщо програма навмисно ігнорує SIGINT, згодом вам може знадобитися потужніший інструмент, але це виходить за межі сьогоднішнього матеріалу для початківців.
Ще один поширений крок відновлення — буквальне читання помилок. Якщо оболонка каже command not found, це зазвичай означає, що перше слово не збіглося зі встановленою командою або програмою. Це може статися через друкарську помилку, неправильний регістр, копіювання символу запрошення або спробу запустити інструмент до його встановлення. Помилка звучить серйозно, але часто це лише оболонка каже, що не може знайти програму з такою назвою.
echoo: command not foundПеред виконанням будь-якої команди, яку ви скопіювали з уроку, швидко перевірте її. Чи є на початку символ запрошення, який слід видалити? Чи закриті всі лапки? Чи написана назва команди в нижньому регістрі, якщо в прикладі показано нижній регістр? Схоже, що команда щось змінює, чи вона лише виводить інформацію? Ці перевірки займають лічені секунди і формують ту саму дисципліну, яку ви згодом використовуватимете з потужнішими інструментами.
Коли Kubernetes з’явиться в наступних модулях, ті самі звички відновлення залишатимуться актуальними. Ви будете використовувати повні команди, такі як kubectl get pods, а не псевдоніми (aliases) оболонки, оскільки псевдоніми не завжди надійно розгортаються в неінтерактивних скриптах. Ви також будете читати поточний контекст, простір імен (namespace) та вивід команди, перш ніж робити висновки про те, що сталося. Звички початківця під час роботи з echo та date безпосередньо масштабуються в безпечнішу роботу з кластером (cluster).
Відновлення також включає збереження корисних доказів. Якщо команда виводить помилку, втримайтеся від бажання негайно очистити екран. Прочитайте перший рядок, знайдіть назву команди і зверніть увагу, чи стосується повідомлення написання, дозволів, відсутності файлів або неповного введення. Навіть якщо ви ще не можете виправити проблему, збереження видимого повідомлення дає вам щось конкретне для пошуку, запитання чи порівняння з документацією.
Одне з практичних правил — змінювати лише одну річ між спробами. Якщо команда не виконується, і ви одночасно редагуєте назву команди, лапки та поточний каталог, ви не дізнаєтесь, яка саме зміна вирішила проблему. Початківці часто рухаються швидше, якщо уповільнюються на цьому етапі: зробіть одне виправлення, запустіть один раз, прочитайте один раз, а потім визначте наступне виправлення на основі нового виводу.
Інше правило — надавати перевагу зворотному наступному кроку, коли ви не впевнені. Якщо ви не впевнені, де перебуваєте, спершу поставте запитання, замість того, щоб виконувати дію. Якщо ви не впевнені, що саме вивела команда, скопіюйте повідомлення у свої нотатки, перш ніж очищати екран. Якщо ви не впевнені, чи команда досі виконується, трохи зачекайте та пошукайте запрошення, перш ніж натискати інші клавіші.
Термінал винагороджує таку терплячу спостережливість. Він не намагається приховати від вас свій стан; більшість доказів видно в запрошенні, командному рядку та виводі. Найважче — це подолати бажання початківця ставитися до незнайомого тексту як до шуму. Щойно ви почнете читати текст як докази, термінал стане значно менш страшним.
Патерни та антипатерни
Розділ «Патерни та антипатерни»Найкращий патерн для початківця — це «передбачити, запустити, порівняти». Перш ніж натиснути Enter, скажіть, що, на вашу думку, зробить команда. Після її виконання порівняйте фактичний вивід із вашим передбаченням. Ця звичка перетворює практику в терміналі з випадкового набору тексту на навчання на основі зворотного зв’язку, і виявляє непорозуміння на ранній стадії, поки команди все ще нешкідливі.
| Патерн | Коли його використовувати | Чому це працює |
|---|---|---|
| Передбачати перед натисканням Enter | Будь-яка нова команда, навіть найменша | Це перетворює вивід на зворотний зв’язок замість шуму |
| Спочатку використовувати команди лише для отримання інформації | Під час вивчення нової оболонки або машини | Це формує впевненість без зміни файлів |
| Зберігати приклади придатними для копіювання та запуску | Під час написання нотаток або навчання когось іншого | Це дозволяє уникнути проблем із символами запрошення та псевдонімами |
| Читати запрошення перед дією | Коли відкрито кілька терміналів або віддалених систем | Це зменшує кількість помилок із неправильною машиною чи користувачем |
Відповідний антипатерн — ставитися до термінала як до ігрового автомата. Якщо ви вставляєте команди, не читаючи їх, багаторазово натискаєте Enter, бо здається, що нічого не відбувається, або закриваєте вікна щоразу, коли запрошення виглядає інакше, ви привчаєте себе уникати доказів, які дає вам термінал. Краща альтернатива спочатку повільніша: прочитайте запрошення, прочитайте команду, передбачте результат, виконайте її один раз, а потім інтерпретуйте вивід.
Ще один корисний патерн — записувати команду, яка спрацювала, а не лише пояснення того, що ви зробили. Нотатка, у якій написано «перевірив користувача», менш корисна, ніж нотатка, у якій сказано, що whoami вивів ваше ім’я користувача. Команда є достатньо точною, щоб колега міг її відтворити, а вивід дає вам конкретний запис того, що повідомила машина в той момент.
Патерни та антипатерни не існують окремо від команд для початківців; це професійні звички, приховані в них. Передбачення перед echo — це те саме мислення, яке ви згодом будете використовувати перед застосуванням маніфесту Kubernetes. Читання запрошення перед hostname — це та сама обережність, яку ви будете використовувати перед роботою з віддаленим сервером. Ставки зростають, але звички залишаються впізнаваними.
| Антипатерн | Що йде не так | Краща альтернатива |
|---|---|---|
Копіювання символу запрошення $ | Оболонка може сприйняти $ як неочікуване введення або видати незрозумілі помилки | Копіюйте лише текст команди після запрошення |
| Запам’ятовування команд без розуміння | Невеликі зміни стає неможливо налагодити | Вивчайте ролі команд, параметрів та аргументів |
| Використання псевдонімів у спільних скриптах | Скрипт не спрацює там, де псевдонім не визначено | Пишіть повні назви команд у прикладах та скриптах |
| Закриття термінала після кожної помилки | Ви втрачаєте корисний вивід і ніколи не дізнаєтесь про стан | Використовуйте Ctrl+C або завершіть неповне введення |
Коли використовувати це замість альтернатив
Розділ «Коли використовувати це замість альтернатив»Для цього вступного модуля система ухвалення рішень навмисно проста. Обирайте термінал, коли завдання є текстовим, повторюваним, віддаленим, придатним для скриптів або його легше задокументувати у вигляді команд. Обирайте графічний інтерфейс (GUI), коли завдання є візуальним, одноразовим, дослідницьким або краще сприймається через прямі маніпуляції. Обирайте і те, й інше, коли GUI допомагає вам перевірити стан, а термінал — виконати або точно записати дію.
| Ситуація | Кращий інструмент для початку | Причина |
|---|---|---|
| Перевірка, під яким користувачем ви працюєте на сервері | Термінал | whoami дає прямий текстовий вивід, який можна скопіювати в нотатки |
| Малювання діаграми архітектури | GUI | Форма, інтервали та візуальне розміщення є фактичною роботою |
| Встановлення інструментів командного рядка у WSL | Термінал | Офіційні посібники зі встановлення зазвичай надають команди |
| Спостереження за дашбордом для виявлення стрибків трафіку | GUI | Візуальні патерни легше помітити на графіках |
| Багаторазове повторення тієї самої файлової операції | Термінал | Команда або скрипт дозволяє уникнути повторюваних кліків |
| Дослідження незнайомого десктопного застосунку | GUI | Меню та кнопки розкривають доступні дії |
Який підхід ви б обрали тут і чому: вам потрібно задокументувати процес налаштування, щоб завтра колега міг його відтворити. Графічний інтерфейс може бути простішим для першого ознайомлення, але кінцеві інструкції мають містити команди термінала скрізь, де це можливо, оскільки текст можна переглянути, повторити, і він є менш двозначним, ніж «поставте третю галочку, якщо діалогове вікно не виглядає інакше».
Таке саме рішення застосовується і в межах одного робочого процесу. Ви можете використовувати дашборд GUI, щоб помітити, що застосунок працює з помилками, а потім використати команди термінала для збору логів, перевірки поточного користувача, запису позначок часу та повторного виконання точної послідовності діагностики після виправлення. Таке мислення тримає термінал прив’язаним до практичної роботи, замість того, щоб ставитися до нього як до окремого світу від решти комп’ютера.
Для початківця найкращим вибором часто є той, який дає найзрозуміліший зворотний зв’язок. Якщо GUI показує стан чіткіше, використовуйте його для орієнтації. Якщо команда термінала дає точну відповідь або повторювану дію, використовуйте її для запису та відтворення роботи. Цей збалансований підхід запобігає двом типовим помилкам: повному уникненню термінала або примусовому використанню термінала для завдань, де візуальний інтерфейс є очевидно кращим.
Чи знали ви?
Розділ «Чи знали ви?»-
Багато ранніх комп’ютерів взагалі не мали інтерактивних екранів. Ранні програмісти часто використовували перфокарти, фізичні картки з отворами, щоб вводити програми та дані. Сучасні термінали не є системами перфокарт, але вони продовжують давню традицію надання комп’ютерам точних текстових інструкцій.
-
Слово «термінал» спочатку стосувалося апаратного забезпечення. У 1960-х та 1970-х роках терміналом могла бути клавіатура з екраном або навіть пристрій, схожий на принтер, підключений до великого мейнфрейма. Сучасні застосунки термінала часто називають емуляторами термінала, оскільки вони імітують ту давню роль у програмному забезпеченні.
-
SSH стандартизований як сімейство захищених протоколів віддаленого входу вже кілька десятиліть. RFC 4251 описує архітектуру Secure Shell, і OpenSSH залишається поширеною реалізацією, яка використовується для доступу до віддалених систем із термінала. Саме тому впевненість у роботі з терміналом має значення задовго до того, як ви станете спеціалістом із серверів.
-
Windows Terminal був уперше випущений як сучасний термінальний хост із відкритим кодом для Windows у 2019 році. Він може розміщувати PowerShell, Command Prompt, оболонки WSL та інші профілі у вкладках. Сам застосунок не є оболонкою; це вікно, яке містить одну або кілька оболонок.
Типові помилки
Розділ «Типові помилки»| Помилка | Чому вона виникає | Як її виправити |
|---|---|---|
Введення символу запрошення $ із прикладу | Багато навчальних посібників показують $ як запрошення, і початківці обґрунтовано припускають, що кожен видимий символ треба вводити | Вводьте лише команду після запрошення; якщо ви її скопіювали, видаліть початковий $ та будь-який пробіл після нього |
| Забування натиснути Enter | Термінал не виконує команду, поки ви все ще редагуєте рядок | Натисніть Enter один раз, коли команда завершена, а потім зачекайте на вивід або повернення запрошення |
Неправильне написання назви команди, як-от echoo | Оболонка розглядає перше слово як точну назву програми, тому близькі збіги не зараховуються | Перевірте написання першого слова та знову запустіть виправлену команду |
Зміна регістру, наприклад Echo замість echo | Багато оболонок і файлових систем розглядають великі та малі літери як різні символи | Точно дотримуйтесь регістру команди, особливо в Linux та WSL |
| Забування закрити лапки | Оболонка вважає, що текстовий аргумент досі не завершений, і може показати запрошення продовження > | Введіть пропущені лапки та натисніть Enter, або натисніть Ctrl+C, щоб скасувати і почати заново |
| Паніка, коли вивід продовжує друкуватися | Запущений процес на передньому плані може тимчасово завадити вам ввести нову команду | Натисніть Ctrl+C один раз, а потім зачекайте, щоб побачити, чи повернеться звичайне запрошення |
| Припущення, що кожне вікно термінала — це та сама машина | Кілька вкладок можуть підключатися до різних локальних або віддалених систем | Прочитайте ім’я користувача, ім’я хоста (hostname) та розташування в запрошенні перед виконанням команд |
| Використання короткого псевдоніма в нотатках, призначених для когось іншого | Псевдоніми існують лише тоді, коли їх визначає цей сеанс оболонки, тому приклади можуть не спрацювати на іншій машині | Пишіть повні назви команд у спільних інструкціях та скриптах |
Контрольні запитання
Розділ «Контрольні запитання»Перевірте своє розуміння, відповівши на кожен сценарій, перш ніж відкривати пояснення, а потім порівняйте свої міркування з детальною відповіддю.
Запитання 1: Ви випадково запустили команду, яка друкує нескінченні рядки тексту, і ви не можете ввести нову команду. Яким має бути ваш наступний крок, і чому?
Натисніть Ctrl+C один раз і зачекайте, поки повернеться звичайне запрошення (prompt). Ctrl+C надсилає сигнал SIGINT активній команді на передньому плані, і більшість інструментів командного рядка реагують на це зупинкою. Це правильна перша дія, оскільки проблема не в тому, що вікно термінала зламане; проблема в тому, що запущена програма зараз займає передній план. Якщо Ctrl+C не працює, тому що ви перебуваєте в повноекранній програмі, то ця програма може мати власну клавішу виходу, але Ctrl+C — це безпечна для новачків перша спроба для звичайних команд.
Запитання 2: Ви намагаєтеся вивести абзац тексту за допомогою команди `echo`, але після натискання Enter термінал показує `>` на новому рядку замість вашого звичайного запрошення. Що найімовірніше сталося, і як відновити роботу?
Найімовірніше, ви відкрили лапки і не закрили їх. Оболонка (shell) показує запрошення продовження, оскільки вважає вашу команду неповною, тому вона чекає на решту тексту в лапках. Ви можете відновити роботу, ввівши пропущені лапки та натиснувши Enter, або натиснувши Ctrl+C, щоб скасувати незавершену команду та повернутися до нового запрошення. Головне — розпізнати, що > — це не те саме, що звичайне запрошення готовності до введення команд.
Запитання 3: Ви перемикаєтесь між вікнами термінала, і в одному запрошенні написано `alice@db-primary-main /etc/config $`. Який висновок можна зробити, перш ніж щось запускати?
Запрошення підказує, що поточним користувачем є alice, назва машини — db-primary-main, а поточне розташування — /etc/config. Ця інформація має значення, оскільки наступна команда, яку ви запустите, буде виконана саме в цьому сеансі, а не в тому вікні, яке ви мали на увазі подумки. Символ $ в кінці означає, що оболонка готова до виконання команди як звичайний користувач. Вам варто зробити паузу, перш ніж запускати щось із серйозними наслідками, оскільки і назва хоста, і каталог звучать як чутлива системна зона.
Запитання 4: Вам потрібно точно зафіксувати, коли ви виконали оновлення сервера. Чому використання команди `date` у нотатках з термінала або скрипті є безпечнішим, ніж погляд на настінний годинник?
Команда date виводить часову мітку з машини, яка виконує роботу, тобто з годинника, який є найбільш релевантним для журналів (logs) та скриптів у цій системі. Настінний годинник вносить людські помилки, такі як округлення, забування часового поясу або запис часу після дії, а не в момент, коли вона сталася. У скрипті часову мітку можна фіксувати автоматично та послідовно. Це полегшує подальше усунення несправностей, оскільки записаний час збігається з машинними журналами.
Запитання 5: Вам потрібно застосувати однакову зміну конфігурації на багатьох навчальних серверах. Чому робочий процес у терміналі може бути безпечнішим, ніж багаторазові кліки в GUI?
Робочий процес у терміналі дозволяє перетворити зміну на команду або скрипт, які один раз перевіряються, а потім стабільно повторюються. Робота з GUI (графічним інтерфейсом) вимагає постійної уваги людини, тому втома може призвести до пропущених прапорців, неправильних вкладок або неузгодженого порядку операцій. Термінал також залишає текст, який можна зберегти в інструкції (runbook) або вставити для перевірки (review). GUI все ще може допомогти оглянути кінцевий стан, але під час багаторазового виконання надруковані команди мають перевагу в безпеці.
Запитання 6: Колега стверджує, що GUI завжди кращі, бо вони більш інтуїтивно зрозумілі. Як би ви порівняли вибір між GUI і терміналом, не відкидаючи жоден із них?
Почніть із того, що погодьтеся: GUI часто кращі для візуального дослідження, інформаційних панелей (dashboards), діаграм і вивчення доступних дій нової програми. Потім поясніть, що термінали краще підходять для команд, які повторюються, віддалених текстових систем, автоматизації, журналів (logs) та інструкцій, які потрібно копіювати точно. Рішення залежить від завдання, а не від особистого смаку. Сильний інженер може використовувати GUI для перегляду та термінал для повторення, документування або автоматизації.
Запитання 7: Ви вставляєте команду з уроку й отримуєте незрозумілу помилку, у якій згадується `$`. Що вам слід перевірити насамперед?
Перевірте, чи не скопіювали ви символ запрошення з уроку разом із командою. У багатьох посібниках символ $ використовується для позначення «оболонка готова», але він не є частиною команди, яку потрібно запустити. Видаліть початковий $ і будь-які пробіли після нього, що належать лише до запрошення, а потім спробуйте виконати сам текст команди. Це також слушний момент перевірити наявність закритих лапок і точність написання перед повторним натисканням Enter.
Практична вправа: Ваш перший сеанс у терміналі
Розділ «Практична вправа: Ваш перший сеанс у терміналі»Мета
Розділ «Мета»Відкрити термінал, запустити безпечні інформаційні команди та попрактикувати одну дію з відновлення. Ця вправа навмисно невелика, оскільки мета — не швидкість. Мета — побудувати надійний цикл: передбачити результат, запустити команду, прочитати результат і переконатися, що запрошення повернулося.
Підготовка
Розділ «Підготовка»Використайте будь-який термінал, який ви можете відкрити сьогодні. Термінал macOS, термінал Linux або Windows Terminal із профілем WSL Ubuntu найкраще підходять для цієї вправи, оскільки в завданнях використовується команда date у стилі Unix і композиція bash. Якщо у вас відкрито лише PowerShell, команди echo і whoami працюють, але використовуйте Get-Date там, де у вправі вказано date, або відкрийте вкладку WSL, щоб збігатися з прикладами. Якщо одна з команд виводить дещо інший формат у вашій системі, сприймайте це як корисне свідчення, а не як невдачу.
Завдання
Розділ «Завдання»- Відкрийте термінал, використовуючи інструкції з цього модуля, а потім зупиніться на достатній час, щоб ідентифікувати видиме запрошення. Запишіть у власні нотатки ім’я користувача, назву хоста (якщо є) і символ запрошення.
Вказівки до рішення
У macOS запрошення може закінчуватися на %; у Linux та WSL воно часто закінчується на $. Ваше запрошення може містити ваше ім’я користувача, назву машини, поточний каталог, гілку Git або інші елементи оформлення залежно від конфігурації. Критерієм успіху не є точний збіг із прикладами. Критерій успіху — це здатність пояснити, що показує ваше власне запрошення.
- Запустіть свою першу команду
echoі порівняйте результат із вашим передбаченням.
echo "Hello, World!"Збережений приклад зі стилем запрошення з попередніх нотаток до курсу наведено нижче, щоб ви могли розпізнати цю конвенцію, не копіюючи її буквально:
$ echo "Hello, World!"Очікуваним результатом є текст усередині лапок, виведений без лапок, оскільки оболонка використовувала їх лише для групування:
Hello, World!Вказівки до рішення
Якщо ви ввели лише echo "Hello, World!", термінал має вивести Hello, World! і повернутися до запрошення. Якщо ви скопіювали $ echo "Hello, World!" і отримали помилку, видаліть початковий символ запрошення та запустіть команду знову. Це виправлення є частиною навчальної мети, а не ознакою того, що ви зазнали невдачі.
- Запитайте в комп’ютера поточну дату й час.
dateЗбережений приклад зі стилем запрошення з попередніх нотаток до курсу включає початковий маркер запрошення для порівняння з командою, яку можна запустити:
$ dateОчікуваним результатом є часова мітка з вашої власної машини, тому наведений нижче рядок є лише одним із валідних прикладів:
Mon Mar 23 14:30:00 UTC 2026Вказівки до рішення
Ваша точна часова мітка відрізнятиметься від прикладу, оскільки ваша машина має власний поточний час, часовий пояс і правила форматування. Важливим результатом є те, що команда date виводить часову мітку, а потім повертається запрошення. У звичайному PowerShell date не є валідною командою — запустіть Get-Date для отримання тієї ж інформації або перейдіть до WSL, щоб команда date збігалася з наступними модулями.
- Перевірте поточного користувача та поточну назву машини.
whoamihostnameЗбережені приклади зі стилем запрошення з попередніх нотаток до курсу показують ці команди по одній із видимими маркерами запрошення:
$ whoami$ hostnameМожливі результати показані окремо, оскільки ваше ім’я користувача та назва хоста походять із різних системних налаштувань і відповідають на різні запитання:
yournameyour-mac.localВказівки до рішення
Команда whoami повинна вивести обліковий запис, що запускає оболонку, а hostname — назву машини. Ці значення можуть бути простими, керованими корпорацією або автоматично згенерованими вашою операційною системою. Суть полягає в тому, щоб пов’язати вивід назад із запрошенням і помітити, що команди можуть відповідати на практичні запитання про поточний сеанс.
- Зробіть результат персоналізованим, а потім спробуйте одну складену команду.
echo "My name is [YOUR NAME] and I just used the terminal!"echo "Today is $(date) and I am $(whoami)"Збережені приклади зі стилем запрошення з попередніх нотаток до курсу показують ті самі команди з видимими маркерами запрошення для практики розпізнавання:
$ echo "My name is [YOUR NAME] and I just used the terminal!"$ echo "Today is $(date) and I am $(whoami)"Вказівки до рішення
Замініть [YOUR NAME] на своє справжнє ім’я або ініціали, перш ніж запускати першу команду. У другій команді оболонка спочатку запускає date і whoami, а потім вставляє їхній результат у речення, що його оточує. Ви бачите композицію команд у безпечній формі, що готує вас до майбутніх скриптів і не вимагає вивчення синтаксису скриптів сьогодні.
- Попрактикуйте відновлення після незавершених лапок, навмисно створивши безпечну помилку.
echo "practice recoveryКоли ви побачите запрошення продовження, натисніть Ctrl+C замість того, щоб закривати вікно термінала, а потім переконайтеся, що ваше звичайне запрошення повернулося.
Вказівки до рішення
Оболонка повинна показати запрошення продовження, оскільки лапки не були закриті. Натискання Ctrl+C має скасувати незавершену команду та повернути вас до звичайного запрошення. Це цінне повторення для практики, адже воно робить дію з відновлення знайомою, перш ніж вона знадобиться вам під час виконання більш стресової команди.
Критерії успіху
Розділ «Критерії успіху»Ви завершили цю вправу, якщо можете продемонструвати кожен пункт нижче без потреби закривати та відкривати термінал знову:
- Відкрити вікно термінала у вашій операційній системі.
- Ідентифікувати принаймні одну частину вашого запрошення, таку як ім’я користувача, назва хоста, каталог,
$або%. - Запустити
echo "Hello, World!"і побачити результат. - Запустити
dateі пояснити, чому ваш результат відрізняється від прикладу. - Запустити
whoamiтаhostnameі пов’язати результат із вашим поточним сеансом. - Запустити комбіновану команду
echo "Today is $(date) and I am $(whoami)". - Скасувати незавершену команду в лапках за допомогою Ctrl+C і повернутися до звичайного запрошення.
Джерела
Розділ «Джерела»- RFC 4251: The Secure Shell (SSH) Protocol Architecture
- OpenSSH manual pages
- Windows Terminal documentation
- Install WSL
- GNU Coreutils manual: date invocation
- GNU Coreutils manual: whoami invocation
- GNU Coreutils manual: hostname invocation
- Bash Reference Manual: Quoting
- Bash Reference Manual: Command Substitution
- Kubernetes kubectl quick reference
- Punched card
- Graphical user interface
- Computer terminal
- Command line crash course
Наступний модуль
Розділ «Наступний модуль»Наступний модуль: Module 0.3: First Terminal Commands - Дізнайтеся, як перейти від розпізнавання термінала до впевненої практики з командами.