Модуль 0.3: Перші команди термінала
Складність:
[ШВИДКО]— Слідкуйте та друкуйте те, що бачитеЧас на проходження: 25 хвилин
Попередні вимоги: Модуль 0.1 — Що таке комп’ютер?
Що ви зможете зробити
Розділ «Що ви зможете зробити»Після цього модуля ви зможете:
- Навігувати файловою системою за допомогою
pwd,lsтаcd, не гублячись - Створити файли та директорії, а також пояснити різницю між
cpтаmv - Видалити файли безпечно за допомогою
rmта пояснити, чому немає можливості скасувати дію - Поєднувати команди за допомогою пайпів (
|) для фільтрації та пошуку виводу
Чому це важливо
Розділ «Чому це важливо»Термінал — це те, як професіонали розмовляють із комп’ютерами. Натискання кнопок у графічному інтерфейсі підходить для повсякденних завдань, але коли вам потрібно керувати серверами, автоматизувати роботу або використовувати Kubernetes, термінал стає вашим основним інструментом.
Ось у чому річ: термінал не складніший за графічний інтерфейс. Він просто інший. Замість того, щоб натиснути на папку, щоб відкрити її, ви вводите команду. Замість того, щоб перетягнути файл, щоб перемістити його, ви вводите команду. Ті самі дії, інший метод.
До кінця цього модуля ви знатимете 9 команд, які охоплюють близько 80% повсякденної роботи в терміналі.
Відкриття термінала
Розділ «Відкриття термінала»Перш ніж ми почнемо, вам потрібно власне відкрити термінал.
macOS: Натисніть Cmd + Space, введіть “Terminal”, натисніть Enter. (Або знайдіть його у Applications > Utilities > Terminal.)
Windows: Знайдіть “PowerShell” у меню “Пуск”. (Більшість команд нижче працюють у PowerShell. Для повної сумісності встановіть Windows Terminal та WSL — але не турбуйтеся про це сьогодні.)
Linux: Натисніть Ctrl + Alt + T у більшості систем або знайдіть “Terminal” у своїх програмах.
Ви повинні побачити щось подібне:
username@computername ~ $Цей символ $ (або % на деяких комп’ютерах Mac) є запитом (prompt). Це означає, що термінал чекає, поки ви щось введете. Уявіть, що персонал кухні каже: «Замовлення, будь ласка!»
Ваша файлова система: План ресторану
Розділ «Ваша файлова система: План ресторану»Перш ніж ми почнемо запускати команди, вам потрібно зрозуміти одну річ: ваш комп’ютер організовує файли у вигляді деревоподібної структури. Уявіть це як кімнати в будівлі.
/ (корінь — сама будівля)├── Users/│ └── yourname/ ← Це ваша "домашня директорія"│ ├── Desktop/│ ├── Documents/│ ├── Downloads/│ └── Pictures/├── Applications/└── System/Кожен файл живе десь у цьому дереві. Команди дозволяють вам переміщатися по дереву, бачити, що в кожній кімнаті, а також створювати або видаляти речі.
Команда 1: pwd — «Де я?»
Розділ «Команда 1: pwd — «Де я?»»pwd розшифровується як Print Working Directory (Вивести робочу директорію). Вона каже вам, де ви перебуваєте прямо зараз.
Уявіть, що ви запитуєте: «У якій я кімнаті?»
pwdОчікуваний результат:
/Users/yourname(У Linux це може бути /home/yourname. У Windows PowerShell — щось на кшталт C:\Users\yourname.)
Це ваша домашня директорія — ваш особистий простір у комп’ютері. Це як ваш приватний кабінет у ресторані.
Коли використовувати: Щоразу, коли ви не впевнені, де перебуваєте. Навіть досвідчені інженери постійно вводять pwd. Немає нічого соромного в тому, щоб перевірити.
Команда 2: ls — «Що тут?»
Розділ «Команда 2: ls — «Що тут?»»ls розшифровується як List (Список). Вона показує, що знаходиться у вашій поточній директорії (кімнаті).
lsОчікуваний результат (ваш буде іншим):
Desktop Documents Downloads Music PicturesХочете більше деталей? Додайте прапорець -l (це мала літера L, від “long format” — довгий формат):
ls -lОчікуваний результат:
drwx------ 4 yourname staff 128 Mar 15 10:30 Desktopdrwx------ 5 yourname staff 160 Mar 20 09:15 Documentsdrwx------ 12 yourname staff 384 Mar 22 14:45 DownloadsПоки що не турбуйтеся про розуміння кожної колонки. Найважливіші частини — це назва (крайня справа) та дата (коли файл був змінений востаннє).
Спробуйте самі: Запустіть
lsу вашій домашній директорії. Тепер запустітьls -l. Яку додаткову інформацію ви бачите? Ви повинні помітити дати, розміри та деякі загадкові літери зліва. Не хвилюйтеся про те, щоб зрозуміти все це зараз — просто зауважте, що прапорець-lдає вам більше деталей, ніж звичайнийls.
Хочете бачити також приховані файли? (Файли, що починаються з крапки, як-от .bashrc, за замовчуванням приховані.)
ls -la-a означає “all” (усі) — показати все, включаючи приховані файли.
Команда 3: cd — «Піти кудись»
Розділ «Команда 3: cd — «Піти кудись»»cd розшифровується як Change Directory (Змінити директорію). Вона переміщує вас в іншу кімнату.
cd DocumentsТепер перевірте, де ви перебуваєте:
pwdРезультат:
/Users/yourname/DocumentsВи перемістилися! Тепер ви “всередині” папки Documents.
Зупиніться та подумайте: Якщо
cd Documentsпереміщує вас вперед у папку Documents, яку команду, на вашу думку, слід використати, щоб повернутися назад?
Повернення назад: cd ..
Розділ «Повернення назад: cd ..»Символ .. означає “батьківську директорію” — кімнату, яка містить цю кімнату.
cd ..pwdРезультат:
/Users/yournameВи повернулися у свою домашню директорію.
Повернення додому: cd ~
Розділ «Повернення додому: cd ~»Незалежно від того, де ви перебуваєте у файловій системі, cd ~ поверне вас додому. Символ ~ (називається “тильда”) — це скорочення для вашої домашньої директорії.
cd ~Це як мати кнопку «повернутися на базу». Використовуйте її щоразу, коли заблукаєте.
Перехід у конкретне місце: cd /шлях/до/місця
Розділ «Перехід у конкретне місце: cd /шлях/до/місця»Ви можете стрибнути безпосередньо в будь-яке місце, ввівши повний шлях:
cd /tmppwdРезультат:
/tmpТепер поверніться додому:
cd ~Команда 4: mkdir — «Побудувати нову кімнату»
Розділ «Команда 4: mkdir — «Побудувати нову кімнату»»mkdir розшифровується як Make Directory (Створити директорію). Вона створює нову папку.
mkdir my-first-folderПеревірте, чи це спрацювало:
lsВи повинні побачити my-first-folder у списку.
Створення вкладених папок: mkdir -p
Розділ «Створення вкладених папок: mkdir -p»Що, якщо ви хочете створити папку всередині папки всередині папки? Прапорець -p (від “parents” — батьки) створює весь шлях за один раз:
mkdir -p restaurant/kitchen/prep-areaЦе створює три папки, вкладені одна в одну, навіть якщо restaurant та kitchen ще не існувало.
Команда 5: touch — «Створити порожній файл»
Розділ «Команда 5: touch — «Створити порожній файл»»touch створює порожній файл. (Технічно вона оновлює часову мітку файлу, але якщо файл не існує, вона його створює.)
touch menu.txtПеревірка:
lsВи побачите menu.txt у своєму списку. Він порожній — просто чистий аркуш паперу, що чекає, поки на ньому щось напишуть.
Команда 6: cp — «Зробити копію файла»
Розділ «Команда 6: cp — «Зробити копію файла»»cp розшифровується як Copy (Копіювати). Вона створює дублікат файлу.
cp menu.txt menu-backup.txtТепер у вас є два файли: оригінал і копія.
lsРезультат:
menu-backup.txt menu.txt my-first-folder restaurantЩоб скопіювати файл у папку:
cp menu.txt restaurant/Щоб скопіювати цілу папку (і все, що всередині), використовуйте -r (від “recursive” — рекурсивно, що означає «цю папку та все в ній»):
cp -r restaurant restaurant-copyКоманда 7: mv — «Перемістити або перейменувати»
Розділ «Команда 7: mv — «Перемістити або перейменувати»»mv розшифровується як Move (Перемістити). Вона робить дві речі:
Переміщення файлу в іншу папку:
mv menu-backup.txt restaurant/Файлу більше немає тут — його перемістили в папку restaurant. На відміну від cp, оригінал не залишається на місці.
Перейменування файлу:
mv menu.txt daily-specials.txtФайл menu.txt зник. На його місці з’явився daily-specials.txt. Той же файл, нова назва. Переміщення та перейменування — це одна й та ж операція, ви просто змінюєте те, де файл знаходиться (або як він називається).
Команда 8: rm — «Викинути»
Розділ «Команда 8: rm — «Викинути»»Зупиніться та подумайте: Коли ви видаляєте файл, перетягуючи його в Кошик на робочому столі, куди він потрапляє? Ви все ще можете його відновити, правда? А тепер подумайте — що, на вашу думку, стається, коли ви видаляєте файл у терміналі? Чи є там Кошик? Зробіть припущення, перш ніж читати далі.
rm розшифровується як Remove (Видалити). Вона видаляє файл.
rm daily-specials.txtФайл зник.
УВАГА: Кошика не існує
Розділ «УВАГА: Кошика не існує»Це найважливіша річ у всьому цьому модулі:
rmне переміщує файли в кошик. Вона видаляє їх назавжди. Скасувати цю дію неможливо. Термінал не запитує «Ви впевнені?». Файл просто зникає.
Реальна історія з життя: У 1998 році студія Pixar ледь не втратила весь мультфільм Історія іграшок 2. Аніматор випадково запустив rm -r * у кореневій директорії проєкту. Оскільки в терміналі немає «Кошика», система негайно почала безповоротно видаляти моделі персонажів, оточення та анімацію. Вони вимкнули сервер, щоб зупинити процес, але 90% файлів фільму вже зникли. Вони врятувалися лише тому, що технічна директорка мала особисту резервну копію на домашньому комп’ютері! Це ілюструє нещадну силу rm — вона робить саме те, що ви їй кажете, негайно, не запитуючи, чи ви впевнені.
Щоб видалити папку та все, що всередині:
rm -r restaurant-copyПрапорець -r означає “recursive” (рекурсивно) — видалити цю папку та все, що вона містить. Будьте дуже обережні з цим.
Найнебезпечніша команда в обчислювальній техніці (НЕ ЗАПУСКАЙТЕ ЦЕ, просто знайте, що вона існує):
rm -rf / ← НІКОЛИ НЕ РОБІТЬ ЦЬОГО. Видаляє все на комп'ютері. Геть усе.Золоте правило: завжди двічі перевіряйте, що саме ви видаляєте, перш ніж натиснути Enter.
Команда 9: clear — «Очистити екран»
Розділ «Команда 9: clear — «Очистити екран»»Після виконання багатьох команд ваш екран стає захаращеним. clear очищає екран, щоб ви могли почати з чистого аркуша.
clearТепер ваш екран чистий. Нічого не було видалено — старий вивід просто прокрутився вгору поза межі видимості. Ви все ще можете прокрутити вгору, щоб побачити його.
Клавіатурне скорочення: У більшості терміналів Ctrl + L робить те саме.
Короткий довідник
Розділ «Короткий довідник»Тримайте це під рукою, поки ці команди не стануть вашою м’язовою пам’яттю:
| Команда | Що вона робить | Кухонна аналогія |
|---|---|---|
pwd | Показує, де ви перебуваєте | «У якій я кімнаті?» |
ls | Показує список того, що тут є | «Що на цій полиці?» |
cd | Переміщує в інше місце | «Перейти в іншу кімнату» |
mkdir | Створює нову папку | «Побудувати нову кімнату» |
touch | Створює порожній файл | «Покласти чистий папір на прилавок» |
cp | Копіює файл | «Відксерити цей рецепт» |
mv | Переміщує або перейменовує | «Переставити на іншу полицю» або «переклеїти етикетку» |
rm | Видаляє назавжди | «Знищити цей папір у шредері» (БЕЗ кошика!) |
clear | Очищає екран | «Протерти дошку» |
Коли профі використовують ці команди
Розділ «Коли профі використовують ці команди»Можливо, вам цікаво, чи справді професіонали щодня використовують ці базові команди. Безумовно. Ось як вони виглядають у реальному світі:
- DevOps-інженер використовує
mkdir -p, щоб миттєво створити ідентичні структури директорій для розгортання на 50 серверах одночасно. - SRE (Site Reliability Engineer) використовує
ls -lt | headпід час серйозного збою сайту, щоб миттєво знайти файл конфігурації, який був змінений останнім і міг спричинити крах. - Системний адміністратор постійно використовує
cd ~таpwd, щоб зорієнтуватися після перемикання між десятками різних серверних середовищ.
Чесний вибір: Коли використовувати графічний інтерфейс
Розділ «Чесний вибір: Коли використовувати графічний інтерфейс»Будьмо чесними: термінал — не найкращий інструмент для всього. Вам обов’язково варто скористатися графічним менеджером файлів (як-от Finder або Windows Explorer), коли вам потрібно:
- Масове візуальне сортування: Вам потрібно візуально переглянути та відсортувати сотні фотографій або дизайн-активів.
- Робочі процеси drag-and-drop: Ви перетягуєте файли між різними програмами, наприклад, вставляєте зображення у веббраузер.
- Швидкий перегляд: Ви хочете натиснути пробіл, щоб швидко переглянути відео або PDF, не відкриваючи повну програму.
Використовуйте термінал, коли вам потрібна точність, автоматизація або віддалений доступ. Використовуйте графічний інтерфейс, коли вам потрібна візуальна інтуїція. Професіонали використовують і те, і інше.
Чи знали ви?
Розділ «Чи знали ви?»-
Термінал з’явився на десятиліття раніше за мишу. Комп’ютери використовували лише текстові інтерфейси з 1960-х до середини 1980-х років. Графічний інтерфейс із мишею та вікнами, до якого ви звикли, став популярним завдяки Apple Macintosh у 1984 році. Коли ви використовуєте термінал, ви використовуєте оригінальний спосіб спілкування людей із комп’ютерами.
-
ls— одна з найстаріших команд, які досі використовуються. Вона походить з 1961 року з операційної системи MIT Compatible Time-Sharing System (CTSS), де вона називаласяLISTF. Сучаснаlsз’явилася в першій версії Unix у 1971 році. Ви використовуєте команду, якій понад 50 років. -
Символ
~(тильда) для домашньої директорії з’явився через випадковість на клавіатурі. На ранніх терміналах клавіші Home та~були на одній фізичній клавіші. Ця традиція закріпилася, і тепер кожен термінал у світі використовує~для позначення домашньої директорії.
Бонус: Поєднання команд через пайпи (Pipes)
Розділ «Бонус: Поєднання команд через пайпи (Pipes)»Це бонусний розділ — ви можете швидко переглянути його зараз і повернутися до нього пізніше. Вам не потрібно опановувати це сьогодні.
Іноді ви хочете взяти вивід однієї команди та передати його іншій команді. Саме це робить пайп (pipe) (|).
Кухонна аналогія: Уявіть це як складальну лінію. На одній станції нарізають овочі, а потім передають їх далі по лінії на наступну станцію, де їх готують. Кожна станція виконує одну роботу і передає результат.
Символ | (зазвичай знаходиться над клавішею Enter/Return, вводиться за допомогою Shift + Backslash) відправляє вивід команди, що стоїть ліворуч від нього, у команду, що стоїть праворуч.
Показати лише перші 5 файлів:
ls | head -5ls виводить список усього, але head -5 бере лише перші 5 рядків. Корисно, коли в папці сотні файлів.
Пошук слова всередині файлу:
cat menu.txt | grep "pasta"cat відображає вміст файлу, а grep "pasta" фільтрує його, щоб показати лише ті рядки, які містять слово “pasta”. (Ви будете використовувати grep ДУЖЕ багато у своїй кар’єрі.)
Знайти попередню команду, яку ви вводили:
history | grep "mkdir"history показує кожну введену вами команду, а grep "mkdir" відфільтровує їх лише до тих, що містили “mkdir”. Дуже зручно, коли ви не можете згадати точну команду, яку запускали раніше.
Ви отримаєте більше практики з пайпами в міру проходження навчальної програми. Наразі просто пам’ятайте: | з’єднує команди, як станції на складальній лінії.
Типові помилки
Розділ «Типові помилки»| Помилка | Чому це проблема | Що робити замість цього |
|---|---|---|
Використання rm без попередньої перевірки | Файли видаляються назавжди — без можливості скасування | Спочатку запустіть ls, щоб побачити, що ви збираєтеся видалити |
Забування про -r під час копіювання/видалення папок | cp folder newname не спрацює для директорій | Використовуйте cp -r folder newname або rm -r folder |
| Пробіли в іменах файлів | mkdir my folder створить ДВІ папки: “my” та “folder” | Використовуйте лапки: mkdir "my folder" або дефіси: mkdir my-folder |
| Втрата орієнтації у файловій системі | Ви забуваєте, де перебуваєте, і створюєте файли не в тому місці | Часто вводьте pwd. Використовуйте cd ~, щоб повернутися додому, якщо заблукали |
| Неправильне введення команд і розчарування | Друкарські помилки трапляються з кожним щодня | Використовуйте клавішу “стрілка вгору”, щоб викликати останню команду і виправити її |
Контрольні запитання
Розділ «Контрольні запитання»-
Ви запустили
mkdir projects, але папка з’явилася в абсолютно несподіваному місці. Яку команду слід було запустити ПЕРЕДmkdirі чому?Відповідь
Вам слід було спочатку запустити `pwd`, щоб перевірити, де ви перебуваєте. `mkdir` створює папку у вашій поточній робочій директорії, і якщо ви раніше перейшли в якесь несподіване місце, не усвідомлюючи цього, папка опиниться не там, де треба. Це помилка №1 серед новачків — завжди знайте, де ви перебуваєте, перш ніж щось створювати або видаляти. Запустіть `pwd`, переконайтеся, що ви в потрібному місці, а потім продовжуйте. -
Вам потрібно реорганізувати папку вашого проєкту. Ви хочете залишити оригінальний файл логотипа в папці ‘assets’, але вам також потрібна його версія в папці ‘public’. Пізніше ви розумієте, що файл конфігурації знаходиться не в тій директорії і його потрібно перемістити, не залишаючи дубліката. Які команди ви використаєте для кожного завдання і чому?
Відповідь
Для файлу логотипа ви використовуєте `cp`, оскільки вам потрібен дублікат. `cp` (copy) створює другий ідентичний файл у місці призначення, залишаючи оригінал недоторканим, що ідеально підходить для збереження вашого основного активу в безпеці. Для файлу конфігурації ви використовуєте `mv`, оскільки його потрібно перемістити, не залишаючи зайвого дубліката. `mv` (move) видаляє файл з його початкового місця і розміщує його в новому, зберігаючи структуру вашої директорії чистою. -
Ви чистите старі лог-файли у своєму терміналі і випадково вводите
rm production-db.sqlзамістьrm production.log. Ви негайно натискаєтеCtrl+Zі шукаєте кнопку «Скасувати» або Кошик, щоб відновити резервну копію бази даних. Що станеться далі і чому?Відповідь
Ви не зможете відновити файл резервної копії бази даних. Коли ви видаляєте файл за допомогою `rm` у терміналі, він не переміщується в тимчасовий Кошик, як це відбувається в графічному інтерфейсі. Замість цього файл назавжди і негайно видаляється з файлової системи. За замовчуванням немає вбудованої функції скасування або запиту на підтвердження, тому ви завжди повинні двічі перевіряти свої команди, перш ніж натиснути Enter. -
Ви починаєте новий вебпроєкт і вам потрібно відразу створити глибоку структуру директорій
app/frontend/components/buttons/, але жодної з цих папок ще не існує. Ви пробуєтеmkdir app/frontend/components/buttons/, але термінал видає помилку. Яку команду слід використати натомість і чому перша спроба була невдалою?Відповідь
Вам слід використати `mkdir -p app/frontend/components/buttons/`, щоб створити всю структуру. Звичайна команда `mkdir` у цьому сценарії зазнає невдачі, оскільки вона може створити нову папку лише в тому разі, якщо її батьківська директорія вже існує. Додаючи прапорець `-p` (parents), ви даєте команду автоматично створити всі відсутні батьківські директорії за вказаним шляхом. Це позбавляє вас необхідності запускати команду чотири рази окремо. -
Ви цілу годину переглядали глибокі лог-файли сервера і раптом розумієте, що поняття не маєте, в якій директорії зараз перебуваєте, а вам потрібно повернутися в основну папку користувача, щоб запустити скрипт. Які дві команди ви використаєте, щоб з’ясувати своє місцезнаходження і повернутися в основну папку, і чому?
Відповідь
Спочатку ви використовуєте команду `pwd`, щоб вивести вашу робочу директорію, яка підкаже ваше точне поточне місцезнаходження у файловій системі, щоб ви могли зорієнтуватися. Потім ви використовуєте команду `cd ~`, щоб миттєво повернутися в домашню директорію вашого користувача. Символ тильди (`~`) — це універсальне скорочення, яке завжди представляє вашу домашню директорію, незалежно від того, як глибоко ви зараз перебуваєте. Ця комбінація швидко відновлює ваш контекст і повертає вас у безпечне, відоме місце.
Практична вправа: Створення структури файлів ресторану
Розділ «Практична вправа: Створення структури файлів ресторану»Давайте попрактикуємо все, чого ви навчилися, створивши структуру файлів для нашого уявного ресторану.
Крок 1: Перейдіть у свою домашню директорію
Розділ «Крок 1: Перейдіть у свою домашню директорію»cd ~Крок 2: Створіть структуру ресторану
Розділ «Крок 2: Створіть структуру ресторану»mkdir -p restaurant/kitchen/prep-areamkdir -p restaurant/kitchen/cooking-stationsmkdir -p restaurant/dining-roommkdir -p restaurant/storage/pantrymkdir -p restaurant/storage/freezerКрок 3: Створіть кілька файлів
Розділ «Крок 3: Створіть кілька файлів»touch restaurant/kitchen/prep-area/chopping-board.txttouch restaurant/kitchen/cooking-stations/grill.txttouch restaurant/kitchen/cooking-stations/oven.txttouch restaurant/dining-room/table-1.txttouch restaurant/dining-room/table-2.txttouch restaurant/storage/pantry/flour.txttouch restaurant/storage/pantry/sugar.txttouch restaurant/storage/freezer/ice-cream.txtКрок 4: Подивіться на те, що ви побудували
Розділ «Крок 4: Подивіться на те, що ви побудували»ls restaurant/ls restaurant/kitchen/ls restaurant/kitchen/cooking-stations/Очікуваний результат для останньої команди:
grill.txt oven.txtКрок 5: Перемістіть деякі речі
Розділ «Крок 5: Перемістіть деякі речі»Морозиво тане! Перемістіть його з морозилки в зону підготовки:
mv restaurant/storage/freezer/ice-cream.txt restaurant/kitchen/prep-area/Перевірте:
ls restaurant/kitchen/prep-area/Очікуваний результат:
chopping-board.txt ice-cream.txtКрок 6: Зробіть резервну копію меню
Розділ «Крок 6: Зробіть резервну копію меню»touch restaurant/menu.txtcp restaurant/menu.txt restaurant/menu-backup.txtls restaurant/Крок 7: Приберіть за собою
Розділ «Крок 7: Приберіть за собою»Коли закінчите експериментувати:
rm -r restaurantПеревірте, що папку видалено:
ls | grep restaurantВідсутність виводу означає, що папку видалено.
Критерії успіху: Ви створили вкладену структуру директорій, створили в ній файли, переміщували файли між директоріями, скопіювали файл і все прибрали. І все це без жодного натискання кнопки миші.
Наступний модуль
Розділ «Наступний модуль»У Модулі 0.4: Файли та директорії ви зануритеся глибше в те, як ваш комп’ютер організовує все у файли та папки, і як навігувати ними як професіонал.
Ви щойно використали інструмент, який досвідчені інженери використовують щодня. Ви на своєму місці.