Перейти до вмісту

Модуль 0.4: Файли та директорії

Hands-On Lab Available
Ubuntu beginner 20 min
Launch Lab ↗

Opens in Killercoda in a new tab

Складність: [ШВИДКО] — Абсолютний початківець

Час на виконання: 25-30 хвилин

Пререквізити: Модуль 0.2: Що таке термінал? — Ви повинні вміти відкривати термінал та вводити команди.


Що ви зможете зробити

Розділ «Що ви зможете зробити»

Після завершення цього модуля ви зможете:

  • Навігувати абсолютними та відносними шляхами та пояснювати різницю між ними
  • Читати файли за допомогою cat, head та tail та обирати правильний інструмент для конкретного завдання
  • Інтерпретувати права доступу до файлів із виводу ls -l (хто може читати, писати, виконувати)
  • Знаходити приховані dot-файли та пояснювати, навіщо вони існують

Усе на вашому комп’ютері — кожне фото, кожна пісня, кожна програма, кожне налаштування — зберігається як файл. І ці файли організовані в директорії (які також називають папками).

Коли ви використовуєте GUI, ви бачите кольорові іконки папок і файлів. Ви двічі клацаєте по них, щоб відкрити. Але за лаштунками ваш комп’ютер сприймає файли та директорії як дерево текстових шляхів, наприклад, /home/yourname/Documents/report.txt.

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


Файл — це контейнер для інформації, що зберігається на вашому комп’ютері.

Уявіть його як аркуш паперу з текстом. У аркуша є:

  • Ім’я (щоб ви могли його знайти): grocery-list.txt
  • Вміст (сама інформація): “яйця, молоко, хліб”
  • Розташування (де він зберігається): на столі, у шухляді, у картотеці

Файли можуть містити будь-що:

  • Текст (як-от нотатка чи конфігурація)
  • Код (інструкції для комп’ютера)
  • Зображення (ваші фотографії)
  • Музику, відео, бази даних та багато іншого

У нашій аналогії з ресторанною кухнею: файл — це як картка з рецептом. Він має назву (“Томатний суп”), вміст (власне рецепт) і десь зберігається (у коробці з рецептами, на полиці чи в шухляді).

Все є файлом (Справді!)

Розділ «Все є файлом (Справді!)»

Ось дещо вражаюче про Linux (операційну систему, на якій працює Kubernetes):

Майже все представлено у вигляді файлу.

  • Ваші реальні файли? Файли.
  • Ваша клавіатура? Система бачить її як файл (/dev/input/event0).
  • Ваш жорсткий диск? Файл (/dev/sda).
  • Запущені програми? Вони мають записи у /proc/, які виглядають як файли.

Вам не потрібно турбуватися про файли пристроїв прямо зараз. Просто знайте, що концепція “файлів” у Linux набагато глибша, ніж просто документи та фото. Ця філософія дизайну є однією з причин, чому Linux такий потужний — усе можна читати, писати та змінювати за допомогою одного набору інструментів.


Що таке директорія?

Розділ «Що таке директорія?»

Директорія — це контейнер для файлів (та інших директорій). Це те саме, що й папка — буквально та сама концепція, просто інша назва.

  • Користувачі GUI кажуть “папка” (бо іконка виглядає як паперова папка).
  • Користувачі термінала кажуть “директорія” (технічний термін).

На кухні: директорія — це як шухляда або полиця. Ваші картки з рецептами (файли) кладуться в шухляди (директорії). Шухляди можуть містити інші шухляди (піддиректорії).


Ваш комп’ютер організовує всі файли та директорії в структуру дерева. Воно починається з однієї точки вгорі та розгалужується донизу.

/ <-- "Корінь" (root) — сама вершина, перший поверх
├── home/ <-- Де живуть облікові записи користувачів
│ └── yourname/ <-- ВАША домашня директорія
│ ├── Documents/
│ ├── Downloads/
│ ├── Desktop/
│ └── projects/
├── etc/ <-- Системні файли конфігурації
├── var/ <-- Змінні дані (логи, бази даних)
├── tmp/ <-- Тимчасові файли
└── usr/ <-- Програми та утиліти користувача
ШляхЩо це такеАналогія з кухнею
/Коренева директорія — сама вершина дереваСама будівля — усе знаходиться всередині неї
/home/yourname/Ваша домашня директорія — ваш особистий простірВаше особисте робоче місце на кухні
~Скорочення для домашньої директоріїПрізвисько для вашого робочого місця
/etc/Системні файли конфігураціїПосібник із політики ресторану та стандарти рецептів
/tmp/Тимчасові файли (видаляються при перезавантаженні)Стіл для приготування — використовується під час готування, прибирається після
/var/log/Лог-файли (записи про те, що сталося)Книга історії замовлень

Символ ~ (тильда) — це ярлик. Замість того, щоб друкувати /home/yourname/, ви можете просто написати ~. Ваш термінал зрозуміє, що ви маєте на увазі. Це як прізвисько — простіше використовувати, ніж повне ім’я.

Чому це важливо в Kubernetes: Як інженер Kubernetes, ви будете постійно взаємодіяти зі специфічними файлами саме в цих директоріях. Ви налаштовуватимете доступ до кластера, редагуючи ~/.kube/config. Ви будете налагоджувати системні компоненти, читаючи маніфести в /etc/kubernetes/manifests/. А коли щось зламається, ви шукатимете підказки у /var/log/pods/ або /var/log/containers/.

macOS дещо відрізняється. Ваша домашня директорія знаходиться за шляхом /Users/yourname/ замість /home/yourname/. Але ~ усе одно працює як скорочення, тому вам рідко доводиться про це думати.


Навігація: Де я знаходжуся?

Розділ «Навігація: Де я знаходжуся?»

Коли ви відкриваєте термінал, ви “стоїте” в певній директорії — зазвичай у вашій домашній директорії. Термінал не показує вам візуальну карту; вам потрібно запитати про це.

“Де я зараз перебуваю?”

Terminal window
$ pwd
/home/yourname

pwd означає Print Working Directory (Вивести робочу директорію). Він показує повний шлях до місця, де ви зараз перебуваєте.

Аналогія з кухнею: “В якому приміщенні я стою?” — pwd відповідає на це питання.

“Що є в цьому приміщенні?”

Terminal window
$ ls
Desktop Documents Downloads Music Pictures

ls означає list (список). Він показує файли та директорії у вашому поточному місці.

Ви можете додати опції, щоб побачити більше деталей:

Terminal window
$ ls -l

Прапор -l означає “довгий формат” (long format). Тепер ви побачите щось на кшталт:

drwxr-xr-x 2 yourname yourname 4096 Mar 23 10:00 Desktop
drwxr-xr-x 3 yourname yourname 4096 Mar 23 09:45 Documents
-rw-r--r-- 1 yourname yourname 220 Mar 23 08:30 notes.txt

Не панікуйте — ми розкодуємо це трохи пізніше.

“Перейти до іншої кімнати.”

Terminal window
$ cd Documents
$ pwd
/home/yourname/Documents

cd означає change directory (змінити директорію). Ви кажете йому, куди йти, і він переносить вас туди.

Деякі важливі скорочення для cd:

КомандаКуди вона вас переноситьАналогія
cd ~ або просто cdВаша домашня директорія”Повернутися до мого робочого місця”
cd ..На один рівень вгору (батьківська директорія)“Перейти до приміщення, яке містить це приміщення”
cd -Остання директорія, в якій ви були”Повернутися туди, де я щойно був”
cd /Коренева директорія”Перейти на перший поверх”

Абсолютні та відносні шляхи

Розділ «Абсолютні та відносні шляхи»

Це важлива концепція. Є два способи описати, де знаходиться файл або директорія:

Абсолютний шлях (Повна адреса)

Розділ «Абсолютний шлях (Повна адреса)»

Абсолютний шлях починається від кореня (/) і вказує повне розташування:

/home/yourname/Documents/report.txt

Це як вказати повну поштову адресу: вул. Головна, 123, Київ, 01001, Україна. Незалежно від того, де ви знаходитесь у світі, ця адреса вказує на одне конкретне місце.

Відносний шлях (Напрямок звідси)

Розділ «Відносний шлях (Напрямок звідси)»

Відносний шлях описує розташування відносно того місця, де ви перебуваєте зараз:

Documents/report.txt

Це як сказати: “Два квартали ліворуч, потім один квартал вгору”. Ці вказівки працюють лише тоді, коли ви знаєте початкову точку.

Terminal window
$ pwd
/home/yourname
# Ці дві команди роблять одне і те саме:
$ cd /home/yourname/Documents # Абсолютний шлях
$ cd Documents # Відносний шлях (працює, бо ми в /home/yourname)

Спеціальні символи шляхів

Розділ «Спеціальні символи шляхів»
СимволЗначенняПриклад
/Коренева директорія (на початку) або роздільник шляху/home/yourname
~Ваша домашня директорія~/Documents = /home/yourname/Documents
.Поточна директорія (“тут”)./script.sh = “script.sh у цій директорії”
..Батьківська директорія (“на один рівень вгору”)../Downloads = “йти вгору, потім у Downloads”

Тепер давайте зазирнемо всередину файлів. У вас є кілька інструментів, кожен з яких корисний у різних ситуаціях.

Подумайте про це: Вам потрібно перевірити останні кілька рядків лог-файлу довжиною 10 000 рядків. Ви б використали команду, яка показує весь файл, чи ту, що показує лише кінець? Майте це на увазі, коли читатимете про cat, head та tail нижче — кожен із них існує для вирішення конкретної проблеми.

cat — Показати весь файл

Розділ «cat — Показати весь файл»
Terminal window
$ cat notes.txt
Це моя перша нотатка.
Я написав її в терміналі!

cat означає “concatenate” (з’єднувати), але більшість людей використовують його для відображення вмісту файлу. Він виводить увесь файл на ваш екран.

Аналогія з кухнею: cat — це як читати всю картку з рецептом вголос від початку до кінця.

Коли використовувати: Невеликі файли (менше 50 рядків).

head — Показати перші 10 рядків

Розділ «head — Показати перші 10 рядків»
Terminal window
$ head long-file.txt

Це показує лише перші 10 рядків. Ви можете змінити кількість:

Terminal window
$ head -n 5 long-file.txt # Показати перші 5 рядків

Аналогія з кухнею: “Просто прочитайте мені назву та інгредієнти — мені не потрібен повний рецепт”.

tail — Показати останні 10 рядків

Розділ «tail — Показати останні 10 рядків»
Terminal window
$ tail log-file.txt

Показує останні 10 рядків. Надзвичайно корисно для читання лог-файлів, де найновіші записи знаходяться внизу.

Terminal window
$ tail -n 20 log-file.txt # Показати останні 20 рядків

Аналогія з кухнею: “Якими були останні кілька замовлень, що надійшли?”


Створення файлів та директорій

Розділ «Створення файлів та директорій»

mkdir — Створити директорію

Розділ «mkdir — Створити директорію»
Terminal window
$ mkdir recipes

Це створює нову директорію під назвою recipes у вашому поточному місці.

Щоб створити вкладені директорії (директорію всередині директорії, яка в іншій директорії):

Terminal window
$ mkdir -p recipes/italian/pasta

Прапор -p означає “створювати батьківські директорії за потреби” (parents). Без нього ви отримали б помилку, якби recipes/ або recipes/italian/ ще не існувало.

touch — Створити порожній файл

Розділ «touch — Створити порожній файл»
Terminal window
$ touch shopping-list.txt

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

Аналогія з кухнею: mkdir — це виготовлення нової шухляди. touch — це розміщення в ній порожньої картки для рецепта.


Приховані файли (Dotfiles)

Розділ «Приховані файли (Dotfiles)»

Деякі файли та директорії починаються з крапки (.). Вони називаються прихованими файлами або dot-файлами.

Terminal window
$ ls
Documents Downloads Music
$ ls -a
. .. .bashrc .config Documents Downloads Music

Прапор -a означає “all” (усі) — включаючи приховані файли.

Приховані файли зазвичай містять конфігурації та налаштування. Ось деякі поширені:

ФайлЩо він робить
.bashrcНалаштування для вашого термінала bash
.zshrcНалаштування для термінала zsh (за замовчуванням у macOS)
.config/Директорія, що містить конфігурації програм
.ssh/SSH-ключі (використовуються для безпечних з’єднань)
.gitconfigНалаштування Git

Ці файли приховані, тому що вам не потрібно бачити їх щодня, а випадкове їх видалення може зіпсувати ваші налаштування. Вони як електрична проводка за стінами кухні — важливі, але зазвичай сховані від очей.


Основи прав доступу до файлів

Розділ «Основи прав доступу до файлів»

Зупиніться та подумайте: Коли ви запускаєте ls -l, ви бачите щось на кшталт -rw-r--r-- поруч із кожним файлом. Як ви думаєте, що означають ці літери? r може нагадувати “read” (читання), w — “write” (запис)… а тире? Спробуйте вгадати, перш ніж читати далі.

Пам’ятаєте, коли ми запускали ls -l і бачили це?

drwxr-xr-x 2 yourname yourname 4096 Mar 23 10:00 Desktop
-rw-r--r-- 1 yourname yourname 220 Mar 23 08:30 notes.txt

Давайте розкодуємо перший стовпець: -rw-r--r--

Рядок прав доступу

Розділ «Рядок прав доступу»
- rw- r-- r--
| | | |
| | | └── Права доступу для інших (Others)
| | └── Права доступу для групи (Group)
| └── Права доступу для власника (Owner - ви)
└── Тип файлу (- = файл, d = директорія)

Три типи прав доступу

Розділ «Три типи прав доступу»
ЛітераПраво доступуДля файлівДля директорій
rЧитання (Read)Можна бачити вмістМожна переглядати список файлів усередині
wЗапис (Write)Можна змінювати вмістМожна додавати або видаляти файли
xВиконання (Execute)Можна запускати як програмуМожна входити в директорію (команда cd)
-Немає правНеможливо виконати діюНеможливо виконати дію
-rw-r--r-- notes.txt
  • - : Це звичайний файл (не директорія)
  • rw- : Власник може читати та писати (але не виконувати)
  • r-- : Група може тільки читати
  • r-- : Інші можуть тільки читати
drwxr-xr-x Desktop
  • d : Це директорія
  • rwx : Власник може читати, писати та входити
  • r-x : Група може читати та входити (але не додавати/видаляти файли)
  • r-x : Інші можуть читати та входити (але не додавати/видаляти файли)

Аналогія з кухнею: Права доступу — це як хто має який ключ. Шеф-кухар (власник) має ключ від усього. Су-шефи (група) можуть відкривати більшість шухляд. Офіціанти (інші) можуть лише заглядати через вікно.

Історія з життя: Один розробник якось встановив файл конфігурації бази даних, що містив паролі для продуктивного середовища, як доступний для читання всім (-rw-rw-rw-). Зловмисник, який отримав доступ низького рівня до сервера, зміг просто за допомогою cat прочитати файл конфігурації, отримати облікові дані та викрасти всю базу даних клієнтів. Правильні права доступу (-rw-------) зупинили б цю атаку на самому початку.

Поки що не турбуйтеся про зміну прав — просто знайте, як їх читати. Ми розберемо chmod, коли це знадобиться.


  1. Коренева директорія / називається “коренем” (root), тому що дерево директорій росте вниз. Як і у справжнього дерева, корінь знаходиться зверху, а гілки розходяться нижче. Кожен файл на вашому комп’ютері знаходиться десь на гілці, яка з’єднується з /.

  2. Скорочення ~ було обрано через розкладку клавіатури. На терміналі ADM-3A (випущеному в 1970-х роках, одному з перших відеотерміналів), клавіша “Home” була на тій самі ж клавіші, що й символ ~. Так ~ став скороченням для домашньої директорії, і це закріпилося на понад 50 років.

  3. Linux ставиться до всього як до файлу — включаючи вашу клавіатуру. Коли ви натискаєте клавішу, ядро записує це натискання у файлоподібний інтерфейс. Програми читають із цього інтерфейсу, щоб дізнатися, що ви надрукували. Ця філософія “усе є файлом” — причина, чому Linux можна повністю керувати з термінала: завжди є файл, який можна прочитати або змінити.


ПомилкаЩо відбуваєтьсяВиправленняНаслідки в реальному світі
Спроба cd у файл замість директоріїПомилка Not a directoryВикористовуйте cat або head для читання файлів; cd — для директорійВтрата часу під час критичного інциденту, коли ви намагаєтеся знайти логи.
Відсутність пробілу між командою та шляхомПомилка cdDocuments: command not foundЗавжди ставте пробіл: cd DocumentsДрібниця, але скрипти з пропущеними пробілами не виконуватимуться в автоматизованих пайплайнах.
Використання зворотних слешів \ замість прямих /Шлях не знайденоLinux/macOS використовують прямі слеші: /home/you/DocumentsСкрипт, написаний на Windows, може повністю зламатися при розгортанні на вузлі Kubernetes з Linux.
Створення файлу замість директоріїВи отримуєте файл з назвою “recipes” замість папкиВикористовуйте mkdir для директорій, touch для файлівПрограми, що очікують на директорію для запису логів, впадуть, якщо там замість неї буде файл.
Втрата орієнтації у вкладених директоріяхВи не знаєте, де знаходитесьЗапустіть pwd, щоб побачити місцеперебування, або cd ~, щоб повернутися додомуВи можете випадково видалити або перезаписати файли не в тому середовищі (наприклад, prod замість dev).
Опечатка в назві шляхуNo such file or directoryСпочатку використовуйте ls, щоб побачити, що там є, потім пишіть уважно (або тисніть Tab!)Скрипти автоматичного резервного копіювання тихо не зможуть зберегти дані, якщо цільовий шлях написаний з помилкою.

Професійна порада: автодоповнення клавішею Tab. Почніть вводити назву файлу або директорії та натисніть Tab. Термінал автоматично допише її за вас. Якщо є кілька збігів, натисніть Tab двічі, щоб побачити всі варіанти. Це економить час і допомагає уникати опечаток.


Контрольні запитання

Розділ «Контрольні запитання»

Запитання 1: Ви читаєте документацію, яка каже вам скопіювати ліцензійний ключ у ~/.kube/config. Проте ваша поточна робоча директорія — /var/log/pods/. Куди саме символ ~ спрямовує систему для пошуку цього файлу, і чому це скорочення використовується замість повного шляху?

Показати відповідь

Система шукатиме в домашній директорії вашого користувача (наприклад, /home/yourname/.kube/config у Linux або /Users/yourname/.kube/config у macOS). Символ ~ діє як динамічне скорочення, яке завжди вказує на домашню директорію поточного користувача. Це надзвичайно корисно в документації та скриптах, оскільки воно працює бездоганно незалежно від того, яке у вас ім’я користувача або яку операційну систему ви використовуєте. Використовуючи ~, розробники можуть написати одну команду, яка працюватиме на особистих машинах усіх користувачів без необхідності підлаштування.

Запитання 2: Ви щойно завантажили інструмент, який містить файл .env із секретними API-ключами. Коли ви вводите ls у директорії, файл не з’являється. Чому це відбувається і яку команду ви повинні виконати, щоб переконатися, що файл насправді там?

Показати відповідь

Ви повинні запустити ls -a (або ls --all), щоб побачити його. Файл не відображається за стандартної команди ls, тому що його назва починається з крапки (.), що робить його прихованим файлом. Операційні системи приховують dot-файли за замовчуванням, щоб підтримувати візуальну чистоту директорій, оскільки ці файли зазвичай містять конфігураційні дані або дані середовища, з якими вам не потрібно взаємодіяти під час звичайної повсякденної роботи з файлами. Прапор -a спеціально скасовує цю поведінку за замовчуванням, щоб показати все, що є в директорії.

Запитання 3: Молодший розробник засмучений тим, що не може легко знайти свій файл конфігурації термінала .bashrc у домашній папці за допомогою графічного провідника файлів. Чому файли конфігурації, як-от .bashrc, приховані за замовчуванням, і що може піти не так, якби вони були повністю видимі поруч зі звичайними документами?

Показати відповідь

Файли конфігурації приховані за замовчуванням, щоб захистити їх від випадкової зміни або видалення. Якби файли на кшталт .bashrc були видимі поруч із повсякденними документами, користувач міг би помилково видалити їх під час очищення старих файлів або випадково змінити їх, намагаючись відкрити звичайний текстовий документ. Видалення або пошкодження цих файлів може миттєво зіпсувати середовище вашого термінала, порушити налаштування програм або заблокувати доступ до певних інструментів. Приховування гарантує, що з ними взаємодіятимуть лише ті користувачі, які спеціально мають намір змінити конфігурації.

Запитання 4: Ви зараз налагоджуєте програму, і ваш термінал знаходиться в /home/user/projects/app/src. Ви розумієте, що вам потрібно прочитати інструкції, розташовані в /home/user/projects/app/README.md. Напишіть команду для читання цього файлу за допомогою відносного шляху та поясніть, чому тут може бути кращим відносний шлях.

Показати відповідь

Команда — cat ../README.md (або head ../README.md). Символи .. вказують системі піднятися на один рівень вгору в директорію app, а потім шукати файл README.md. Відносний шлях тут кращий, тому що його набагато швидше вводити, ніж повний абсолютний шлях (/home/user/projects/app/README.md). Під час активного сеансу налагодження переміщення за допомогою відносних шляхів економить час, зменшує ймовірність помилок і полегшує роботу в межах локальної структури проєкту.

Запитання 5: Скрипт розгортання не працює. Усередині скрипту він намагається отримати доступ до файлу конфігурації, викликаючи cd config/. Однак скрипт працює лише тоді, коли його запускають із певної папки, і ламається, якщо його запустити з будь-якого іншого місця. У чому принципова різниця між використанням config/ та /etc/app/config/ і чому скрипт зламався?

Показати відповідь

Скрипт зламався, тому що він використовував відносний шлях (config/), який повністю залежить від вашої поточної робочої директорії на момент виконання скрипту. Якщо ви не перебуваєте в батьківській директорії для config/, система не знайде її, і скрипт зазнає невдачі. Навпаки, /etc/app/config/ — це абсолютний шлях. Абсолютні шляхи починаються з кореневої директорії (/) і вказують точне, однозначне розташування цілі, що гарантує знаходження папки скриптом незалежно від того, звідки він виконується.

Запитання 6: Ви розслідуєте інцидент безпеки. Чутливий файл, що містить електронні адреси клієнтів, має рядок прав доступу -rw-r-----. Власником файлу є користувач admin, а файл належить групі support. Якщо до групи support приєднається новий користувач, які саме дії він зможе виконувати з цим файлом і що завадить йому змінити його?

Показати відповідь

Користувач із групи support може лише читати вміст файлу, оскільки сегмент прав для групи — r--. Він не може змінювати або видаляти вміст, оскільки право на запис (w) для групи відсутнє. Тільки власник файлу (admin) має права і на читання, і на запис (rw-). Такий поділ гарантує, що співробітники служби підтримки можуть переглядати необхідну інформацію для допомоги клієнтам, не маючи можливості випадково змінити чи пошкодити чутливі дані.

Запитання 7: Продуктивний вузол Kubernetes виходить із ладу, а файл системного журналу /var/log/syslog розрісся до понад 500 000 рядків. Вам потрібно швидко визначити помилку, яка сталася безпосередньо перед падінням. Яку команду вам слід використати для перегляду файлу і чому запуск cat /var/log/syslog був би катастрофічним вибором у цьому сценарії?

Показати відповідь

Вам слід використати tail -n 50 /var/log/syslog (або подібну), щоб переглянути лише кінець файлу. Використання cat було б катастрофічним вибором, оскільки воно спробувало б вивести всі 500 000 рядків у ваш термінал одночасно. Це б перевантажило ваш екран, заморозило сесію термінала і зробило б абсолютно неможливим пошук критичних повідомлень про помилки, захованих у самому низу файлу, де записані останні події. Команда tail існує саме для таких випадків, дозволяючи вам ефективно перевіряти найсвіжіші системні логи.


Практична вправа: Побудова вашої першої структури директорій

Розділ «Практична вправа: Побудова вашої першої структури директорій»

Створити структуру директорій, додати файли, прочитати їх та перевірити права доступу — і все це через термінал.

  1. Перейдіть у вашу домашню директорію:
Terminal window
$ cd ~
$ pwd

Підтвердьте, що ви бачите шлях до своєї домашньої директорії.

  1. Створіть структуру директорій проєкту:
Terminal window
$ mkdir -p kubedojo-practice/recipes/appetizers
$ mkdir -p kubedojo-practice/recipes/main-courses
$ mkdir -p kubedojo-practice/recipes/desserts
  1. Зайдіть у неї:
Terminal window
$ cd kubedojo-practice
$ ls

Ви повинні побачити: recipes

  1. Створіть кілька файлів:
Terminal window
$ touch recipes/appetizers/bruschetta.txt
$ touch recipes/main-courses/pasta-carbonara.txt
$ touch recipes/desserts/tiramisu.txt
  1. Додайте вміст у файл (ми використаємо echo з > для запису у файл):
Terminal window
$ echo "Ingredients: bread, tomatoes, basil, olive oil" > recipes/appetizers/bruschetta.txt
$ echo "Ingredients: pasta, eggs, pancetta, parmesan" > recipes/main-courses/pasta-carbonara.txt
$ echo "Ingredients: coffee, mascarpone, ladyfingers, cocoa" > recipes/desserts/tiramisu.txt

Символ > означає “направити вивід у цей файл” замість відображення на екрані. Уявіть це як переспрямування відповіді шеф-кухаря: замість того, щоб сказати її вголос, він записує її на картку з рецептом.

  1. Прочитайте файли:
Terminal window
$ cat recipes/appetizers/bruschetta.txt
$ head recipes/main-courses/pasta-carbonara.txt
$ tail recipes/desserts/tiramisu.txt
  1. Перевірте права доступу:

Зупиніться та подумайте: Перш ніж запустити наступну команду, який рядок прав доступу ви очікуєте побачити для файлу bruschetta.txt? (Підказка: ви його створили, отже, ви — власник. Чи можете ви читати та писати в нього?)

Terminal window
$ ls -l recipes/appetizers/

Ви повинні побачити рядок прав доступу для вашого файлу bruschetta.

  1. Перевірте наявність прихованих файлів у вашій домашній директорії:

Зупиніться та подумайте: Якби ви запустили просто ls ~ без прапора -a, чи побачили б ви файли на кшталт .bashrc або .config? Чому так або чому ні?

Terminal window
$ ls -a ~

Шукайте файли, що починаються з . — це ваші dot-файли!

  1. Попереміщуйтеся між директоріями:
Terminal window
$ cd recipes/desserts
$ pwd # Де ви?
$ cd .. # Перейти на рівень вгору
$ pwd # А зараз де?
$ cd ~ # Йти додому
$ pwd # Знову вдома

Ви завершили цю вправу, якщо ви можете:

  • Переходити в домашню директорію за допомогою cd ~
  • Створювати вкладені директорії за допомогою mkdir -p
  • Створювати файли за допомогою touch
  • Записувати вміст у файли за допомогою echo "text" > file
  • Читати файли за допомогою cat, head та tail
  • Перевіряти права доступу до файлів за допомогою ls -l
  • Переглядати приховані файли за допомогою ls -a
  • Навігувати за допомогою cd, cd .. та cd ~

Ви щойно використали інструмент, яким досвідчені інженери користуються щодня. Ви на своєму місці.


Тепер ви вмієте навігувати файловою системою, створювати файли та директорії, читати файли та розумієте права доступу. Кухня починає ставати знайомою.

Наступний модуль: Модуль 0.5: Редагування файлів — навчіться власне наповнювати файли вмістом за допомогою текстового редактора, який працює прямо у вашому терміналі.