Ось готовий урок, створений за твоїм майстер-промптом.
🖥️ Урок: Термінал та shell — вхід у Матрицю
Привіт, світе! Це CS50 (умовно 😉), і сьогодні ми з вами зробимо дещо страшне для звичайного користувача, але буденне для розробника. Ми відкриємо ту саму «чорну скриньку» з білими літерами.
1. 🔥 Вступ: Чому мишки недостатньо?
Уявіть, що ви прийшли в дуже вишуканий ресторан. Зазвичай ви сідаєте, вам дають меню з картинками, і ви тицяєте пальцем: «Хочу це». Це — ваш графічний інтерфейс (GUI): Windows, macOS, іконки, папки. Це зручно, красиво, але... ви обмежені меню. Якщо в меню немає опції «бургер без цибулі, але з подвійним сиром і просмаженням medium-rare», ви не можете це замовити одним кліком.
А тепер уявіть, що ви заходите прямо на кухню до шеф-кухаря. Тут немає меню. Але ви можете сказати: "Шеф, зроби мені стейк, поріж його кубиками, обсмаж 30 секунд і поклади в зелену тарілку" — і він це зробить.
Ось це і є Термінал.
Чому розробники так люблять ці чорні вікна?
Припустимо, вам треба створити 1000 папок з іменами user_1, user_2 ... user_1000.
* Варіант GUI: Права кнопка миші -> Створити папку -> Перейменувати. Повторити 1000 разів. Витратити вихідні.
* Варіант Термінала: Написати один рядок коду. Натиснути Enter. Готово за 0.5 секунди.
Відчуваєте різницю? Сьогодні ми навчимося говорити з комп'ютером його рідною мовою.
2. 🧠 Теоретична база: Що тут відбувається?
Перш ніж ми почнемо друкувати, давайте розберемося з термінологією, щоб ви не плутались.
Три кити командного рядка:
- Термінал (Terminal): Це просто вікно. Програма, яка показує текст і приймає введення. Це як телевізор. Якщо телевізор вимкнений — кіна не буде, але сам телевізор не знімає фільми. (Приклади: iTerm2, Hyper, GNOME Terminal, PowerShell).
- Shell (Оболонка): Це програма, яка живе всередині термінала. Це «мозок», який читає те, що ви написали, розуміє це і змушує операційну систему працювати. Найпопулярніші шелли — Bash та Zsh.
- Командний рядок (Command Line): Це саме той рядок, де блимає курсор, очікуючи вашої команди.
Як це працює "під капотом"?
Коли ви пишете команду (наприклад, ls) і тиснете Enter:
1. Shell зчитує текст.
2. Шукає в системі програму з такою назвою.
3. Запускає її.
4. Виводить результат назад у вікно термінала.
❗️ Що треба запам'ятати залізно: Комп'ютер — буквоїд.
Desktop,desktopіDesKtopдля нього — це три абсолютно різні папки. Пробіл — це роздільник. Якщо ви напишете команду з помилкою, комп'ютер не здогадається, що ви мали на увазі (майже ніколи).
3. 🧪 Приклади: Від "Де я?" до "Я керую"
Відкривайте термінал. Ви побачите щось на кшталт user@macbook ~ %. Це запрошення (prompt).
Приклад 1: Де я знаходжусь?
Коли ви відкриваєте провідник (Finder/Explorer), ви завжди бачите якусь папку. У терміналі ви теж завжди "стоїте" в якійсь папці, але не бачите іконок навколо.
Запитаємо систему: "Де я?" Введіть команду:
pwd
(розшифровується як Print Working Directory)
Що ви очікуєте побачити?
Шлях до папки. Наприклад:
/Users/david або /home/student. Це ваша "домашня" папка.
Приклад 2: Що тут є?
Ми знаємо, де ми. Тепер подивимось навколо. Введіть:
ls
(від List — список)
Ви побачите список файлів: Documents, Downloads, Music тощо. Це ваші папки, тільки текстом.
Приклад 3: Додаємо магії (Аргументи та прапорці)
А тепер уявіть, що ви хочете побачити не просто імена, а й приховані файли, розмір файлів і дату створення.
Просто ls цього не покаже. Нам треба змінити поведінку команди.
Введіть:
ls -la
Чому результат такий?
* ls — це команда (що робити).
* -la — це прапорці (flags/options).
* -l (long) — покажи детальний список (у форматі таблиці).
* -a (all) — покажи все, навіть приховане (файли, що починаються з крапки).
Тепер ви бачите купу незрозумілих символів зліва (drwxr-xr-x). Не лякайтесь, це права доступу, ми розберемо їх пізніше. Головне — ви щойно змінили поведінку програми, не переписуючи її код!
4. 🛠 Практична частина
Час забруднити руки. Виконуйте по черзі:
- Розвідка. Визначте, де ви зараз (команда
pwd) і подивіться, що там є (ls). - Створення світу. Створіть нову папку з назвою
cs50_practice.- Підказка: команда
mkdir(make directory). - Синтаксис:
mkdir cs50_practice
- Підказка: команда
- Телепортація. Зайдіть у цю папку.
- Підказка: команда
cd(change directory). - Дія:
cd cs50_practice - Перевірка: Знову введіть
pwd. Шлях змінився?
- Підказка: команда
- Творення. Створіть порожній файл
hello.txt.- Підказка: команда
touch. - Дія:
touch hello.txt
- Підказка: команда
- Експеримент. Спробуйте створити файл із назвою
my file.txt(з пробілом) без лапок.- Що сталося? Ви створили два файли:
myіfile.txt? Або отримали помилку? - Як виправити? Використовуйте лапки:
touch "my file.txt".
- Що сталося? Ви створили два файли:
- Повернення додому. Як вийти з папки назад?
- Спробуйте:
cd ..(дві крапки означають "батьківська папка").
- Спробуйте:
5. 💡 Мислення як у розробника
Як відрізнити новачка від профі в консолі?
1. Новачок боїться, профі читає помилки.
Якщо термінал пише command not found, новачок панікує: "Я все зламав!".
Профі думає: "Ага, я зробив одруківку в слові mkdir або не встановив програму". Читайте текст помилки — там відповідь.
2. Лінь — двигун прогресу (Автодоповнення).
Ніколи, чуєте, НІКОЛИ не пишіть довгі назви файлів вручну.
Якщо у вас є папка Architecture_Design_Project_2024, ви пишете:
cd Arch... і тиснете клавішу TAB.
Shell сам допише решту. Якщо не дописує — значить, є кілька папок на Arch, натисніть TAB двічі, щоб побачити варіанти.
3. Історія. Не пишіть одну й ту ж команду двічі. Натисніть стрілку вгору (↑) на клавіатурі. Це поверне вашу останню команду. Ще раз вгору — передостанню. Це економить години життя.
6. 🧩 Підсумок
Отже, що ми маємо?
1. Термінал — це не хакерська магія, це прямий спосіб спілкування з ОС.
2. Ви знаєте команди pwd (де я), ls (що бачу), cd (куди йти), mkdir (створити папку), touch (створити файл).
3. Ви зрозуміли, що пробіли та регістр літер мають значення.
Тепер ви вмієте створювати файли й ходити по папках без мишки. Але... файли поки що порожні. Як нам написати всередині них код або текст, не виходячи з цього чорного вікна?
На наступному уроці ми познайомимось із текстовими редакторами в терміналі (Nano та Vim) і дізнаємось, чому розробники жартують, що не можуть вийти з Vim.
До зустрічі! 👋