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

Модуль 0.3: Перші команди термінала

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

Opens in Killercoda in a new tab

Складність: [ШВИДКО] — Слідкуйте та друкуйте те, що бачите

Час на проходження: 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 (Вивести робочу директорію). Вона каже вам, де ви перебуваєте прямо зараз.

Уявіть, що ви запитуєте: «У якій я кімнаті?»

Terminal window
pwd

Очікуваний результат:

/Users/yourname

(У Linux це може бути /home/yourname. У Windows PowerShell — щось на кшталт C:\Users\yourname.)

Це ваша домашня директорія — ваш особистий простір у комп’ютері. Це як ваш приватний кабінет у ресторані.

Коли використовувати: Щоразу, коли ви не впевнені, де перебуваєте. Навіть досвідчені інженери постійно вводять pwd. Немає нічого соромного в тому, щоб перевірити.


Команда 2: ls — «Що тут?»

Розділ «Команда 2: ls — «Що тут?»»

ls розшифровується як List (Список). Вона показує, що знаходиться у вашій поточній директорії (кімнаті).

Terminal window
ls

Очікуваний результат (ваш буде іншим):

Desktop Documents Downloads Music Pictures

Хочете більше деталей? Додайте прапорець -l (це мала літера L, від “long format” — довгий формат):

Terminal window
ls -l

Очікуваний результат:

drwx------ 4 yourname staff 128 Mar 15 10:30 Desktop
drwx------ 5 yourname staff 160 Mar 20 09:15 Documents
drwx------ 12 yourname staff 384 Mar 22 14:45 Downloads

Поки що не турбуйтеся про розуміння кожної колонки. Найважливіші частини — це назва (крайня справа) та дата (коли файл був змінений востаннє).

Спробуйте самі: Запустіть ls у вашій домашній директорії. Тепер запустіть ls -l. Яку додаткову інформацію ви бачите? Ви повинні помітити дати, розміри та деякі загадкові літери зліва. Не хвилюйтеся про те, щоб зрозуміти все це зараз — просто зауважте, що прапорець -l дає вам більше деталей, ніж звичайний ls.

Хочете бачити також приховані файли? (Файли, що починаються з крапки, як-от .bashrc, за замовчуванням приховані.)

Terminal window
ls -la

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


Команда 3: cd — «Піти кудись»

Розділ «Команда 3: cd — «Піти кудись»»

cd розшифровується як Change Directory (Змінити директорію). Вона переміщує вас в іншу кімнату.

Terminal window
cd Documents

Тепер перевірте, де ви перебуваєте:

Terminal window
pwd

Результат:

/Users/yourname/Documents

Ви перемістилися! Тепер ви “всередині” папки Documents.

Зупиніться та подумайте: Якщо cd Documents переміщує вас вперед у папку Documents, яку команду, на вашу думку, слід використати, щоб повернутися назад?

Повернення назад: cd ..

Розділ «Повернення назад: cd ..»

Символ .. означає “батьківську директорію” — кімнату, яка містить цю кімнату.

Terminal window
cd ..
Terminal window
pwd

Результат:

/Users/yourname

Ви повернулися у свою домашню директорію.

Повернення додому: cd ~

Розділ «Повернення додому: cd ~»

Незалежно від того, де ви перебуваєте у файловій системі, cd ~ поверне вас додому. Символ ~ (називається “тильда”) — це скорочення для вашої домашньої директорії.

Terminal window
cd ~

Це як мати кнопку «повернутися на базу». Використовуйте її щоразу, коли заблукаєте.

Перехід у конкретне місце: cd /шлях/до/місця

Розділ «Перехід у конкретне місце: cd /шлях/до/місця»

Ви можете стрибнути безпосередньо в будь-яке місце, ввівши повний шлях:

Terminal window
cd /tmp
Terminal window
pwd

Результат:

/tmp

Тепер поверніться додому:

Terminal window
cd ~

Команда 4: mkdir — «Побудувати нову кімнату»

Розділ «Команда 4: mkdir — «Побудувати нову кімнату»»

mkdir розшифровується як Make Directory (Створити директорію). Вона створює нову папку.

Terminal window
mkdir my-first-folder

Перевірте, чи це спрацювало:

Terminal window
ls

Ви повинні побачити my-first-folder у списку.

Створення вкладених папок: mkdir -p

Розділ «Створення вкладених папок: mkdir -p»

Що, якщо ви хочете створити папку всередині папки всередині папки? Прапорець -p (від “parents” — батьки) створює весь шлях за один раз:

Terminal window
mkdir -p restaurant/kitchen/prep-area

Це створює три папки, вкладені одна в одну, навіть якщо restaurant та kitchen ще не існувало.


Команда 5: touch — «Створити порожній файл»

Розділ «Команда 5: touch — «Створити порожній файл»»

touch створює порожній файл. (Технічно вона оновлює часову мітку файлу, але якщо файл не існує, вона його створює.)

Terminal window
touch menu.txt

Перевірка:

Terminal window
ls

Ви побачите menu.txt у своєму списку. Він порожній — просто чистий аркуш паперу, що чекає, поки на ньому щось напишуть.


Команда 6: cp — «Зробити копію файла»

Розділ «Команда 6: cp — «Зробити копію файла»»

cp розшифровується як Copy (Копіювати). Вона створює дублікат файлу.

Terminal window
cp menu.txt menu-backup.txt

Тепер у вас є два файли: оригінал і копія.

Terminal window
ls

Результат:

menu-backup.txt menu.txt my-first-folder restaurant

Щоб скопіювати файл у папку:

Terminal window
cp menu.txt restaurant/

Щоб скопіювати цілу папку (і все, що всередині), використовуйте -r (від “recursive” — рекурсивно, що означає «цю папку та все в ній»):

Terminal window
cp -r restaurant restaurant-copy

Команда 7: mv — «Перемістити або перейменувати»

Розділ «Команда 7: mv — «Перемістити або перейменувати»»

mv розшифровується як Move (Перемістити). Вона робить дві речі:

Переміщення файлу в іншу папку:

Terminal window
mv menu-backup.txt restaurant/

Файлу більше немає тут — його перемістили в папку restaurant. На відміну від cp, оригінал не залишається на місці.

Перейменування файлу:

Terminal window
mv menu.txt daily-specials.txt

Файл menu.txt зник. На його місці з’явився daily-specials.txt. Той же файл, нова назва. Переміщення та перейменування — це одна й та ж операція, ви просто змінюєте те, де файл знаходиться (або як він називається).


Команда 8: rm — «Викинути»

Розділ «Команда 8: rm — «Викинути»»

Зупиніться та подумайте: Коли ви видаляєте файл, перетягуючи його в Кошик на робочому столі, куди він потрапляє? Ви все ще можете його відновити, правда? А тепер подумайте — що, на вашу думку, стається, коли ви видаляєте файл у терміналі? Чи є там Кошик? Зробіть припущення, перш ніж читати далі.

rm розшифровується як Remove (Видалити). Вона видаляє файл.

Terminal window
rm daily-specials.txt

Файл зник.

УВАГА: Кошика не існує

Розділ «УВАГА: Кошика не існує»

Це найважливіша річ у всьому цьому модулі:

rm не переміщує файли в кошик. Вона видаляє їх назавжди. Скасувати цю дію неможливо. Термінал не запитує «Ви впевнені?». Файл просто зникає.

Реальна історія з життя: У 1998 році студія Pixar ледь не втратила весь мультфільм Історія іграшок 2. Аніматор випадково запустив rm -r * у кореневій директорії проєкту. Оскільки в терміналі немає «Кошика», система негайно почала безповоротно видаляти моделі персонажів, оточення та анімацію. Вони вимкнули сервер, щоб зупинити процес, але 90% файлів фільму вже зникли. Вони врятувалися лише тому, що технічна директорка мала особисту резервну копію на домашньому комп’ютері! Це ілюструє нещадну силу rm — вона робить саме те, що ви їй кажете, негайно, не запитуючи, чи ви впевнені.

Щоб видалити папку та все, що всередині:

Terminal window
rm -r restaurant-copy

Прапорець -r означає “recursive” (рекурсивно) — видалити цю папку та все, що вона містить. Будьте дуже обережні з цим.

Найнебезпечніша команда в обчислювальній техніці (НЕ ЗАПУСКАЙТЕ ЦЕ, просто знайте, що вона існує):

rm -rf / ← НІКОЛИ НЕ РОБІТЬ ЦЬОГО. Видаляє все на комп'ютері. Геть усе.

Золоте правило: завжди двічі перевіряйте, що саме ви видаляєте, перш ніж натиснути Enter.


Команда 9: clear — «Очистити екран»

Розділ «Команда 9: clear — «Очистити екран»»

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

Terminal window
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 файлів:

Terminal window
ls | head -5

ls виводить список усього, але head -5 бере лише перші 5 рядків. Корисно, коли в папці сотні файлів.

Пошук слова всередині файлу:

Terminal window
cat menu.txt | grep "pasta"

cat відображає вміст файлу, а grep "pasta" фільтрує його, щоб показати лише ті рядки, які містять слово “pasta”. (Ви будете використовувати grep ДУЖЕ багато у своїй кар’єрі.)

Знайти попередню команду, яку ви вводили:

Terminal window
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 ~, щоб повернутися додому, якщо заблукали
Неправильне введення команд і розчаруванняДрукарські помилки трапляються з кожним щодняВикористовуйте клавішу “стрілка вгору”, щоб викликати останню команду і виправити її

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

Розділ «Контрольні запитання»
  1. Ви запустили mkdir projects, але папка з’явилася в абсолютно несподіваному місці. Яку команду слід було запустити ПЕРЕД mkdir і чому?

    Відповідь Вам слід було спочатку запустити `pwd`, щоб перевірити, де ви перебуваєте. `mkdir` створює папку у вашій поточній робочій директорії, і якщо ви раніше перейшли в якесь несподіване місце, не усвідомлюючи цього, папка опиниться не там, де треба. Це помилка №1 серед новачків — завжди знайте, де ви перебуваєте, перш ніж щось створювати або видаляти. Запустіть `pwd`, переконайтеся, що ви в потрібному місці, а потім продовжуйте.
  2. Вам потрібно реорганізувати папку вашого проєкту. Ви хочете залишити оригінальний файл логотипа в папці ‘assets’, але вам також потрібна його версія в папці ‘public’. Пізніше ви розумієте, що файл конфігурації знаходиться не в тій директорії і його потрібно перемістити, не залишаючи дубліката. Які команди ви використаєте для кожного завдання і чому?

    Відповідь Для файлу логотипа ви використовуєте `cp`, оскільки вам потрібен дублікат. `cp` (copy) створює другий ідентичний файл у місці призначення, залишаючи оригінал недоторканим, що ідеально підходить для збереження вашого основного активу в безпеці. Для файлу конфігурації ви використовуєте `mv`, оскільки його потрібно перемістити, не залишаючи зайвого дубліката. `mv` (move) видаляє файл з його початкового місця і розміщує його в новому, зберігаючи структуру вашої директорії чистою.
  3. Ви чистите старі лог-файли у своєму терміналі і випадково вводите rm production-db.sql замість rm production.log. Ви негайно натискаєте Ctrl+Z і шукаєте кнопку «Скасувати» або Кошик, щоб відновити резервну копію бази даних. Що станеться далі і чому?

    Відповідь Ви не зможете відновити файл резервної копії бази даних. Коли ви видаляєте файл за допомогою `rm` у терміналі, він не переміщується в тимчасовий Кошик, як це відбувається в графічному інтерфейсі. Замість цього файл назавжди і негайно видаляється з файлової системи. За замовчуванням немає вбудованої функції скасування або запиту на підтвердження, тому ви завжди повинні двічі перевіряти свої команди, перш ніж натиснути Enter.
  4. Ви починаєте новий вебпроєкт і вам потрібно відразу створити глибоку структуру директорій app/frontend/components/buttons/, але жодної з цих папок ще не існує. Ви пробуєте mkdir app/frontend/components/buttons/, але термінал видає помилку. Яку команду слід використати натомість і чому перша спроба була невдалою?

    Відповідь Вам слід використати `mkdir -p app/frontend/components/buttons/`, щоб створити всю структуру. Звичайна команда `mkdir` у цьому сценарії зазнає невдачі, оскільки вона може створити нову папку лише в тому разі, якщо її батьківська директорія вже існує. Додаючи прапорець `-p` (parents), ви даєте команду автоматично створити всі відсутні батьківські директорії за вказаним шляхом. Це позбавляє вас необхідності запускати команду чотири рази окремо.
  5. Ви цілу годину переглядали глибокі лог-файли сервера і раптом розумієте, що поняття не маєте, в якій директорії зараз перебуваєте, а вам потрібно повернутися в основну папку користувача, щоб запустити скрипт. Які дві команди ви використаєте, щоб з’ясувати своє місцезнаходження і повернутися в основну папку, і чому?

    Відповідь Спочатку ви використовуєте команду `pwd`, щоб вивести вашу робочу директорію, яка підкаже ваше точне поточне місцезнаходження у файловій системі, щоб ви могли зорієнтуватися. Потім ви використовуєте команду `cd ~`, щоб миттєво повернутися в домашню директорію вашого користувача. Символ тильди (`~`) — це універсальне скорочення, яке завжди представляє вашу домашню директорію, незалежно від того, як глибоко ви зараз перебуваєте. Ця комбінація швидко відновлює ваш контекст і повертає вас у безпечне, відоме місце.

Практична вправа: Створення структури файлів ресторану

Розділ «Практична вправа: Створення структури файлів ресторану»

Давайте попрактикуємо все, чого ви навчилися, створивши структуру файлів для нашого уявного ресторану.

Крок 1: Перейдіть у свою домашню директорію

Розділ «Крок 1: Перейдіть у свою домашню директорію»
Terminal window
cd ~

Крок 2: Створіть структуру ресторану

Розділ «Крок 2: Створіть структуру ресторану»
Terminal window
mkdir -p restaurant/kitchen/prep-area
mkdir -p restaurant/kitchen/cooking-stations
mkdir -p restaurant/dining-room
mkdir -p restaurant/storage/pantry
mkdir -p restaurant/storage/freezer

Крок 3: Створіть кілька файлів

Розділ «Крок 3: Створіть кілька файлів»
Terminal window
touch restaurant/kitchen/prep-area/chopping-board.txt
touch restaurant/kitchen/cooking-stations/grill.txt
touch restaurant/kitchen/cooking-stations/oven.txt
touch restaurant/dining-room/table-1.txt
touch restaurant/dining-room/table-2.txt
touch restaurant/storage/pantry/flour.txt
touch restaurant/storage/pantry/sugar.txt
touch restaurant/storage/freezer/ice-cream.txt

Крок 4: Подивіться на те, що ви побудували

Розділ «Крок 4: Подивіться на те, що ви побудували»
Terminal window
ls restaurant/
ls restaurant/kitchen/
ls restaurant/kitchen/cooking-stations/

Очікуваний результат для останньої команди:

grill.txt oven.txt

Крок 5: Перемістіть деякі речі

Розділ «Крок 5: Перемістіть деякі речі»

Морозиво тане! Перемістіть його з морозилки в зону підготовки:

Terminal window
mv restaurant/storage/freezer/ice-cream.txt restaurant/kitchen/prep-area/

Перевірте:

Terminal window
ls restaurant/kitchen/prep-area/

Очікуваний результат:

chopping-board.txt ice-cream.txt

Крок 6: Зробіть резервну копію меню

Розділ «Крок 6: Зробіть резервну копію меню»
Terminal window
touch restaurant/menu.txt
cp restaurant/menu.txt restaurant/menu-backup.txt
ls restaurant/

Крок 7: Приберіть за собою

Розділ «Крок 7: Приберіть за собою»

Коли закінчите експериментувати:

Terminal window
rm -r restaurant

Перевірте, що папку видалено:

Terminal window
ls | grep restaurant

Відсутність виводу означає, що папку видалено.

Критерії успіху: Ви створили вкладену структуру директорій, створили в ній файли, переміщували файли між директоріями, скопіювали файл і все прибрали. І все це без жодного натискання кнопки миші.


У Модулі 0.4: Файли та директорії ви зануритеся глибше в те, як ваш комп’ютер організовує все у файли та папки, і як навігувати ними як професіонал.


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