Модуль 0.4: Файли та директорії
Складність:
[ШВИДКО]— Абсолютний початківецьЧас на виконання: 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
Розділ «На macOS»macOS дещо відрізняється. Ваша домашня директорія знаходиться за шляхом /Users/yourname/ замість /home/yourname/. Але ~ усе одно працює як скорочення, тому вам рідко доводиться про це думати.
Навігація: Де я знаходжуся?
Розділ «Навігація: Де я знаходжуся?»Коли ви відкриваєте термінал, ви “стоїте” в певній директорії — зазвичай у вашій домашній директорії. Термінал не показує вам візуальну карту; вам потрібно запитати про це.
pwd — Print Working Directory
Розділ «pwd — Print Working Directory»“Де я зараз перебуваю?”
$ pwd/home/yournamepwd означає Print Working Directory (Вивести робочу директорію). Він показує повний шлях до місця, де ви зараз перебуваєте.
Аналогія з кухнею: “В якому приміщенні я стою?” —
pwdвідповідає на це питання.
ls — List Contents
Розділ «ls — List Contents»“Що є в цьому приміщенні?”
$ lsDesktop Documents Downloads Music Picturesls означає list (список). Він показує файли та директорії у вашому поточному місці.
Ви можете додати опції, щоб побачити більше деталей:
$ ls -lПрапор -l означає “довгий формат” (long format). Тепер ви побачите щось на кшталт:
drwxr-xr-x 2 yourname yourname 4096 Mar 23 10:00 Desktopdrwxr-xr-x 3 yourname yourname 4096 Mar 23 09:45 Documents-rw-r--r-- 1 yourname yourname 220 Mar 23 08:30 notes.txtНе панікуйте — ми розкодуємо це трохи пізніше.
cd — Change Directory
Розділ «cd — Change Directory»“Перейти до іншої кімнати.”
$ cd Documents$ pwd/home/yourname/Documentscd означає change directory (змінити директорію). Ви кажете йому, куди йти, і він переносить вас туди.
Деякі важливі скорочення для cd:
| Команда | Куди вона вас переносить | Аналогія |
|---|---|---|
cd ~ або просто cd | Ваша домашня директорія | ”Повернутися до мого робочого місця” |
cd .. | На один рівень вгору (батьківська директорія) | “Перейти до приміщення, яке містить це приміщення” |
cd - | Остання директорія, в якій ви були | ”Повернутися туди, де я щойно був” |
cd / | Коренева директорія | ”Перейти на перший поверх” |
Абсолютні та відносні шляхи
Розділ «Абсолютні та відносні шляхи»Це важлива концепція. Є два способи описати, де знаходиться файл або директорія:
Абсолютний шлях (Повна адреса)
Розділ «Абсолютний шлях (Повна адреса)»Абсолютний шлях починається від кореня (/) і вказує повне розташування:
/home/yourname/Documents/report.txtЦе як вказати повну поштову адресу: вул. Головна, 123, Київ, 01001, Україна. Незалежно від того, де ви знаходитесь у світі, ця адреса вказує на одне конкретне місце.
Відносний шлях (Напрямок звідси)
Розділ «Відносний шлях (Напрямок звідси)»Відносний шлях описує розташування відносно того місця, де ви перебуваєте зараз:
Documents/report.txtЦе як сказати: “Два квартали ліворуч, потім один квартал вгору”. Ці вказівки працюють лише тоді, коли ви знаєте початкову точку.
Приклад
Розділ «Приклад»$ 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 — Показати весь файл»$ cat notes.txtЦе моя перша нотатка.Я написав її в терміналі!cat означає “concatenate” (з’єднувати), але більшість людей використовують його для відображення вмісту файлу. Він виводить увесь файл на ваш екран.
Аналогія з кухнею:
cat— це як читати всю картку з рецептом вголос від початку до кінця.
Коли використовувати: Невеликі файли (менше 50 рядків).
head — Показати перші 10 рядків
Розділ «head — Показати перші 10 рядків»$ head long-file.txtЦе показує лише перші 10 рядків. Ви можете змінити кількість:
$ head -n 5 long-file.txt # Показати перші 5 рядківАналогія з кухнею: “Просто прочитайте мені назву та інгредієнти — мені не потрібен повний рецепт”.
tail — Показати останні 10 рядків
Розділ «tail — Показати останні 10 рядків»$ tail log-file.txtПоказує останні 10 рядків. Надзвичайно корисно для читання лог-файлів, де найновіші записи знаходяться внизу.
$ tail -n 20 log-file.txt # Показати останні 20 рядківАналогія з кухнею: “Якими були останні кілька замовлень, що надійшли?”
Створення файлів та директорій
Розділ «Створення файлів та директорій»mkdir — Створити директорію
Розділ «mkdir — Створити директорію»$ mkdir recipesЦе створює нову директорію під назвою recipes у вашому поточному місці.
Щоб створити вкладені директорії (директорію всередині директорії, яка в іншій директорії):
$ mkdir -p recipes/italian/pastaПрапор -p означає “створювати батьківські директорії за потреби” (parents). Без нього ви отримали б помилку, якби recipes/ або recipes/italian/ ще не існувало.
touch — Створити порожній файл
Розділ «touch — Створити порожній файл»$ touch shopping-list.txtЦе створює новий порожній файл. (Якщо файл уже існує, команда оновить час останнього доступу до файлу, не змінюючи його вмісту).
Аналогія з кухнею:
mkdir— це виготовлення нової шухляди.touch— це розміщення в ній порожньої картки для рецепта.
Приховані файли (Dotfiles)
Розділ «Приховані файли (Dotfiles)»Деякі файли та директорії починаються з крапки (.). Вони називаються прихованими файлами або dot-файлами.
$ lsDocuments 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 Desktopd: Це директоріяrwx: Власник може читати, писати та входитиr-x: Група може читати та входити (але не додавати/видаляти файли)r-x: Інші можуть читати та входити (але не додавати/видаляти файли)
Аналогія з кухнею: Права доступу — це як хто має який ключ. Шеф-кухар (власник) має ключ від усього. Су-шефи (група) можуть відкривати більшість шухляд. Офіціанти (інші) можуть лише заглядати через вікно.
Історія з життя: Один розробник якось встановив файл конфігурації бази даних, що містив паролі для продуктивного середовища, як доступний для читання всім (
-rw-rw-rw-). Зловмисник, який отримав доступ низького рівня до сервера, зміг просто за допомогоюcatпрочитати файл конфігурації, отримати облікові дані та викрасти всю базу даних клієнтів. Правильні права доступу (-rw-------) зупинили б цю атаку на самому початку.
Поки що не турбуйтеся про зміну прав — просто знайте, як їх читати. Ми розберемо chmod, коли це знадобиться.
Чи знали ви?
Розділ «Чи знали ви?»
Коренева директорія
/називається “коренем” (root), тому що дерево директорій росте вниз. Як і у справжнього дерева, корінь знаходиться зверху, а гілки розходяться нижче. Кожен файл на вашому комп’ютері знаходиться десь на гілці, яка з’єднується з/.Скорочення
~було обрано через розкладку клавіатури. На терміналі ADM-3A (випущеному в 1970-х роках, одному з перших відеотерміналів), клавіша “Home” була на тій самі ж клавіші, що й символ~. Так~став скороченням для домашньої директорії, і це закріпилося на понад 50 років.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 існує саме для таких випадків, дозволяючи вам ефективно перевіряти найсвіжіші системні логи.
Практична вправа: Побудова вашої першої структури директорій
Розділ «Практична вправа: Побудова вашої першої структури директорій»Мета
Розділ «Мета»Створити структуру директорій, додати файли, прочитати їх та перевірити права доступу — і все це через термінал.
Кроки
Розділ «Кроки»- Перейдіть у вашу домашню директорію:
$ cd ~$ pwdПідтвердьте, що ви бачите шлях до своєї домашньої директорії.
- Створіть структуру директорій проєкту:
$ mkdir -p kubedojo-practice/recipes/appetizers$ mkdir -p kubedojo-practice/recipes/main-courses$ mkdir -p kubedojo-practice/recipes/desserts- Зайдіть у неї:
$ cd kubedojo-practice$ lsВи повинні побачити: recipes
- Створіть кілька файлів:
$ touch recipes/appetizers/bruschetta.txt$ touch recipes/main-courses/pasta-carbonara.txt$ touch recipes/desserts/tiramisu.txt- Додайте вміст у файл (ми використаємо
echoз>для запису у файл):
$ 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Символ
>означає “направити вивід у цей файл” замість відображення на екрані. Уявіть це як переспрямування відповіді шеф-кухаря: замість того, щоб сказати її вголос, він записує її на картку з рецептом.
- Прочитайте файли:
$ cat recipes/appetizers/bruschetta.txt$ head recipes/main-courses/pasta-carbonara.txt$ tail recipes/desserts/tiramisu.txt- Перевірте права доступу:
Зупиніться та подумайте: Перш ніж запустити наступну команду, який рядок прав доступу ви очікуєте побачити для файлу
bruschetta.txt? (Підказка: ви його створили, отже, ви — власник. Чи можете ви читати та писати в нього?)
$ ls -l recipes/appetizers/Ви повинні побачити рядок прав доступу для вашого файлу bruschetta.
- Перевірте наявність прихованих файлів у вашій домашній директорії:
Зупиніться та подумайте: Якби ви запустили просто
ls ~без прапора-a, чи побачили б ви файли на кшталт.bashrcабо.config? Чому так або чому ні?
$ ls -a ~Шукайте файли, що починаються з . — це ваші dot-файли!
- Попереміщуйтеся між директоріями:
$ 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: Редагування файлів — навчіться власне наповнювати файли вмістом за допомогою текстового редактора, який працює прямо у вашому терміналі.