Модуль 39

Linux для DevOps та cloud

Ось готовий урок, створений спеціально за твоїм майстер-промптом. Це введення в Linux, орієнтоване на тих, хто планує працювати з хмарами та інфраструктурою.


🐧 Урок: Linux для DevOps та Cloud. Чорний екран — твій найкращий друг

Привіт, друзі! Це CS50... тобто, це ваш шлях у світ професійного IT. Сьогодні ми поговоримо про те, що часто лякає новачків, але без чого неможливо уявити сучасний інтернет. Ми говоримо про Linux.


1. 🔥 Вступ: Чому ми тут?

Уявіть ситуацію. Ви написали геніальний код, ваш додаток працює ідеально на вашому красивому MacBook або потужному ігровому ПК з Windows. Ви натискаєте кнопку "Deploy", відправляючи код у хмару (AWS, Google Cloud, Azure).

І раптом... помилка 500. Сайт лежить. Клієнти дзвонять. Ви намагаєтесь підключитися до сервера, щоб полагодити це. І що ви бачите?

Ви не бачите робочого столу. Немає іконки "Мій комп'ютер". Немає мишки. Перед вами просто чорний екран і миготливий курсор. $

Питання до вас: Що ви будете робити? Клікати в чорний екран? Кричати на монітор?

Ось сурова правда: 90% усього інтернету працює на Linux. Усі сервери, контейнери Docker, Kubernetes, бази даних — це все Linux. Якщо Windows або macOS — це як їздити на машині в якості пасажира (зручно, красиво, кондиціонер працює), то Linux для DevOps — це відкрити капот і налаштувати двигун.

Без знання Linux ви — турист у світі IT. Зі знанням Linux — ви інженер, який контролює реальність.


2. 🧠 Теоретична база (Що там "під капотом"?)

Давайте розберемося, як це працює, не заглиблюючись у нудні підручники 90-х.

У Linux є дві головні частини, які треба розрізняти:

  1. Ядро (Kernel) — це серце. Воно керує "залізом": пам'яттю, процесором, дисками. Ви з ним напряму майже ніколи не говорите.
  2. Оболонка (Shell) — це ваш перекладач. Це та сама програма, яка приймає ваші текстові команди й передає їх ядру. Найпопулярніша оболонка називається Bash (або Zsh).

🔑 Головна філософія Linux (Запам'ятайте це!)

У Windows є реєстр, диски C: і D:, приховані налаштування. У Linux діє золоте правило:

"Everything is a file" (Усе є файлом).

  • Ваш документ — це файл.
  • Налаштування програми — це текстовий файл.
  • Ваша клавіатура — це для системи теж файл (потік даних).
  • Процес, що завис — це файл.

Чому це круто? Тому що якщо все є файлом, ви можете керувати всім за допомогою одних і тих самих інструментів. Вам не потрібні 10 різних програм, щоб подивитися логи, налаштувати мережу чи змінити права доступу. Вам потрібен лише термінал.


3. 🧪 Приклади (Магія командного рядка)

Давайте перейдемо до практики. Як ми спілкуємося з системою?

Приклад 1: "Де я?" (Навігація)

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

Вводимо команду:

pwd

(Print Working Directory) Результат: /home/user/projects Пояснення: Ага, ми в папці projects. У Linux немає дисків C:\. Усе починається з кореня — скісної риски /.


Приклад 2: "Сила Конвеєра" (Pipes) — Реальний кейс DevOps

Уявіть, що у вас є файл логів server.log, у якому 1 мільйон рядків. Вам треба знайти тільки ті моменти, коли сталася помилка (Error).

У Word ви б натиснули Ctrl+F і клацали б "Далі" тисячу разів. У Linux ми робимо так:

cat server.log | grep "Error"

Що тут відбулося? 1. cat server.log — прочитай файл. 2. | (це пайп, або труба) — візьми результат першої команди і передай його другій команді. 3. grep "Error" — відфільтруй і покажи тільки рядки зі словом "Error".

А тепер ускладнимо. Скільки разів трапилася помилка?

cat server.log | grep "Error" | wc -l

(wc -l рахує кількість рядків). Результат: 42. Ви за секунду обробили мільйон рядків. Ось навіщо нам CLI (Command Line Interface).


Приклад 3: "Хто тут головний?" (Permissions)

Ви завантажили скрипт deploy.sh, намагаєтесь його запустити, а система каже: Permission denied.

Чому? Linux параноїдальний щодо безпеки. За замовчуванням він не дозволяє запускати будь-які файли як програми. Вам треба дати "дозвіл на виконання" (execute).

chmod +x deploy.sh

Тепер файл став зеленим (у більшості терміналів) і його можна запустити.


4. 🛠 Практична частина

Ви — Junior DevOps інженер. Вам дали доступ до сервера. Виконайте ці завдання (можна використовувати локальний термінал або онлайн-емулятор):

🔹 Завдання 1: Створення структури Створіть папку myapp, зайдіть у неї, і створіть там порожній файл config.txt. (Підказка: mkdir, cd, touch)

🔹 Завдання 2: "Я тут був" Запишіть фразу "Server v1.0" всередину файлу config.txt не відкриваючи текстовий редактор. (Підказка: використовуйте команду echo та стрілочку >).

🔹 Завдання 3: Пошук скарбів Перевірте вміст файлу. (Підказка: cat)

🔹 Завдання 4: Міні-кейс (Реальна проблема) У вас є файл, але ви не можете його редагувати, бо він "Read-only". Змініть права доступу до файлу так, щоб його міг читати і писати тільки власник (ви), а інші — взагалі нічого не могли з ним робити. (Підказка: це chmod 600 або схожа комбінація. Погугліть "chmod calculator", це нормально!)

🔹 Завдання 5: А що, якщо... Що станеться, якщо ви введете cd .. ? А якщо cd / ? Спробуйте переміститися і потім повернутися назад у свою папку myapp.


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

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

1. Tab — твій найкращий друг. Новачок набирає: cd docum... і помиляється в буквах. Профі набирає: cd Do і тисне Tab. Система сама дописує cd Documents/. Порада: Тисніть Tab постійно. Якщо Linux не дописує — значить, ви або помилилися, або такого файлу немає.

2. Лінь — це добре. Не пишіть одну й ту саму довгу команду двічі. Натисніть стрілку вгору (Up Arrow), щоб побачити історію команд. Або натисніть Ctrl + R і почніть писати команду, яку вводили вчора — пошук по історії знайде її.

3. Не бійтеся помилок, бійтеся не читати їх. Коли Linux видає помилку, він зазвичай пише чому. "No such file or directory" — ви помилилися назвою або шляхом. "Permission denied" — вам треба sudo (права адміністратора) або chmod. Читайте текст помилки!


6. 🧩 Підсумок

Сьогодні ми не просто вивчили пару команд. Ми змінили парадигму. * Ви зрозуміли, що GUI (графічний інтерфейс) — це просто красива обгортка, а справжня сила — у тексті. * Ви дізналися, що все є файлом. * Ви навчилися поєднувати прості команди в потужні конвеєри (|).

Що ви тепер вмієте: Ви можете зайти на віддалений сервер, не злякатися чорного екрана, знайти потрібну папку, прочитати логи і зрозуміти, чому "впав" продакшн. Це база, на якій тримається весь DevOps.

🔜 У наступній серії: Ми навчимося писати Bash-скрипти. Як змусити Linux робити рутинну роботу за вас, поки ви п'єте каву? Автоматизація — це наступний крок еволюції.

А поки — відкривайте термінал і експериментуйте! Успіхів!