Минулого тижня ми розпочали серію Linux Hands-On, щоб створити структуровану серію, яка інформує та навчає читача про те, що таке Linux, як він працює, і в той же час, щоб вони забруднили свої руки, випробовуючи команди терміналу.
Як згадувалося в першій частині серії, вся серія буде логічним прогресом щотижня. Це означає, що ця частина матиме сенс лише в тому випадку, якщо ви пройшли першу частину та спробували всі команди, або якщо ви базові знання про Linux і можете обійти це. Якщо ви не знайомі з цими поняттями, переконайтеся прочитайте першу частину, а потім ви можете заскочити.
У дописі цього тижня ми розповімо вам про те, що ми розповіли в попередній публікації, і розповімо вам, як можна робити деякі більш складні речі. Якщо у вас виникли запитання, наприклад, як редагувати файли в Linux? Як переглянути процес у Linux тощо. Ця публікація відповість на них. Тож, не витрачаючи більше часу, перейдемо безпосередньо до команд.
Ми розділимо команди на розділи, щоб було сенс проходити їх одну за одною.
Чого ти навчишся
- Обробка файлів
- Збірка візерунків
- Процес: перегляд і вбивство
- Редагування текстових файлів
Гаразд, тепер, коли у нас є базова структура, давайте розглянемо їх по черзі.
У попередній публікації ви дізналися, як створювати файли в Linux і як їх видалити. Давайте побудуємо на цьому і спочатку подивимося, як переглянути вміст файлу.
команда кішки
Щоб переглянути вміст файлу, ми використовуємо команду cat. Визначення цієї команди в підручнику полягає в тому, що команда cat послідовно зчитує файл і друкує результат у стандартному виводі. Простіше кажучи, це означає, що файл друкує вміст файлу рядок за рядком.
Давайте на прикладі побачимо, як працює команда cat?
Ось синтаксис:
кіт НАЗВА ФАЙЛУ
Замініть ФІЛЕНАМ з одним із своїх. Як ви можете бачити нижче, команда просто роздрукувала вміст файлів ghost.txt у форматі рядок за рядком:

Тепер, коли ми знаємо, як переглядати вміст файлу, давайте дізнаємося, як насправді додати вміст до файлу прямо з терміналу, без використання будь-яких редакторів (не хвилюйтеся, що це станеться дуже скоро).
Оператори перенаправлення в Linux
Один із способів додавання (перезаписати або додати) вміст файлу здійснюється за допомогою одного з операторів переспрямування. Простіше кажучи, оператори перенаправлення дозволяють користувачам контролювати введення та виведення команди.
Ось більш доречний приклад. Пам’ятаєте, що робила команда echo? Він роздрукував рядок на термінал. Рядок був результатом команди echo. Використовуючи один з операторів переспрямування, ви можете використати цей вихід і записати його у файл.
Досить розмов, давайте подивимося, як працює оператор перенаправлення на прикладі.
Ось синтаксис оператора переспрямування:
файл перенаправлення_оператора команди
Тут команда — це команда терміналу, яка виведе рядок, а файл — це фактичний файл, який прийме цей вихід. Існує кілька доступних операторів перенаправлення, але давайте обмежимося записом у файли.
Для цього ми можемо використовувати один із двох операторів перенаправлення, тобто > і >>
На наступному знімку екрана ви можете побачити, як це працює. Я показав у терміналі, що файл спочатку порожній за допомогою команди cat, потім я додав вміст до файлу за допомогою команди echo і нарешті роздрукував вміст за допомогою команди cat.
повне г, повне г,, показали, від, номер, XNUMX > Оператор працює в режимі перезапису. Це означає, що якщо ви використовуєте > оператор для запису вмісту у файл, його попередній вміст буде перезаписано. Це показано на скріншоті нижче. Як бачите, попередній вміст було замінено новим.

Тепер очевидне запитання: що робити, якщо ви не хочете замінювати наявний вміст? Ну, є версія оператора переспрямування, яка робить саме це.
Щоб додати до файлу, замість використання > ми використовуємо >>
Ось синтаксис:
команда >> ім'я файлу
І ви можете побачити приклад використання на скріншоті нижче, до якого було додано вміст. Досить акуратно, правда? Погодьтеся, він не пропонує такої ж гнучкості, як текстовий редактор, але для невеликих випадків використання він справляється з роботою досить добре.

Добре рухаємося!
Тепер, коли ми знаємо, як додати вміст до файлу та як його переглянути, як щодо того, як навчитися знаходити файли у файловій системі?
знайти команду
Для пошуку файлів у вашій файловій системі ми використовуємо команду find. Команда в основному виконує те, що заявляє. Він знаходить задану назву файлу або шаблон регулярного виразу.
Основний синтаксис для цього буде таким:
знайти вираз імені шляху
Як завжди замініть заповнювачі своїми власними значеннями.
повне г, повне г,, показали, від, номер, XNUMX шлях повідомляє команді find, у якому каталозі шукати даний файл. The ім'я Параметр визначає шаблон, за яким потрібно зіставити пошук.
Давайте подивимося, як працює команда find у прикладі використання.

Як показано нижче у прикладі виводу, команда шукає будь-який .exe файлів у моїй файловій системі та виводить їх на консоль. Тепер, коли ми маємо деякі з більш складних маніпуляційних команд, давайте підемо ще далі.
Тепер ми розглянемо, як ми можемо шукати речі у файлі.
Команда grep
grep означає Глобальний регулярний вираз і хоча ми розглянемо це в наступній публікації, основне пояснення того, що це означає, полягає в тому, що це просто шаблон, який grep використовує для перевірки рядків, щоб знайти відповідність. Не хвилюйтеся, якщо це не має великого сенсу. Ми детально розповімо про це в частині 3.
Гаразд, давайте випробуємо grep. Ось синтаксис нашого тесту:
grep -i "рядок для відповідності" filename.extension
повне г, повне г,, показали, від, номер, XNUMX - я Опція скаже grep ігнорувати регістр, тому «HO» «ho» і «hO» вважатимуться однаковими. Рядок для відповідності вказується в лапках, за якими потім слідує ім’я файлу.

Гаразд, давайте подивимося, як команда grep у демонстрації. Як показано вище, мій приклад показує використання grep як в режимах з урахуванням регістру, так і в режимі без чутливості до регістру.
Варто зазначити, що існує n різних комбінацій для команди та кілька варіантів, які можна використовувати. Те, що я роблю тут, — це дати вам загальний заокруглений варіант використання, який буде працювати для більшості простих випадків, але якщо ви хочете зробити все, ви точно можете виконати команду, щоб з’ясувати всі доступні варіанти для використання з команда.
Далі давайте подивимося, як ми насправді можемо порівняти 2 різні файли по рядку.
Команда diff
Щоб побачити, чим відрізняються 2 файли (зрозуміли?), ми використовуємо команду diff. Краще подивитись на це в дії, щоб зрозуміти, як він насправді працює, тож давайте приступимо.
Ось синтаксис команди diff:
файл diff1 файл2
І ось приклад використання команди diff Linux:

На перший погляд це може не мати повного сенсу, тому давайте розберемо вихід.
Перший рядок виводу diff буде містити:
- номери рядків, що відповідають першому файлу
- літера (a для додавання, c для зміни або d для видалення)
- номери рядків, що відповідають другому файлу.
У нашому виході вище, «1,3c1» засоби: «Рядки з 1 по 3 у першому файлі потрібно змінити, щоб вони відповідали рядкам 1 у другому файлі». Потім він повідомляє нам, які ці рядки знаходяться в кожному файлі:
- Рядки, перед якими стоїть <, є рядками з першого файлу
- Рядки, перед якими стоїть >, є рядками з другого файлу.
Далі ми побачимо, як ми можемо дізнатися про повторювані рядки у певному файлі.
Команда uniq
Команда uniq використовується для пошуку повторюваних рядків разом з їх кількістю та іншими подібними деталями. Якщо ви використовуєте його, він говорить, що він використовується для фільтрації або звітування про повторювані рядки у файлі. Як і майже всі команди, команда uniq також має безліч опцій, які можна використовувати разом з нею.
Але для стислості та щоб переконатися, що ви вивчаєте більшу кількість команд замість того, щоб вивчати надто багато про одну команду, ми просто наведемо мінімальний приклад, і ви можете копнути більше, використовуючи команду man.
Гаразд, ось синтаксис команди uniq:
uniq -options ім'я файлу
Тепер давайте подивимося на зразок, щоб дізнатися, як працює команда uniq в Linux.

Давайте швидко розберемо зразок. The -c Параметр вказує команді uniq надрукувати a вважати разом з виводом і наступним варіантом є ім'я файлу що надходить до uniq.
Як ви можете бачити в прикладі вище, він роздрукував кількість повторюваних рядків, яка в нашому випадку була 2.
Це має зробити це для всіх команд, які вам потрібно знати, щоб переконатися, що ви можете обробляти файли, але є одна дуже важлива частина, яку ми досі не розглядали, а саме права доступу.
Ви бачите, що в реальному світі ви не хочете, щоб усі ваші файли мали глобальний доступ для читання-запису, тобто будь-хто може просто ходити та редагувати файл. Певні файли необхідно захистити від несанкціонованого доступу. Ось тут і виникає контроль доступу, і Linux, і Unix на диво добре керують ним за допомогою цієї наступної команди.
Команда chmod
Команда chmod означає режим зміни, і вона в основному дозволяє вам змінити спосіб доступу до файлу та хто може отримати до нього доступ.
Синтаксис chmod досить простий і виглядає так:
chmod -options дозволи ім'я файлу
Хоча параметри та ім’я файлу не потребують уточнення, Дозволи частина потребує пояснення.
Дозволи на файли в Linux обертаються навколо 3 приціли, Користувач група, і інші Дозволи по черзі 3 типи читати, писати, і виконувати. Це означає, що кожна область має 3 дозволи, що становить загалом 3 набори областей з 3 дозволами в кожній.
Маючи це на увазі, ось зразок використання, щоб показати вам, як працює chmod:
chmod u=rwx, g=rx, o=r ім’я файлу.txt
тут u стенди для користувач, g та цінності група і o та цінності інші. І це = знак використовується для призначення дозволу читати (r), писати (w), і виконати (x) до кожної сфери. Кожне завдання відокремлюється комою.

Існує скорочення для призначення дозволів, і воно використовує вісімкове позначення. У вісімковому позначенні:
- 4 означає читання
- 2 означає запис
- 1 означає виконання
- 0 означає відсутність дозволу
Отже, згідно з наведеним вище позначенням число 7 надасть дозвіл на читання, запис і виконання (4 + 2 + 1). Ви можете відповідно змішувати та поєднувати, і ось приклад використання, використовуючи вісімкове позначення:
chmod 755 starwars.txt

У цьому прикладі файл starwars містить:
- дозвіл на читання, запис і виконання для користувача.
- прочитати та виконати для групи.
- виконувати інші.
Добре! ми наближаємося до кінця роботи з файлами частини публікації. Ця остання команда дозволить вам заархівувати файл/стиснути файл. Архівування файлу стане в нагоді, якщо ви хочете переміщати купу файлів між системами, не допускаючи їх пошкодження.
Команда tar
Команда tar розшифровується як стрічковий архів і дозволяє створювати маніпулювати та витягувати архівні файли.
Ось основний синтаксис команди, щоб побачити, як вона працює:
tar -параметри ім'я файлу1 ім'я файлу1 …. ім'я файлуN
Давайте подивимося на приклад використання з кількома параметрами. Настійно радимо пограти зі зразком, а потім дослідити його самостійно, щоб виявити цікаві варіанти використання.
tar -c -f стиснутий.zip ghost.txt starwars.txt

Давайте розберемо його. The -c і -f команди – це лише деякі зі списку багатьох, але ось що вони роблять. The -c параметр вказує команді створити новий архів і -f використовується вкажіть ім'я файлу для архіву, який у цьому випадку є compress.zip, команда tar може створювати архіви .zip, .tar, .rar та інші формати, тому переконайтеся, що ви вибрали той, який відповідає вашим потребам
Тепер, коли ви знаєте, як стискати файли, давайте подивимося, як їх розпакувати. Ми використовуємо -x і -f параметри команди tar для вилучення файлу, файл -x Опція вказує tar витягніть файл і -f використовується вкажіть ім'я файлу як показано в прикладі нижче:

Гаразд, ми нарешті закінчили частину публікації з обробкою файлів. Ура! Ви зробили чудову роботу, зайшовши так далеко. Зараз ми поговоримо про процеси.
У термінології Linux процес — це програма, що виконується в даний момент і виконує конкретне завдання. Процеси динамічні і постійно змінюються, коли користувач перемикається між додатками.
повне г, повне г,, показали, від, номер, XNUMX Документація Linux розповідає про процеси дуже детально, і я закликаю вас прочитати, коли ви закінчите цю публікацію.
Тепер, коли ми знаємо, що таке процес, давайте подивимося, як їх переглянути.
ps Команда
Команда ps дозволяє нам побачити, які процеси зараз виконуються на машині. Він поставляється з різними параметрами, але ось мінімальне використання, яке показує всі процеси, які наразі виконуються як root.
Синтаксис такий
ps -варіант
У нашому випадку ми будемо використовувати -u параметр, який покаже процеси, запущені як root.

Тепер, коли ви знаєте, як переглядати процеси, як щодо того, щоб навчитися їх вбивати?
вбити команду
Команда kill використовується для припинення або припинення певного процесу без виходу з системи або перезавантаження комп’ютера. Варто зазначити, що команда kill насправді не вбиває процес, вона лише посилає сигнал процесу, і сигнал повідомляє процесу, що потрібно зробити. За замовчуванням, коли сигнал не вказано, сигнал 15 званий СИГТЕРМ надсилається до процесу, і якщо це не вдається, сильніший сигнал 9 SIGKILL надсилається процесу, однак для більшості випадків звичайного використання все, що вам потрібно вказати, щоб припинити процес, це це PID.
Ось синтаксис команди kill:
kill [сигнал або параметри] PID
А ось демо:

Будьте дуже обережні, вбиваючи процес. Знищення системно-критичного процесу може призвести до ненормальної поведінки вашої машини. Якщо вам все ж таки вдається це зробити, переконайтеся, що ви перезавантажили систему один раз, щоб відновити її нормальне виконання.
Гаразд, тепер, коли ми розглянули деякі причини з командами терміналу, давайте поговоримо про простий спосіб внесення змін/додавання вмісту до файлу. Ми всі використовуємо текстові редактори, такі як Visual Studio Code або Atom, але оскільки ціль цієї серії — зробити термінал комфортним і затишним, чому б не вивчити базовий редактор у самому терміналі?
Команда nano
Nano (повір мені) означає Nano's ТАКther редактор, і це безкоштовний, легкий редактор з відкритим вихідним кодом, який дозволяє редагувати файли в терміналі, є рідним текстовим редактором, подібним до середовища зі звичайними командами, які ви знайомі.
Щоб викликати nano/відкрити файл у nano, введіть команду з таким синтаксисом:
nano ІМ'Я ФАЙЛУ
Якщо файл існує, nano відкриє його, а якщо ні, створить новий файл із таким ім’ям та відкриє його. Редактор сам по собі досить мінімальний і на відміну від свого старшого (і ненависного) брата Vim/Vi він не зводить вас з розуму горезвісно складними командами. Для навігації по файлу ви використовуєте звичайні клавіші зі стрілками. Щоб видалити вміст, ви все ще використовуєте клавішу Delete/Backspace, а для роботи з буфером обміну — знайомі Ctrl+C, Ctrl+V тощо.

У нижній частині екрана редактор викладає найбільш використовувані операції, наприклад вихід із редактора. Перш ніж вийти за допомогою Ctrl+X, вам буде запропоновано зберегти внесені зміни. Звичайно, Vim існує довше, але, на мою особисту думку, це не що інше, як перехід до культури хіпі. Найбільше, що ви можете отримати, будучи професіоналом у Vim, — це похвалитися, і на цьому все закінчується. Немає абсолютно жодної причини витрачати свій дорогоцінний час на вивчення того, як користуватися Vim. При цьому ми нарешті підійшли до кінця 2 частини.
Команди Linux для користувачів середнього рівня: підсумок
У другій частині серії Linux Hands On ми побудували на основі того фундаменту, який ми заклали Частина 1. Ми обробляли файли та маніпулювали ними. Ми також дізналися абсолютно нову концепцію, яка називається процеси і як їх вбити. І ми завершили цю частину оглядом текстового редактора Nano. Це було б все на цьому тижні. Поки ми не повернемося наступного тижня з Частиною 3, переконайтеся, що ви даєте собі достатньо часу, щоб пограти з командою, опублікованою в цій публікації. Не дивуйтеся, що існує кількість команд, щоб ці речі стали м’язовою пам’яттю, потрібно багато часу. Поки цього не станеться, практичний досвід стане вашим найкращим другом.
Дякую за ці серії Linux. Я пройшов через це повністю, і я знайшов це дійсно корисним. Особливо відео. Іноді важко слідкувати за статтею, тому я завантажив відео та дізнався його. Тепер я відчуваю, що знаю чималу кількість Linux, щоб почати щось робити в ньому. Дякую за те, що ці дописи мені дуже допомогли.