Ось готовий урок, створений за твоїм майстер-промптом.
🎓 УРОК: Основні команди роботи з файлами та каталогами
(Стиль CS50: Енергійно, зрозуміло, з глибиною)
1. 🔥 Вступ: Чому миша — це милиці?
Привіт, друзі! 👋
Уявіть, що ви прийшли до величезної бібліотеки. Мільйони книг. Але є нюанс: ви не можете зайти в сховище. Ви стоїте за стійкою, і єдиний спосіб отримати книгу — це тицьнути пальцем у каталог на столі бібліотекаря. Це зручно, якщо книга одна.
А тепер уявіть, що вам потрібно знайти всі книги, видані у 1995 році, які мають червону обкладинку, і перенести їх на іншу полицю. Тицяти пальцем (або мишкою) ви будете до вечора, правда?
Ось у чому проблема графічного інтерфейсу (того, що ви бачите на робочому столі): він обмежує вас тим, що намалював дизайнер.
Але що, якби я сказав вам, що ви можете зайти в саме серце цієї бібліотеки й давати команди безпосередньо архіваріусу? Сказати: "Візьми всі ці книги й перенеси туди" — і це станеться за мілісекунду?
Сьогодні ми відкладемо мишку. Ми входимо в Термінал.
Питання до вас: Як ви думаєте, коли ви двічі клацаєте по папці на робочому столі, що комп’ютер робить насправді? (Спойлер: він просто виконує текстову команду, яку ми сьогодні навчимося писати вручну).
2. 🧠 Теоретична база: Дерево догори дриґом
Перш ніж писати код, давайте зрозуміємо карту місцевості.
Файлова система вашого комп’ютера — це Дерево. Але айтішники — дивні люди, тому наше дерево росте коренем догори.
* Корінь (/ або root) — це початок всього. З нього ростуть гілки (папки/каталоги), а на гілках висять листки (файли).
Три поняття, які треба "відчути":
- Каталог (Directory): Те, що ви звикли називати "папкою". Це просто контейнер для файлів та інших контейнерів.
- Шлях (Path): Це адреса.
- Абсолютний шлях: Це як повна поштова адреса: "Україна, Київ, Хрещатик, 1". Починається завжди від кореня
/. - Відносний шлях: Це пояснення для перехожого: "Іди прямо, потім наліво". Залежить від того, де ви стоїте зараз.
- Абсолютний шлях: Це як повна поштова адреса: "Україна, Київ, Хрещатик, 1". Починається завжди від кореня
- Поточна директорія: Це місце, де ви "стоїте" в терміналі просто зараз. Комп’ютер не бачить всього одразу, він бачить тільки те, що навколо вас.
Інтуїтивно: Термінал — це темна кімната. Ви бачите лише те, куди світите ліхтариком (поточна папка). Щоб побачити інше, треба перейти в іншу кімнату.
3. 🧪 Приклади: Магія слів
Давайте відкриємо термінал і спробуємо керувати цим світом.
Крок 1: Де я? (pwd)
Ви відкрили чорне вікно. Де ви у цьому дереві?
Команда: pwd (від англ. Print Working Directory).
$ pwd
/Users/student/home
Результат: Ага, ми в домашній папці. Комп’ютер сказав нам точну адресу.
Крок 2: Озирнутися (ls)
Що навколо нас?
Команда: ls (від англ. List).
$ ls
Desktop Downloads Documents Music
Пояснення: Ви просто увімкнули світло. Ось ваші папки.
А що, як ми хочемо побачити приховані деталі? (Наприклад, файли налаштувань, які починаються з крапки).
Пишемо ls -a (all). Це як вдягнути рентгенівські окуляри.
Крок 3: Телепортація (cd)
Йдемо на робочий стіл.
Команда: cd (від англ. Change Directory).
$ cd Desktop
$ pwd
/Users/student/home/Desktop
Питання: Що станеться, якщо я напишу просто cd ..?
Відповідь: Дві крапки .. — це магічний символ, що означає "на поверх вище" (назад до батьківської папки).
Крок 4: Створення світів (mkdir та touch)
Створимо папку для нашого уроку.
Команда: mkdir (Make Directory).
$ mkdir CS50_Lesson
$ cd CS50_Lesson
Тепер папка порожня. Створимо файл.
Команда: touch (торкнутися). Вона створює порожній файл, якщо його не було.
$ touch hello.txt
Крок 5: Копіювання та переміщення (cp та mv)
Уявіть, що ви хочете зробити бекап.
Команда cp (Copy): cp що_копіюємо куди_копіюємо.
$ cp hello.txt hello_backup.txt
А тепер перейменуємо файл. У Linux "перейменувати" — це те саме, що "перемістити" файл із старою назвою у файл з новою.
Команда mv (Move).
$ mv hello.txt secret.txt
Результат: Файл hello.txt зник, з'явився secret.txt.
Крок 6: Знищення 💀 (rm)
Це найнебезпечніша частина. Тут немає "Кошика". Якщо ви видаляєте — це назавжди.
Команда: rm (Remove).
$ rm secret.txt
Очікування: Файл зникне без попередження. Реальність: Так і буде. Будьте обережні.
4. 🛠 Практична частина
Час розім'яти пальці! Відкрийте термінал і виконайте цей квест:
- Розвідка: Дізнайтеся, де ви зараз (
pwd) і подивіться, що там є (ls). - Будівництво:
- Створіть папку
Universe. - Зайдіть у неї.
- Всередині створіть дві папки:
EarthіMars.
- Створіть папку
- Заселення:
- Зайдіть у
Earth. - Створіть файл
humans.txt.
- Зайдіть у
- Евакуація (Challenge):
- Уявіть, що Земля в небезпеці. Перемістіть (
mv) файлhumans.txtу папкуMars. - Підказка: Вам доведеться вийти з
Earthна рівень вище (..) і зайти вMars, або використати шлях../Mars/.
- Уявіть, що Земля в небезпеці. Перемістіть (
- Апокаліпсис:
- Вийдіть у
Universe. - Видаліть папку
Earth(вона ж порожня). - Спробуйте видалити
Mars. Питання: Чому термінал свариться? (Підказка: для видалення папки з файлами потрібен прапорець-r— recursive).
- Вийдіть у
5. 💡 Мислення як у розробника
Як відрізнити новачка від профі, дивлячись на їхній термінал?
-
Tab — твій найкращий друг. Новачок пише:
cd Doca.... Docum... Documents. Профі пише:cd Doі натискає Tab. Термінал сам дописує слово. Це не лінь, це ефективність і уникнення помилок у словах. -
Страх перед
rm. Профі завжди двічі думає перед натисканням Enter після командиrm, особливо якщо там є зірочка*(видалити все). Порада: Спочатку зробітьls, щоб побачити, що саме ви збираєтесь видалити, а потім замінітьlsнаrm. -
Стрілочки вгору/вниз. Не набирайте одну й ту саму команду двічі. Натисніть стрілку вгору, щоб повернути історію команд.
-
Розуміння "суті". Розробник не запам'ятовує всі опції команд напам'ять. Він знає логіку: "Мені треба скопіювати папку. Папка — це структура. Значить, треба копіювати рекурсивно (разом із вмістом)". Якщо забув прапорець — пише
man cp(інструкція) або гуглить.
6. 🧩 Підсумок
Отже, що ми сьогодні зробили? Ми перестали бути туристами, які дивляться на вітрини (робочий стіл), і зайшли на "кухню" операційної системи.
Тепер ви вмієте:
* 🧭 Орієнтуватися в просторі без GPS (pwd, ls).
* 🏃♂️ Бігати по каталогах (cd).
* 🏗️ Будувати та руйнувати структуру файлів (mkdir, touch, rm).
* 📦 Переносити речі (cp, mv).
Це — фундамент. Без цього ви не зможете працювати з серверами, хмарними технологіями чи Git.
Наступного разу: Ми навчилися створювати файли, але вони порожні. Як написати код всередині файлу, не виходячи з термінала, і чому справжні хакери не використовують мишку навіть для редагування тексту? Готуйтеся до знайомства з редакторами Nano та Vim.
А поки що — тренуйтеся натискати Tab! 😉