Модуль 0.3: Перші команди в терміналі
Складність:
[ШВИДКО]- Слідкуйте та друкуйте те, що бачитеЧас на виконання: 25 хвилин
Передумови: Модуль 0.2: Що таке термінал? — Ви повинні вміти відкривати термінал і вводити команди.
Що ви зможете зробити
Розділ «Що ви зможете зробити»Після цього модуля ви зможете відпрацювати такі навички в реальній сесії термінала та пояснити, чому кожна команда є корисною, перш ніж покладатися на неї в наступних лабораторних роботах:
- Переміщуватися шляхами каталогів за допомогою
pwd,lsтаcd, а потім діагностувати, коли команда була виконана не в тому місці - Створювати папки та файли за допомогою
mkdir,touch,cpтаmv, а потім порівнювати поведінку копіювання та переміщення - Видаляти файли безпечно за допомогою
rm, оцінюючи ризики, підтверджуючи цілі та очищаючи лише потрібні шляхи - Поєднувати вивід команд за допомогою конвеєрів та фільтрів для перевірки файлів без відкриття графічної програми
Чому це важливо
Розділ «Чому це важливо»Гіпотетичний сценарій: ви дотримуєтесь інструкцій з налаштування для практичної лабораторії Kubernetes, і посібник каже вам створити теку конфігурації, скопіювати зразок файлу, перейменувати його та видалити стару версію. Інструкції виглядають простими, поки ви не усвідомите, що кожна команда діє у вашому поточному місцезнаходженні. Якщо ви перебуваєте в неправильній директорії, команда все одно може завершитися успішно, але файл опиниться в несподіваному місці, копія буде не там, де очікує наступний крок, або команда очищення видалить шлях, який ви хотіли зберегти.
Ось чому перші команди термінала — це не дрібниці. Це поверхня управління для майже кожного подальшого завдання в цьому навчальному плані: редагування маніфестів, збору логів, переміщення теками проєкту, запуску kubectl та перевірки того, що змінилося після команди. Термінал не є принципово складнішим за графічний інтерфейс; він просто менш візуальний і більш буквальний. Він робить рівно те, що ви просите, в тому місці, де ви перебуваєте, тому ваше перше завдання — навчитися орієнтуватися.
До кінця цього модуля ви попрактикуєте дев’ять команд, які охоплюють левову частку щоденної роботи в терміналі: pwd, ls, cd, mkdir, touch, cp, mv, rm та clear. Ви також побачите, чому конвеєри (pipes) є мостом від “я можу запустити одну команду” до “я можу швидко перевірити систему”. Це все ще модуль для початківців, але звички є професійними: перевіряти місцезнаходження перед дією, віддавати перевагу зворотним крокам, коли це можливо, і ставитися до видалення як до рішення, а не як до рефлексу.
Є ще одна причина, чому цей модуль важливий на ранньому етапі: помилки в терміналі часто виглядають як помилки інструментів. Учень запускає команду, бачить вивід, який не збігається з посібником, і припускає, що операційна система, курс або оболонка (shell) зламані. Дуже часто команда була правильною, але вона була запущена з неправильної директорії або діяла на інший файл, ніж уявляв учень. Найшвидший спосіб діагностувати такі моменти — це не складний трюк; це дисципліна ставити собі запитання: де ви перебуваєте, що тут є і що змінилося.
Вам також слід очікувати, що термінал спочатку буде здаватися трохи незручним, оскільки він дає менш візуальний зворотний зв’язок, ніж клікання по теках. Цей дискомфорт є нормальним, і він зникає в міру того, як покращується ваша ментальна модель. Мета цього модуля — не змусити вас швидко друкувати. Мета полягає в тому, щоб кожна команда здавалася зрозумілою: ви повинні знати, яке місцезнаходження вона використовує, яку ціль вона змінює, який вивід доводить, що вона спрацювала, і який ризик змусив би вас пригальмувати.
Відкриття термінала та читання підказки
Розділ «Відкриття термінала та читання підказки»Перш ніж ми запустимо команди, відкрийте термінал у середовищі, яке ви використовуєте для цього курсу. На macOS натисніть Cmd + Space, введіть “Terminal” і натисніть Enter, або відкрийте Terminal з Applications > Utilities. На Linux Ctrl + Alt + T відкриває термінал у багатьох середовищах робочого столу, і меню програм також зазвичай має пункт Terminal. Для Windows цей модуль написаний під оболонку у стилі Unix, таку як Windows Subsystem for Linux, оскільки нативний PowerShell має інші назви та типові налаштування для кількох команд.
Коли термінал відкриється, ви повинні побачити короткий рядок тексту, що закінчується таким символом, як $ або %. Цей рядок називається підказкою (prompt), тому що він спонукає вас ввести наступну команду. Точний текст залежить від машини, оболонки та теми, тому не хвилюйтеся, якщо ваш не збігається зі зразком повністю. Важливо те, що термінал чекає на одну повну інструкцію і не буде робити припущень за межами того, що ви ввели.
username@computername ~ $Підказка зазвичай включає певну комбінацію вашого імені користувача, імені комп’ютера та поточної директорії. Символ ~ є особливо важливим, оскільки оболонки у стилі Unix часто використовують його як скорочення для вашої домашньої директорії — особистої зони, де зберігаються ваші файли користувача. Ставтеся до підказки як до маленького значка локації на вашому екрані: вона каже вам, хто діє, де відбудеться дія і коли оболонка готова до наступної команди.
Зверніть увагу, що команда термінала — це просто текст, за яким слідує Enter. Деякі команди мають прапорці (flags) — це невеликі опції, такі як -l або -a, які змінюють поведінку, а деякі команди мають аргументи — це файли або директорії, на які команда повинна впливати. Цей шаблон не є універсальним, але корисна модель для початківців — це “команда, опції, ціль”. Коли команда здивує вас пізніше, запитайте себе, яку частину цього шаблону ви могли прочитати неправильно.
Навігація шляхами директорій за допомогою pwd, ls та cd
Розділ «Навігація шляхами директорій за допомогою pwd, ls та cd»Ваш комп’ютер організовує файли у вигляді деревоподібної структури, що означає, що кожен файл і тека мають місцезнаходження відносно кореня верхнього рівня (root). Графічний файловий менеджер приховує значну частину цієї структури за вікнами та іконками, але термінал просить вас називати місцезнаходження безпосередньо. Спочатку це може здатися суворим, проте ця суворість є корисною: як тільки ви зможете описати місцезнаходження як шлях, ви зможете його автоматизувати, скопіювати в документацію і виконати ту ж саму операцію на віддаленому сервері, де не існує графічного робочого столу.
/ (the root -- the building itself)├── Users/│ └── yourname/ ← This is your "home directory"│ ├── Desktop/│ ├── Documents/│ ├── Downloads/│ └── Pictures/├── Applications/└── System/У цій аналогії з планом ресторану коренева директорія — це будівля, ваша домашня директорія — це ваш приватний кабінет, а теки, такі як Desktop або Documents — це кімнати всередині цього кабінету. Термінал завжди має поточну робочу директорію, яка є кімнатою, звідки починаються відносні шляхи. Якщо ви скажете Documents, оболонка інтерпретує це відносно того, де ви зараз перебуваєте; якщо ви скажете /Users/yourname/Documents, ви надаєте повний шлях від входу в будівлю.
Перша команда — pwd, що розшифровується як print working directory (надрукувати робочу директорію). Вона відповідає на запитання “Де я зараз перебуваю?”, перш ніж ви будь-що створите, скопіюєте, перемістите чи видалите. Професіонали постійно її використовують, тому що помилка з місцезнаходженням — це один із найпростіших способів отримати заплутані результати. Наприклад, у проєкті Kubernetes запуск команди з неправильної директорії може призвести до того, що ви відредагуєте старий маніфест, тоді як ваш активний кластер все ще використовує інший файл.
pwdОчікуваний вивід — це повний шлях до вашої поточної директорії, і ваш буде відрізнятися, оскільки ваше ім’я користувача та операційна система є специфічними для вашої машини:
/Users/yournameНа Linux та ж ідея часто відображається як /home/yourname, тоді як підказка Windows PowerShell може показувати шлях на кшталт C:\Users\yourname. Точне написання менш важливе за звичку: читайте вивід як місцезнаходження, а не як декорацію. Якщо ви очікували бути всередині теки проєкту, а pwd каже, що ви все ще у своїй домашній директорії, зупиніться і перейдіть у потрібне місце, перш ніж створювати файли.
Друга команда — ls, яка показує список того, що є в поточній директорії. Це термінальний еквівалент відкриття шухляди та погляду всередину. Звичайне ls дає вам імена, чого часто буває достатньо, коли ви перевіряєте, чи існує тека або файл. Оскільки вона за замовчуванням діє на вашу поточну директорію, вона природно працює в парі з pwd: спочатку запитайте, де ви є, потім запитайте, що там є.
lsОчікуваний вивід покаже видимі елементи у вашій власній домашній директорії, тому сприймайте це як приклад форми, а не як текст, який повинен збігатися повністю:
Desktop Documents Downloads Music PicturesДовгий формат, ls -l, показує більше контексту, включаючи права доступу (permissions), власника, розмір та час модифікації. Вам поки не потрібно розуміти кожну колонку, але ви повинні помітити, що прапорці змінюють кількість інформації, яку повертає команда. Крайня права колонка — це ім’я, а дата говорить вам, коли елемент востаннє змінювався. Під час реального усунення несправностей ця дата може стати підказкою про те, що конфігураційний файл був змінений незадовго до збою.
ls -lВивід у довгому форматі нижче є лише зразком, але він показує, які метадані 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 показує більше деталей, що, на вашу думку, додасть команда під назвою ls -la? Подумайте про те, які типи файлів графічний файловий менеджер може приховувати за замовчуванням. Потім запустіть її у своїй власній домашній директорії та порівняйте вивід зі звичайним ls, звертаючи увагу на імена, які починаються з крапки.
ls -laПрапорець -a означає “all” (усі), включаючи приховані файли, імена яких починаються з крапки. Прихований не означає секретний або шкідливий; зазвичай це означає “конфігураційний файл, який би захаращував звичайний перегляд”. Файли запуску оболонки, налаштування редактора та кеші інструментів часто зберігаються саме так. Початківці іноді видаляють файли з крапкою (dotfiles), тому що вони виглядають незнайомими, але багато з них керують тим, як поводиться ваша оболонка або інструменти розробки.
Третя команда — cd, що розшифровується як change directory (змінити директорію). Вона змінює вашу поточну робочу директорію, тому кожен відносний шлях після цього починається з нового місця. Це схоже на перехід з вашого кабінету до кімнати Documents, перш ніж взяти теку. Команда cd нічого не створила і не видалила; змінилася лише ваша точка огляду.
cd DocumentsПісля зміни директорій негайно перевірте, де ви перебуваєте, щоб зв’язати дію cd зі зміною шляху, яку вона спричинила:
pwdТепер вивід повинен містити директорію Documents у кінці шляху, показуючи, що ваша поточна робоча директорія змінилася:
/Users/yourname/DocumentsЦя пара команд показує основний цикл навігації: переміститися за допомогою cd, перевірити за допомогою pwd та оглянути за допомогою ls. Цей цикл навмисно простий, оскільки він має стати автоматичним. Якщо пізніше ви запустите kubectl apply -f deployment.yaml, оболонка повинна знайти deployment.yaml у вашій поточній директорії, якщо тільки ви не вказали довший шлях. Знання того, де ви стоїте, є частиною знання того, яку команду ви насправді запустили.
Повернення на рівень вгору: cd ..
Розділ «Повернення на рівень вгору: cd ..»Спеціальний шлях .. означає “батьківська директорія” (parent directory) або кімната, яка містить поточну кімнату. Якщо Documents міститься всередині вашої домашньої директорії, то cd .. переміщує вас з Documents назад додому. Це не трюк якоїсь окремої команди; .. є стандартним компонентом шляху, який використовується у системах типу Unix. Ви зустрінете його під час роботи в терміналі, у скриптах та документації.
cd ..pwdТепер вивід має знову показувати вашу домашню директорію, оскільки .. перемістив вас на один рівень вгору від Documents, а не перестрибнув кудись у непов’язане місце:
/Users/yournameПовернення додому: cd ~
Розділ «Повернення додому: cd ~»Символ ~ є скороченням для вашої домашньої директорії у багатьох оболонках стилю Unix. Незалежно від того, наскільки глибоко в проєкті ви перебуваєте, cd ~ повертає вас до особистої базової директорії вашого облікового запису. Це корисно, коли ви відчуваєте, що заблукали, але це також корисно, коли інструкції навмисно починаються з відомого безпечного місця. Багато лабораторних робіт для початківців починаються з cd ~, оскільки це усуває двозначність перед створенням тренувальних тек.
cd ~Перехід у конкретне місце: cd /path/to/place
Розділ «Перехід у конкретне місце: cd /path/to/place»Іноді ви не хочете переходити з кімнати в кімнату по черзі. Повний шлях дозволяє вам перейти безпосередньо в місцезнаходження від кореня файлової системи. Директорія /tmp зазвичай доступна в Unix-подібних системах для тимчасових файлів, тому вона є гарним прикладом. Не зберігайте там важливу роботу, якщо ви не знаєте політику очищення вашої системи, оскільки тимчасові директорії призначені для одноразових даних.
cd /tmppwdВивід повинен показати тимчасову директорію, доводячи, що абсолютний шлях може перейти безпосередньо у місцезнаходження:
/tmpТепер поверніться додому, щоб наступні тренувальні команди починалися зі знайомого і відносно безпечного місця, яке ви зможете знову перевірити:
cd ~Перш ніж запустити це у вашому власному терміналі, який вивід ви очікуєте від pwd після cd ~? Зробіть припущення перш ніж запустити pwd та порівняйте. Ця маленька звичка має значення, тому що передбачення перетворює практику в терміналі з копіювання на міркування; ви будуєте ментальну модель, а не запам’ятовуєте список.
Створення папок і файлів за допомогою mkdir, touch, cp та mv
Розділ «Створення папок і файлів за допомогою mkdir, touch, cp та mv»Навігація підказує, де саме діятимуть команди, але корисна робота починається тоді, коли ви створюєте та впорядковуєте файли. Ці команди навмисно є невеликими. mkdir створює каталоги, touch створює порожній файл, якщо він не існує, cp створює ще одну копію, а mv змінює назву або розташування файлу. Справжня потужність розкривається при поєднанні цих невеликих дій із точними шляхами.
Найбезпечніший спосіб опанувати команди створення — запускати їх у тренувальному середовищі, а не в папці з важливою роботою. Почніть зі свого домашнього каталогу та створіть папку зі зрозумілою назвою, щоб згодом легко її впізнати. Назви з дефісами зручні, оскільки вони дозволяють уникнути проблем із лапками, які виникають через пробіли. Пробіли в назвах файлів дозволені, але вимагають обережності, оскільки командна оболонка використовує їх для розділення слів.
mkdir розшифровується як make directory (створити каталог). Каталог — це папка, і її створення не переміщує вас туди автоматично. Це поширена помилка новачків: після виконання mkdir my-first-folder ваш поточний каталог залишається тим самим, що й був. Використовуйте ls, щоб переконатися в існуванні папки, і застосовуйте cd my-first-folder лише тоді, коли ви навмисно хочете в неї увійти.
mkdir my-first-folderПеревірте, чи було створено каталог, вивівши список вмісту поточного каталогу та знайшовши нову назву серед наявних записів:
lsВи маєте побачити my-first-folder у списку. Якщо її там немає, виконайте pwd і подумайте, чи не створили ви її деінде. Якщо mkdir повідомляє, що каталог уже існує, у цьому немає нічого дивного; це означає, що така назва вже зайнята в поточному каталозі. Ви можете обрати іншу назву, видалити стару тренувальну папку після її перевірки або ж повторно використати наявну папку, якщо саме таким був ваш намір.
Прапорець -p змушує mkdir створювати відсутні батьківські каталоги вздовж усього шляху. Без -p команда mkdir restaurant/kitchen/prep-area завершиться помилкою, якщо restaurant або restaurant/kitchen ще не існують. Із прапорцем -p команда створює весь ланцюжок за потреби. Цей прапорець популярний у скриптах, оскільки робить команди налаштування повторюваними: повторний запуск тієї самої команди не викликає помилку лише через те, що каталог уже існує.
mkdir -p restaurant/kitchen/prep-areaЦе створює три вкладені одна в одну папки, хоча restaurant та kitchen раніше не існували. Слово «parents» (батьки) є корисною підказкою для запам’ятовування: дочірній каталог не може існувати, якщо спочатку не існують його батьківські каталоги. У проєктній роботі цей шаблон з’являється, коли ви створюєте такі шляхи, як app/frontend/components або manifests/base/deployments, перш ніж додавати туди файли.
touch створює порожній файл, якщо файл із такою назвою не існує. Від самого початку ця команда призначалася для оновлення часових міток, тому, якщо файл уже існує, touch змінює час його модифікації замість заміни вмісту. Для новачка її практичне застосування є простим: створити порожній файл, щоб мати щось конкретне для копіювання, переміщення або видалення. Порожні файли також є поширеними заповнювачами в лабораторних роботах, оскільки вони дозволяють практикувати операції зі шляхами, поки що не потребуючи текстового редактора.
touch menu.txtПеревірте поточний каталог, щоб побачити, як назва порожнього файлу з’являється поруч із папками, які ви вже створили:
lsВи побачите menu.txt у своєму списку. Він порожній, як чистий аркуш паперу, що чекає, поки на ньому щось напишуть. Якщо ви випадково запустите touch у неправильному каталозі, файл усе одно буде порожнім і безпечним, але його розташування заплутає подальші кроки. Саме тому цикл дій з pwd, ls має значення навіть для найпростіших команд.
cp розшифровується як copy (копіювати), і ця команда створює дублікат, залишаючи оригінал на місці. Ця відмінність є критично важливою, коли ви зберігаєте свідомо робочу версію перед початком експериментів. Копія дає вам резервний варіант; переміщення — ні. Коли ви пізніше редагуватимете конфігураційні файли, копіювання файлу перед його зміною може бути простим заходом безпеки, хоча професійний контроль версій є надійнішою довгостроковою звичкою.
cp menu.txt menu-backup.txtТепер у вас є два файли: оригінал і копія, і це саме та поведінка, яка вам потрібна, коли необхідний резервний варіант перед проведенням експериментів.
lsРезультат виконання має містити обидві назви файлів, що доводить той факт, що cp продублювала оригінальний файл замість його переміщення чи перейменування:
menu-backup.txt menu.txt my-first-folder restaurantЩоб скопіювати файл до папки, вкажіть вихідний файл і цільовий каталог. Кінцевий слеш у restaurant/ не завжди є обов’язковим, але він чітко передає ваш намір: ціллю є каталог, а не нова назва файлу. Якщо каталог не існує, команда завершиться помилкою замість того, щоб створити цей каталог для вас. Такий поділ є корисним, оскільки mkdir відповідає за створення каталогів, тоді як cp — за копіювання.
cp menu.txt restaurant/Щоб скопіювати цілу папку та все всередині неї, використовуйте -r, що означає recursive (рекурсивно). Рекурсивні операції проходять по дереву каталогів, діючи на сам каталог та його дочірні елементи. Це зручно, але також вимагає обережності, оскільки одна команда може зачепити багато файлів. При копіюванні ризиком зазвичай є захаращення або плутанина; при видаленні рекурсивна поведінка може бути руйнівною.
cp -r restaurant restaurant-copymv розшифровується як move (перемістити), але вона також і перейменовує. Це здається дивним, поки ви не усвідомите, що назва файлу є частиною його шляху. Переміщення menu-backup.txt до restaurant/ змінює його шлях з ./menu-backup.txt на ./restaurant/menu-backup.txt. Перейменування menu.txt на daily-specials.txt змінює лише кінцевий компонент шляху, але базовою операцією все одно залишається «змінити те місце, де відомий цей файл».
Переміщуючи файл до іншої папки, прочитайте команду як спочатку джерело, а потім ціль, перш ніж натиснути Enter:
mv menu-backup.txt restaurant/Файл більше не міститься в поточному каталозі, оскільки його було переміщено до папки restaurant. На відміну від cp, оригінал не залишається на своєму місці. Це саме те, що вам потрібно під час реорганізації проєкту, але це є помилкою, коли інший інструмент усе ще очікує, що оригінальне розташування існуватиме. Коли є сумніви, спочатку скопіюйте, перевірте результат, і переміщуйте лише тоді, коли ви впевнені, що має бути один файл, а не два.
При перейменуванні файлу застосовується той самий шаблон «джерело-потім-ціль», хоча ціллю і є нова назва в тому самому каталозі:
mv menu.txt daily-specials.txtФайл menu.txt більше не існує під цією назвою, а на його місці з’являється daily-specials.txt. Це той самий файл із новою назвою, а не дублікат. Який підхід ви б обрали в цьому випадку і чому: скопіювати зразок конфігурації перед його редагуванням, чи відразу перемістити його на потрібне місце? Обережна відповідь полягає в тому, щоб копіювати, коли ви досліджуєте, і переміщувати, коли ви завершуєте цілеспрямовану реорганізацію.
Безпечне видалення та очищення за допомогою rm та clear
Розділ «Безпечне видалення та очищення за допомогою rm та clear»Видалення — це та сфера, де точність у терміналі стає найважливішою. Графічне середовище стільниці зазвичай надає вам кошик, і воно може попросити підтвердження перед остаточним видаленням. Команда rm у терміналі є більш прямолінійною. Вона видаляє назви файлів миттєво і зазвичай не має вбудованого способу скасування для звичайних користувачів. Це не означає, що ви повинні її боятися; це означає, що вам слід виробити звичку підтверджувати свої дії перед її використанням.
Зупиніться та подумайте: коли ви видаляєте файл, перетягуючи його до кошика на вашій стільниці, куди він потрапляє? Ви часто можете його відновити, оскільки графічне середовище перемістило його до зони тимчасового зберігання. Тепер порівняйте це з командою термінала, яка призначена для скриптів, віддалених серверів та автоматизації. Команда, що має працювати без натискання людиною на вікна підтвердження, не може покладатися на візуальний процес роботи з кошиком.
rm розшифровується як remove (видалити). Ця команда видаляє файл за вказаним вами шляхом, або ж у поточному каталозі, якщо ви вказуєте лише назву файлу. Перш ніж запускати її, скористайтеся pwd, щоб підтвердити, де ви перебуваєте, та ls, щоб підтвердити цільову назву. Якщо є хоч якісь сумніви, зупиніться. Кілька секунд на перевірку обійдуться дешевше, ніж відновлення роботи, яку ви видалили з неправильного каталогу.
rm daily-specials.txtФайлу більше немає. Точніше кажучи, запис у каталозі видаляється миттєво, і звичайне використання оболонки не надає кнопки скасування. Спеціалізоване відновлення іноді може бути можливим до того, як дані будуть перезаписані, залежно від файлової системи та деталей сховища, але це не той робочий процес, на який вам слід покладатися. Ставтеся до rm як до остаточної дії, якщо у вас немає резервної копії, копії файлу або історії в системі контролю версій.
Як реальний приклад того, чому резервні копії мають значення, мультфільм «Історія іграшок 2» від Pixar ледь не втратив близько 90% своїх робочих файлів у 1998 році, коли команда видалила їх із виробничого сховища; резервні копії також виявилися пошкодженими, і роботу вдалося відновити лише тому, що керівна технічна директорка Ґалін Сусман мала повну копію на своїй домашній робочій станції (див. також короткометражку Pixar «Студійні історії: Фільм зникає» в додаткових матеріалах до «Історії іграшок 2»). Команді все одно знадобилося відновлення. Цей приклад наведено не для того, щоб драматизувати роботу в терміналі; він має на меті показати практичний зв’язок між руйнівними командами та плануванням відновлення.
Цей зв’язок стає дедалі важливішим у міру того, як ви переходите від тренувальних файлів до роботи над реальними проєктами. Одноразову папку під назвою restaurant можна відновити за лічені секунди, але згенерований звіт, завантажений сертифікат або відредагований вручну конфігураційний файл можуть становити роботу, яку ви не зможете легко відтворити. Термінал не може знати, який файл для вас важливий. Він бачить шляхи та дозволи, а не наміри, тому ви маєте самостійно забезпечувати цей намір, обираючи вузькі цілі та перевіряючи їх перед виконаннями руйнівних операцій.
Однією з практичних технік безпеки є поділ очищення на два етапи. Спочатку огляньте або перемістіть ціль у чітко назване місце зберігання, наприклад, у папку для тимчасового очищення. Далі видаляйте лише після того, як ви переконаєтеся, що вміст можна безпечно знищити. Вам не завжди знадобиться цей додатковий крок, особливо в невеликих тренувальних лабораторних роботах, але такий шаблон виховує корисний інстинкт: коли ціна помилки висока, зробіть операцію більш оборотною, перш ніж робити її остаточною.
Щоб видалити папку та все, що в ній міститься, додайте -r для рекурсивної поведінки. Це вказує rm пройтися по дереву каталогів нижче цілі та видалити вкладені файли й каталоги. Ця команда корисна для очищення тренувальної папки, результатів збірки або тимчасового робочого простору. Це також одне з тих місць, де друкарська помилка може завдати шкоди, тому ретельно перевірте ціль перед натисканням Enter.
rm -r restaurant-copyПрапорець -r означає “рекурсивно”, що є тією самою ідеєю, яку ви бачили в cp -r, але тепер дією є видалення, а не копіювання. Будьте особливо обережними з командами, скопійованими з інтернету, які містять rm -rf, де -f вимагає примусового видалення та пригнічує багато запитів на підтвердження. Для цього модуля вам не знадобиться -f. Безпечніша звичка для новачків — видаляти знайомі тренувальні каталоги за їхніми точними назвами після перегляду списку їхнього вмісту.
Класичний небезпечний приклад наведено нижче лише для того, щоб ви розпізнали, чому інженери про нього попереджають. Не запускайте його. На сучасних системах GNU/Linux rm зазвичай відмовляється працювати з / через типовий захисний механізм --preserve-root, і вимкнення цього захисту вимагає явної небезпечної опції. Наявність захисту не робить необережне видалення безпечним; вона лише блокує одну особливо катастрофічну його форму.
rm -rf /Команда clear відрізняється від rm, оскільки вона впливає лише на відображення, а не на ваші файли. Вона прокручує попередні результати виконання поза поле зору, щоб ви могли почати роботу з чистого екрана. Це корисно під час практики, адже захаращений термінал ускладнює розуміння того, який результат належить якій команді. Якщо ви випадково очистите екран, нічого не буде видалено, і ви зазвичай зможете прокрутити вікно термінала назад.
clearТепер ваш екран чистий. З диска нічого не було видалено, а історія команд усе ще зберігається в оболонці. У більшості терміналів комбінація Ctrl + L виконує подібну дію з очищення екрана. Використовуйте clear, коли вам потрібне візуальне фокусування, а не як замінник для очищення файлів. Для файлів і каталогів вам усе ще потрібна rm, і вам усе ще потрібна обережність, яка її супроводжує.
Поєднання команд за допомогою конвеєрів та фільтрів
Розділ «Поєднання команд за допомогою конвеєрів та фільтрів»Коли ви вже впевнено користуєтеся окремими командами, конвеєри (pipes) відкривають головну причину того, чому робота в терміналі так добре масштабується. Конвеєр, який позначається символом |, передає вивід команди зліва на вхід команді справа. Замість того, щоб змушувати одну команду робити все, інструменти в стилі Unix заохочують використання невеликих команд, які виконують одну задачу і передають текст далі. Це модель конвеєрного виробництва: одна станція виводить список файлів, наступна — скорочує цей список, а ще інша — шукає відповідності за шаблоном.
Цей розділ все ще є вступним, тому вам не потрібно опановувати кожен інструмент фільтрації вже сьогодні. Важлива ідея полягає в тому, що вивід у терміналі може стати вводом. Ця ідея постійно зустрічається в професійній роботі: пошук у логах, звуження списків процесів, пошук змінених файлів та сканування історії команд. Пізніше команди Kubernetes також генеруватимуть текст або структурований вивід, який ви будете фільтрувати, коли кластер міститиме забагато інформації для ручного читання.
Перший конвеєр показує лише перші 5 файлів, що корисно, коли виведення вмісту каталогу інакше виштовхнуло б корисну інформацію за межі екрана:
ls | head -5Команда ls виводить список елементів, але head -5 залишає лише перші 5 рядків. Це корисно, коли каталог містить сотні файлів, і ви хочете отримати швидку вибірку, не заповнюючи весь екран. Ліва команда не повинна знати про існування команди head, а head не повинна знати, як ls знайшла ці назви. Конвеєр з’єднує їх за допомогою тексту.
Другий конвеєр шукає слово всередині файлу, перетворюючи відображення всього файлу на цілеспрямований запит щодо рядків, які збігаються. Раніше в цьому модулі ви видалили daily-specials.txt під час практики з видалення, тому перед фільтрацією створіть невеликий тестовий файл ще раз:
echo "Wednesday: pasta with marinara" > daily-specials.txtcat daily-specials.txt | grep "pasta"Команда cat відображає вміст файлу, а grep "pasta" фільтрує його, залишаючи рядки, що містять слово pasta. Ви будете часто використовувати grep, оскільки системи генерують більше тексту, ніж людина здатна прочитати рядок за рядком. Існують ефективніші способи використання grep безпосередньо з файлами, але цей конвеєр є наочним першим прикладом: згенерувати текст, а потім відфільтрувати його. Ця звичка є важливішою за конкретну назву страви.
Третій конвеєр шукає попередню команду, яку ви вводили, що є практичним способом відновити шлях або параметр із нещодавньої історії оболонки:
history | grep "mkdir"Команда history показує команди, які ви вводили в оболонці, а grep "mkdir" звужує вивід до команд, що містили mkdir. Це стає в нагоді, коли ви пам’ятаєте частину команди, але не точний шлях. Це також вчить м’якому діагностичному шаблону: коли на екрані забагато інформації, не намагайтеся вчитуватися сильніше; краще застосуйте фільтрацію. Термінал винагороджує за точні запити.
Перед тим як запустити власний конвеєр, передбачте, яка сторона конвеєра виконується першою і який текст передається через нього. Потім спробуйте змінити пошукове слово у прикладі history | grep "mkdir" на cd або rm. Якщо команда нічого не повертає, це не завжди означає помилку; це може означати, що фільтр не знайшов відповідних рядків. Порожній вивід — це також інформація, коли ви знаєте, який саме запит ви зробили.
Коротка довідка
Розділ «Коротка довідка»Наведена нижче таблиця тримає базовий набір команд під рукою під час вашої практики. Не намагайтеся завчити її, просто дивлячись на неї. Використовуйте її як карту, поки виконуєте невеликі завдання, оскільки пам’ять формується швидше, коли кожна команда вирішує конкретну проблему. Кухонна аналогія навмисно проста: вона пов’язує незнайоме дієслово термінала зі щоденною дією, а подальші розділи додадуть точності.
| Команда | Що вона робить | Кухонна аналогія |
|---|---|---|
pwd | Показує, де ви перебуваєте | ”У якій я кімнаті?” |
ls | Виводить список того, що тут є | ”Що на цій полиці?” |
cd | Переміщує в інше місце | ”Перейти в іншу кімнату” |
mkdir | Створює нову папку | ”Побудувати нову кімнату” |
touch | Створює порожній файл | ”Покласти чистий аркуш на стіл” |
cp | Копіює файл | ”Зробити ксерокопію цього рецепта” |
mv | Переміщує або перейменовує | ”Перекласти це на іншу полицю” або “переклеїти ярлик” |
rm | Видаляє негайно | ”Знищити цей папір” (за замовчуванням кошика немає) |
clear | Очищає екран | ”Витріть дошку” |
Довідкова картка також демонструє важливий принцип проєктування: назви команд є короткими, оскільки вони походять із середовищ, де важлива була швидкість введення, а розміри екранів були обмеженими. Короткі назви не створені для того, щоб залишатися загадковими назавжди. Після невеликої практики pwd перетворюється на “де я”, ls — на “що тут є”, а cd — на “піти туди”. Мета полягає у вільному володінні, а не в заучуванні розшифровок.
Коли це не застосовується
Розділ «Коли це не застосовується»Термінал не є найкращим інструментом для кожного завдання з файлами, і професійні інженери використовують графічні інструменти, коли вони підходять для роботи. Якщо ви візуально сортуєте велику бібліотеку фотографій, переглядаєте дизайнерські матеріали або перетягуєте файл в іншу десктопну програму, графічний файловий менеджер може бути швидшим і менш схильним до помилок. Вибір термінала має ґрунтуватися на необхідності точності, повторюваності, віддаленого доступу або автоматизації, а не бути ознакою серйозності.
Термінал стає кращим вибором, коли дія має бути точною, повторюваною, задокументованою або виконаною на машині, до якої ви можете отримати доступ лише через оболонку. Створення однакової структури каталогів у різних середовищах, копіювання відомого файлу у відоме місце, фільтрація довгої історії команд або очищення тимчасової папки для практики — усе це вагомі приклади використання термінала. Ця ж логіка згодом застосовується і до Kubernetes: графічні інформаційні панелі можуть допомогти з перевіркою, але робочі процеси в командному рядку легше повторювати та передавати іншим.
Практичне правило: використовуйте графічний інтерфейс, коли рішення приймають ваші очі, і термінал, коли рішення приймається на основі шляху або шаблону. Візуальний перегляд чудово підходить, коли ви ще не знаєте, що саме вам потрібно. Команди термінала відмінно працюють, коли ви можете точно назвати те, що шукаєте. З набуттям досвіду ці два підходи припиняють конкурувати і починають доповнювати один одного.
Існує також золота середина, на яку варто звернути увагу. Багато редакторів і середовищ розробки включають вбудований термінал поруч із деревом файлів. Таке компонування є популярним, оскільки дозволяє вашим очам і командам підтримувати одне одного: ви можете візуально оглядати проєкт, виконувати точні команди з того ж кореневого каталогу і миттєво помічати, коли файли з’являються або переміщуються. Якщо ви використовуєте вбудований термінал, пам’ятайте, що він усе ще має поточний робочий каталог. Редактор, у який його вбудовано, не скасовує потреби у використанні команди pwd.
Коли використовувати це замість альтернатив
Розділ «Коли використовувати це замість альтернатив»Використовуйте pwd, ls та cd, коли ваша проблема полягає в орієнтації. Вони є правильними інструментами, коли потрібно підтвердити розташування, оглянути каталог або перейти до потрібного робочого простору перед виконанням дій. Натомість використовуйте графічний файловий менеджер, коли вам потрібні мініатюри, попередній перегляд або візуальне порівняння. Тут ідеться про компроміс між швидкістю та наочністю: навігація в терміналі є точною і придатною для написання скриптів, тоді як графічний браузер відображає контекст, який може не вміститися охайно у вигляді тексту.
Використовуйте mkdir, touch, cp та mv, коли ваша проблема полягає в контрольованій організації файлів. Вони добре підходять, коли ви можете вказати точний каталог або файл і потребуєте дії, яку можна повторити. Використовуйте редактор, інтегроване середовище розробки або файловий менеджер, коли потрібно створювати контент, візуально порівнювати документи або перетягувати файли між програмами. Компроміс полягає в тому, що команди термінала ефективні тоді, коли ви знаєте ціль, але вони не прощають помилок, коли ціль є нечіткою.
Використовуйте rm лише тоді, коли ваша проблема полягає у свідомому очищенні, і ви підтвердили ціль. Якщо ви не впевнені, чи є файл важливим, краще перемістіть його в тимчасовий каталог для зберігання, створіть копію або не чіпайте його, поки не зможете перевірити. Використовуйте clear, коли ваша проблема — це візуальний безлад, а не безлад на диску. Ці дві команди часто плутають емоційно, оскільки обидві змушують речі зникати з поля зору, але лише одна з них видаляє файли.
Використовуйте конвеєри, коли ваша проблема — це забагато виводу, а не замало виводу. Графічне поле пошуку може бути зручним для одного документа, але командний конвеєр може здійснювати пошук в історії команд, списках файлів та виводі інструментів без відкриття окремих вікон. Компроміс полягає в тому, що конвеєри вимагають від вас думати про потік тексту: ліва команда генерує, права команда фільтрує. Як тільки ця модель стає зрозумілою, термінал перестає бути просто набором ізольованих команд і більше нагадує невелику мову для перевірки та аналізу.
Чи знали ви?
Розділ «Чи знали ви?»- Інтерфейси командного рядка стали поширеними задовго до того, як графічні інтерфейси з мишею та вікнами стали масовими. Комп’ютери використовували лише текстові інтерфейси з 1960-х до середини 1980-х років. Звичний вам графічний інтерфейс із мишею та вікнами був популяризований Apple Macintosh у 1984 році. Коли ви використовуєте термінал, ви застосовуєте найперший спосіб спілкування людей з комп’ютерами.
- Команда
lsє однією з найстаріших команд, які досі широко використовуються. Вона бере свій початок від Сумісної системи розподілу часу (CTSS) у MIT на початку 1960-х років, де подібна команда мала назвуLISTF. Сучасна командаlsз’явилася в першій версії Unix приблизно в 1971 році. Ви використовуєте команду з понад 50-річною історією. - Символ
~(тильда) для позначення домашнього каталогу з’явився через випадковість із клавіатурою. На ранніх терміналах клавіша Home та клавіша~фізично знаходилися на одній кнопці. Ця конвенція прижилася, і тепер багато Unix-подібних оболонок використовують~у значенні “дім”. - Оператор конвеєра зробив текстові інструменти компонованими, а не монолітними. Конвеєри Unix дозволяють зробити вивід однієї програми вводом для іншої, і саме тому невеликі інструменти, такі як
ls,head,cat,grepтаhistory, можуть вирішувати масштабніші завдання з інспектування, не знаючи про існування одне одного.
Типові помилки
Розділ «Типові помилки»| Помилка | Чому це трапляється | Як це виправити |
|---|---|---|
Використання rm без попередньої перевірки | Команда коротка, а новачки очікують поведінки, схожої на десктопний кошик | Спочатку виконайте pwd та ls, а потім видаліть лише ту ціль, яку справді планували видалити |
Забування -r під час копіювання або видалення папок | Каталоги містять інші елементи, тому команді потрібен дозвіл на рекурсію | Використовуйте cp -r folder newname для копіювання каталогів та rm -r folder лише після огляду вмісту папки |
| Випадкове створення назв із пробілами без лапок | Оболонка розглядає пробіли як роздільники між аргументами | Використовуйте лапки, наприклад, mkdir "my folder", або віддавайте перевагу назвам із дефісом, наприклад, mkdir my-folder |
| Втрата орієнтації у файловій системі | При успішному виконанні cd змінює контекст без повідомлень | Часто вводьте pwd, використовуйте cd ~ для повернення додому та перевіряйте вміст за допомогою ls перед виконання дій |
Плутанина між cp та mv під час очищення | Обидві команди приймають джерело та призначення, але лише одна з них залишає оригінал | Використовуйте cp, коли вам потрібен дублікат або резервна копія, і mv, коли має бути одне остаточне місце розташування |
Припущення, що mkdir переміщує вас у нову папку | Графічні інструменти часто відкривають папку після її створення, але mkdir лише створює її | Виконайте cd folder-name після mkdir, якщо хочете увійти в новий каталог |
| Сприйняття порожнього виводу як обов’язково поганого результату | Фільтри, такі як grep, можуть нічого не повертати, якщо немає рядків-відповідностей | Перевірте ще раз свій запит, спробуйте ширший шаблон або перевірте вивід команди без фільтрації |
| Неправильне введення команд і відчуття розчарування | Всі роблять помилки під час набору шляхів, прапорців та імен файлів, особливо на швидкості | Використовуйте стрілку вгору, щоб викликати попередню команду, обережно відредагуйте її та запустіть знову лише після прочитання |
Контрольні запитання
Розділ «Контрольні запитання»1. Ваша команда виконує `mkdir projects`, але папка з'являється в абсолютно несподіваному місці. Що вам слід було перевірити перед її створенням, і як діагностувати помилку після цього?
Вам слід було виконати pwd перед mkdir, щоб підтвердити поточний робочий каталог. mkdir projects створює папку відносно того місця, де перебуває оболонка, тому успішна команда все одно може створити папку в неправильному місці. Після цього виконайте pwd, щоб побачити, де ви перебуваєте, потім використайте ls у цьому місці, щоб підтвердити, чи була створена папка projects саме там. Рішення полягає не в тому, щоб намагатися вгадати ще раз; воно полягає у відновленні циклу навігації з pwd, ls та cd.
2. Вам потрібно, щоб файл логотипа залишався в `assets/`, а ще одна копія потрапила до `public/`, і пізніше вам потрібно перемістити конфігураційний файл, не залишаючи дубліката. Яка команда підходить для кожного завдання і чому?
Використовуйте cp для логотипа, оскільки вимога чітко передбачає два файли: оригінал в assets/ і дублікат у public/. Використовуйте mv для конфігураційного файла, оскільки вимога каже, що його слід перемістити, не залишаючи дубліката. Важливим є порівняння поведінки копіювання та переміщення, а не написання команд. Якщо ви виберете mv для логотипа, ви зруйнуєте оригінальне розташування; якщо ви виберете cp для конфігурації, ви можете залишити застарілу конфігурацію.
3. Ви очищаєте старі логи і випадково вводите `rm production-db.sql` замість `rm production.log`. Що відбувається далі, і яка звичка зменшила б ризик?
Термінал не надає вам звичайної кнопки «Скасувати» (Undo) як на робочому столі або шляху відновлення з Кошика (Trash) для rm. Файл видаляється негайно, і звичайні користувачі повинні вважати, що відновлення є ненадійним, якщо не існує резервної копії або копії в системі контролю версій. Безпечніша звичка — спочатку виконувати pwd та ls, повільно читати ім’я цілі та видаляти лише саме той файл, який ви планували. Для очищення з вищим ризиком спочатку перемістіть файли до тимчасового каталогу для зберігання, а потім видаліть після перевірки.
4. Вам потрібно створити `app/frontend/components/buttons/`, але жодної з батьківських папок ще не існує. Ви намагаєтеся використати звичайну `mkdir app/frontend/components/buttons/`, і вона завершується помилкою. Яку команду вам слід використати і чому?
Використовуйте mkdir -p app/frontend/components/buttons/. Звичайна mkdir може створити один каталог лише тоді, коли його батьківський каталог вже існує, тому вона завершується помилкою, коли відсутні app, frontend або components. Прапорець -p вказує mkdir створювати відсутні батьківські каталоги вздовж шляху. Це корисно для повторюваного налаштування, оскільки та сама команда може бути успішною, навіть коли частина структури вже існує.
5. Ви переміщалися по логах сервера і більше не знаєте, де перебуваєте, але вам потрібно повернутися до головної папки вашого користувача перед запуском скрипта. Які дві команди відновлять ваш контекст?
Спочатку виконайте pwd, щоб вивести поточний робочий каталог і діагностувати, де перебуває оболонка. Потім виконайте cd ~, щоб повернутися до свого домашнього каталогу, який є відомим базовим розташуванням для вашого облікового запису користувача. Ця пара працює, тому що розділяє діагностику та дію: pwd повідомляє вам про поточний стан, тоді як cd ~ свідомо його змінює. Після повернення додому скористайтеся ls, якщо вам потрібно підтвердити наявність папки скрипта або проєкту.
6. Ви виконуєте `history | grep "mkdir"` і нічого не з'являється, хоча сама команда не показала помилки. Як слід інтерпретувати цей результат?
Порожній вивід конвеєра (pipeline) часто означає, що фільтр не знайшов жодного рядка, що збігається, а не те, що оболонка зазнала невдачі. У цьому випадку history згенерувала текст, а grep "mkdir" залишив лише рядки, що містять слово mkdir; якщо таких рядків немає у видимій історії, кінцевий вивід буде порожнім. Для діагностики виконайте саму history або знайдіть ширший термін, такий як mk. Це питання перевіряє фільтрацію виводу команди, оскільки конвеєри відповідають точно тому шаблону, про який ви просите.
7. Ви скопіювали тренувальну папку за допомогою `cp -r restaurant restaurant-copy`, поекспериментували в копії, і тепер хочете очистити лише дублікат. Що слід перевірити і яка команда видалення підходить?
Виконайте ls, щоб підтвердити, що і restaurant, і restaurant-copy існують, і використайте ls restaurant-copy, якщо ви хочете перевірити дублікат перед його видаленням. Правильна команда очищення — rm -r restaurant-copy, оскільки ви видаляєте дерево каталогів, а не один файл. Не видаляйте restaurant, якщо ця оригінальна папка також не є одноразовою. Логіка така ж, як і для будь-якого безпечного видалення: підтвердити розташування, підтвердити ціль, потім виконати найвужчу команду, яка відповідає вашим намірам.
Практична вправа: Створення файлової структури ресторану
Розділ «Практична вправа: Створення файлової структури ресторану»Сценарій вправи: ви готуєте невелику файлову структуру для уявного ресторану, і ваше завдання — створити структуру, перевірити її, перемістити один елемент, скопіювати меню та очистити тренувальний робочий простір. У вправі навмисно використовуються нешкідливі порожні файли, щоб ви могли зосередитися на поведінці команд, а не на вмісті файлів. Працюйте повільно, читайте кожен шлях перед натисканням клавіші Enter і пам’ятайте про цикл дій pwd, ls щоразу, коли щось виглядає неправильно.
Крок 1: Перейдіть до свого домашнього каталогу
Розділ «Крок 1: Перейдіть до свого домашнього каталогу»cd ~Примітки до рішення
Початок роботи з домашнього каталогу надає вправі передбачуване базове розташування. Якщо ви не впевнені, чи спрацювала команда, виконайте pwd і перевірте, чи виглядає шлях як каталог вашого користувача, а не підкаталог проєкту чи тимчасовий каталог.
Крок 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Примітки до рішення
Кожна команда використовує mkdir -p, оскільки деякі батьківські каталоги не існують до виконання команди. Виконання цих рядків більше одного разу не повинно зашкодити тренувальній структурі, що є однією з причин, чому -p корисний в інструкціях з налаштування.
Крок 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Примітки до рішення
Ці файли є порожніми заповнювачами, але їхні шляхи доводять, що структура каталогів існує. Якщо одна команда не спрацьовує, перевірте правильність написання батьківських каталогів за допомогою ls restaurant та ls restaurant/kitchen перед повторним виконанням невдалого рядка.
Крок 4: Подивіться на те, що ви створили
Розділ «Крок 4: Подивіться на те, що ви створили»ls restaurant/ls restaurant/kitchen/ls restaurant/kitchen/cooking-stations/Очікуваний вивід для останньої команди повинен показати два файли станцій приготування, які ви створили, що підтверджує існування вкладеного шляху:
grill.txt oven.txtПримітки до рішення
Три команди ls перевіряють структуру на дедалі більшій глибині. Якщо кінцевий вивід не містить обох файлів, прочитайте попередні команди touch і перевірте, чи не було допущено помилки в написанні шляху.
Крок 5: Перемістіть деякі елементи
Розділ «Крок 5: Перемістіть деякі елементи»Морозиво тане в цьому сценарії вправи, тому перемістіть його зі шляху морозильної камери до шляху зони підготовки, уважно читаючи джерело та призначення:
mv restaurant/storage/freezer/ice-cream.txt restaurant/kitchen/prep-area/Перевірте переміщення, вивівши список каталогу призначення, замість того, щоб після прочитання підказки припускати, що команда виконала те, що ви хотіли:
ls restaurant/kitchen/prep-area/Очікуваний вивід повинен включати як оригінальний файл зони підготовки, так і переміщений файл, що підтверджує, що призначення тепер містить обидва елементи:
chopping-board.txt ice-cream.txtПримітки до рішення
Команда mv змінює розташування файлу, тому ice-cream.txt більше не повинен бути в restaurant/storage/freezer/. Якщо ви хочете це довести, виконайте ls restaurant/storage/freezer/ і очікуйте, що виводу для цього файлу не буде.
Крок 6: Зробіть резервну копію меню
Розділ «Крок 6: Зробіть резервну копію меню»touch restaurant/menu.txtcp restaurant/menu.txt restaurant/menu-backup.txtls restaurant/Примітки до рішення
У цьому кроці використовується cp, оскільки резервна копія повинна залишити оригінал на місці. Кінцевий ls має показати як menu.txt, так і menu-backup.txt у каталозі ресторану.
Крок 7: Очищення
Розділ «Крок 7: Очищення»Коли ви закінчите експериментувати, очистіть лише одноразовий тренувальний каталог, який ви створили для цієї вправи, а не будь-який справжній проєкт зі схожою назвою:
rm -r restaurantПереконайтеся, що тренувальний каталог зник, відфільтрувавши список поточного каталогу за назвою ресторану та уважно інтерпретуючи порожній вивід:
ls | grep restaurantПорожній вивід означає, що його немає. Це хороший приклад порожнього виводу як корисної інформації: команда ls згенерувала назви, а grep restaurant не знайшов жодного збігу після очищення.
Примітки до рішення
Це очищення є безпечним лише тому, що restaurant — це одноразовий тренувальний каталог, який ви створили для вправи. Якщо ви не впевнені, де перебуваєте, виконайте pwd перед очищенням. Якщо ви не впевнені, що міститься всередині каталогу, виконайте ls restaurant перед видаленням.
Використовуйте цей контрольний список критеріїв успіху, щоб підтвердити, що ви попрактикували кожну відповідну навичку, а не лише скопіювали команди:
- Ви використали
cd ~,pwdабо обидві команди, щоб почати з відомого місця. - Ви створили вкладену структуру каталогів
restaurantза допомогоюmkdir -p. - Ви створили порожні тренувальні файли за допомогою
touchу відповідних підкаталогах. - Ви перевірили структуру за допомогою
lsна кількох рівнях. - Ви перемістили
ice-cream.txtза допомогоюmvта перевірили нове розташування. - Ви скопіювали
menu.txtза допомогоюcp, щоб існували і оригінал, і резервна копія. - Ви видалили лише одноразовий тренувальний каталог
restaurantза допомогоюrm -r. - Ви використали конвеєр з
grep, щоб перевірити, що після очищення не залишилося жодного запису з рестораном.
Джерела
Розділ «Джерела»- Інтерфейс командного рядка (Command-line interface) — Довідкова інформація про текстові комп’ютерні інтерфейси та їхнє тривале використання до появи масових графічних систем.
- Classic Mac OS — Огляд оригінальної програмної платформи Macintosh, пов’язаної з популяризацією графічних інтерфейсів (GUI) у 1984 році.
- Тильда (Tilde) — Пояснює історичну конвенцію термінальних клавіатур, що стоїть за
~як скороченням для домашнього каталогу. - Оболонка Unix (Unix shell) — Додаткова інформація про оболонки, підказки, команди та середовище, яке представляє цей модуль.
- ls — Додаткова інформація про команду
ls, включаючи історію та загальні параметри. - Конвеєр (Pipeline (Unix)) — Додаткова інформація про те, як оператор конвеєра (pipe) з’єднує вивід однієї команди з іншою.
- POSIX
pwd— Стандартна поведінка для виведення робочого каталогу. - POSIX
ls— Стандартна поведінка та параметри утиліти виведення списку. - POSIX
mkdir— Стандартна поведінка утиліти створення каталогу. - POSIX
touch— Стандартна поведінка утиліти для оновлення міток часу та створення файлів. - POSIX
cp— Стандартна поведінка утиліти копіювання, включаючи рекурсивне копіювання. - POSIX
mv— Стандартна поведінка утиліти переміщення та перейменування. - POSIX
rm— Стандартна поведінка утиліти видалення та параметри рекурсивного видалення.
Наступний модуль
Розділ «Наступний модуль»У Модулі 0.4: Файли та каталоги ви глибше дізнаєтесь про те, як комп’ютери організовують файли та папки, а потім попрактикуєтесь у навігації шляхами з більшою впевненістю та меншою кількістю вгадувань.