Модуль 7

Основні команди роботи з файлами та каталогами

Ось готовий урок, створений за твоїм майстер-промптом.


🎓 УРОК: Основні команди роботи з файлами та каталогами

(Стиль CS50: Енергійно, зрозуміло, з глибиною)


1. 🔥 Вступ: Чому миша — це милиці?

Привіт, друзі! 👋

Уявіть, що ви прийшли до величезної бібліотеки. Мільйони книг. Але є нюанс: ви не можете зайти в сховище. Ви стоїте за стійкою, і єдиний спосіб отримати книгу — це тицьнути пальцем у каталог на столі бібліотекаря. Це зручно, якщо книга одна.

А тепер уявіть, що вам потрібно знайти всі книги, видані у 1995 році, які мають червону обкладинку, і перенести їх на іншу полицю. Тицяти пальцем (або мишкою) ви будете до вечора, правда?

Ось у чому проблема графічного інтерфейсу (того, що ви бачите на робочому столі): він обмежує вас тим, що намалював дизайнер.

Але що, якби я сказав вам, що ви можете зайти в саме серце цієї бібліотеки й давати команди безпосередньо архіваріусу? Сказати: "Візьми всі ці книги й перенеси туди" — і це станеться за мілісекунду?

Сьогодні ми відкладемо мишку. Ми входимо в Термінал.

Питання до вас: Як ви думаєте, коли ви двічі клацаєте по папці на робочому столі, що комп’ютер робить насправді? (Спойлер: він просто виконує текстову команду, яку ми сьогодні навчимося писати вручну).


2. 🧠 Теоретична база: Дерево догори дриґом

Перш ніж писати код, давайте зрозуміємо карту місцевості.

Файлова система вашого комп’ютера — це Дерево. Але айтішники — дивні люди, тому наше дерево росте коренем догори. * Корінь (/ або root) — це початок всього. З нього ростуть гілки (папки/каталоги), а на гілках висять листки (файли).

Три поняття, які треба "відчути":

  1. Каталог (Directory): Те, що ви звикли називати "папкою". Це просто контейнер для файлів та інших контейнерів.
  2. Шлях (Path): Це адреса.
    • Абсолютний шлях: Це як повна поштова адреса: "Україна, Київ, Хрещатик, 1". Починається завжди від кореня /.
    • Відносний шлях: Це пояснення для перехожого: "Іди прямо, потім наліво". Залежить від того, де ви стоїте зараз.
  3. Поточна директорія: Це місце, де ви "стоїте" в терміналі просто зараз. Комп’ютер не бачить всього одразу, він бачить тільки те, що навколо вас.

Інтуїтивно: Термінал — це темна кімната. Ви бачите лише те, куди світите ліхтариком (поточна папка). Щоб побачити інше, треба перейти в іншу кімнату.


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. 🛠 Практична частина

Час розім'яти пальці! Відкрийте термінал і виконайте цей квест:

  1. Розвідка: Дізнайтеся, де ви зараз (pwd) і подивіться, що там є (ls).
  2. Будівництво:
    • Створіть папку Universe.
    • Зайдіть у неї.
    • Всередині створіть дві папки: Earth і Mars.
  3. Заселення:
    • Зайдіть у Earth.
    • Створіть файл humans.txt.
  4. Евакуація (Challenge):
    • Уявіть, що Земля в небезпеці. Перемістіть (mv) файл humans.txt у папку Mars.
    • Підказка: Вам доведеться вийти з Earth на рівень вище (..) і зайти в Mars, або використати шлях ../Mars/.
  5. Апокаліпсис:
    • Вийдіть у Universe.
    • Видаліть папку Earth (вона ж порожня).
    • Спробуйте видалити Mars. Питання: Чому термінал свариться? (Підказка: для видалення папки з файлами потрібен прапорець -r — recursive).

5. 💡 Мислення як у розробника

Як відрізнити новачка від профі, дивлячись на їхній термінал?

  1. Tab — твій найкращий друг. Новачок пише: cd Doca.... Docum... Documents. Профі пише: cd Do і натискає Tab. Термінал сам дописує слово. Це не лінь, це ефективність і уникнення помилок у словах.

  2. Страх перед rm. Профі завжди двічі думає перед натисканням Enter після команди rm, особливо якщо там є зірочка * (видалити все). Порада: Спочатку зробіть ls, щоб побачити, що саме ви збираєтесь видалити, а потім замініть ls на rm.

  3. Стрілочки вгору/вниз. Не набирайте одну й ту саму команду двічі. Натисніть стрілку вгору, щоб повернути історію команд.

  4. Розуміння "суті". Розробник не запам'ятовує всі опції команд напам'ять. Він знає логіку: "Мені треба скопіювати папку. Папка — це структура. Значить, треба копіювати рекурсивно (разом із вмістом)". Якщо забув прапорець — пише man cp (інструкція) або гуглить.


6. 🧩 Підсумок

Отже, що ми сьогодні зробили? Ми перестали бути туристами, які дивляться на вітрини (робочий стіл), і зайшли на "кухню" операційної системи.

Тепер ви вмієте: * 🧭 Орієнтуватися в просторі без GPS (pwd, ls). * 🏃‍♂️ Бігати по каталогах (cd). * 🏗️ Будувати та руйнувати структуру файлів (mkdir, touch, rm). * 📦 Переносити речі (cp, mv).

Це — фундамент. Без цього ви не зможете працювати з серверами, хмарними технологіями чи Git.

Наступного разу: Ми навчилися створювати файли, але вони порожні. Як написати код всередині файлу, не виходячи з термінала, і чому справжні хакери не використовують мишку навіть для редагування тексту? Готуйтеся до знайомства з редакторами Nano та Vim.

А поки що — тренуйтеся натискати Tab! 😉