diff --git a/docs/labs/systems_administration_I/lab3-system_utilities.uk.md b/docs/labs/systems_administration_I/lab3-system_utilities.uk.md index 01ec0f44bd..5497c5db4a 100644 --- a/docs/labs/systems_administration_I/lab3-system_utilities.uk.md +++ b/docs/labs/systems_administration_I/lab3-system_utilities.uk.md @@ -5,9 +5,7 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В - cli - - - -# Лабораторна робота 3: Загальні системні утиліти - -## Завдання +## Цілі Виконавши цю лабораторну роботу, ви зможете @@ -17,17 +15,23 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В ## Загальні системні утиліти в системах Linux +### Що таке системна утиліта? + +У середовищі Linux *системні утиліти* — це програми та команди, які дозволяють керувати, контролювати та оптимізувати роботу операційної системи. Ці інструменти є незамінними для системних адміністраторів, розробників та досвідчених користувачів, оскільки вони спрощують такі завдання, як управління файлами, контроль процесів, налаштування мережі та багато іншого. + +На відміну від графічних інтерфейсів, багато утиліт доступні через командний рядок, що забезпечує більшу гнучкість, автоматизацію та контроль над системою. + Вправи в цій лабораторній роботі охоплюють деякі основні системні утиліти, з якими повинні бути знайомі користувачі та адміністратори. Більшість команд використовуються для навігації та керування файловою системою. Файлова система складається з файлів і каталогів. Вправи стосуватимуться використання утиліт – `pwd`, `cd`, `ls`, `rm`, `mv`, `ftp`, `cp`, `touch`, `mkdir`, `file`, `cat`, `find` та `locate`. -## Завдання 1 +## Вправи -### `cd` +### 1. Навігація по файловій системі за допомогою `cd` -"cd" означає змінити каталог. Ви почнете ці лабораторні роботи, перейшовши до інших каталогів у файловій системі. +Команда `cd` (скорочення від ==Change Directory==) є однією з найчастіше використовуваних команд в системах Linux та Unix-подібних системах. Вона дозволяє переміщатися між каталогами в файловій системі, даючи користувачам можливість переходити між папками та отримувати доступ до файлів, що містяться в них. Команда `cd` є необхідною для роботи в оболонці Linux, оскільки вона дозволяє ефективно досліджувати та організовувати файлову систему. -#### Щоб використовувати `cd` +#### Як використовувати `cd` 1. Увійдіть на комп'ютер як root @@ -57,13 +61,13 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В [root@localhost local]# cd /root ``` -6. Знову перейдіть до каталогу /usr/local/. Впишіть: +6. Знову перейдіть до каталогу `/usr/local/`. Впишіть: ```bash [root@localhost root]# cd /usr/local ``` -7. Щоб перейти до батьківського каталогу локального каталогу, введіть «cd ..» +7. Щоб перейти до батьківського каталогу локального каталогу, введіть `cd ..` ```bash [root@localhost local]# cd .. @@ -71,23 +75,21 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В !!! Question "Питання" - Що таке батьківський каталог для каталогу /usr/local/? + Що таке батьківський каталог для каталогу `/usr/local/`? -8. Щоб швидко повернутися до домашнього каталогу root, введіть «cd» без аргументів. +8. Щоб швидко повернутися до домашнього каталогу root, введіть `cd` без аргументів. ```bash [root@localhost usr]# cd - [root@localhost root]# ``` -## Завдання 2 - -### `pwd` +### 2. Відобразити шлях за допомогою `pwd` -"pwd" означає "поточний робочий каталог". Він показує розташування у файловій системі, де ви перебуваєте. +Команда `pwd` (==Поточний робочий каталог (Present Working Directory)==) показує користувачеві абсолютний шлях до поточного каталогу в файловій системі. Вона використовується для визначення поточного розташування під час роботи в терміналі, коли ви хочете точно знати, де ви знаходитесь. +Ця команда є необхідною для навігації по файловій системі, особливо під час роботи зі складними шляхами або автоматизованими скриптами. -#### Щоб використовувати `pwd` +#### Як використовувати `pwd` 1. Щоб дізнатися тип поточного робочого каталогу @@ -96,7 +98,7 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В /root ``` -2. Змініть свій каталог на /usr/local/ за допомогою команди «cd». +2. Перейдіть до каталогу `/usr/local/` за допомогою команди `cd`: ```bash [root@localhost root]# cd /usr/local @@ -112,30 +114,28 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В 4. Повернутися до домашнього каталогу root. ```bash - [root@localhost root]# cd + [root@localhost root]# cd ``` -## Завдання 3 - -### `mkdir` +### 3. Створіть папки за допомогою `mkdir` -Команда «mkdir» використовується для створення каталогів. Ви створите два каталоги під назвою «folder1» і «folder2». +Команда `mkdir` (==Створити каталог==) дозволяє створювати нові каталоги (папки) у файловій системі. У цьому вправі ви створите дві папки з іменами `folder1` та `folder2`. -#### Щоб використовувати `mkdir` +#### Як використовувати `mkdir` -1. Впишіть: +1. Створіть перший каталог під назвою `folder1` ```bash [root@localhost root]# mkdir folder1 ``` -2. Створіть другий каталог під назвою folder2 +2. Створіть другий каталог під назвою `folder2` ```bash - [root@localhost root]# mkdir folder2 + [root@localhost root]# mkdir folder2 ``` -3. Тепер змініть свій робочий каталог на каталог “folder1”, який ви створили вище. +3. Тепер змініть робочу директорію на директорію `folder1`, яку ви створили вище. ```bash [root@localhost root]# cd folder1 @@ -150,25 +150,24 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В !!! question "Питання" - Не виходячи з поточного каталогу, перейдіть до каталогу «folder2». Яка команда для цього? + Не виходячи з поточного каталогу, перейдіть до каталогу `folder2. Яка команда для цього? 5. Поверніться до домашнього каталогу root. -## Завдання 4 +### 4. Змінити метадані файлу за допомогою `touch` -### `touch` +Команда touch — це інструмент, який дозволяє створювати нові порожні файли або змінювати дати доступу/зміни існуючих файлів, а також використовується для складних завдань у скриптах та автоматизації. Назва ==touch== походить від ідеї «*доторкатися*» до метаданих файлу без обов'язкового змінення його вмісту. +Файли *file11*, *file12*, *file21* та *file22* будуть створені у вищезгаданих папках. -Команда «touch» може бути використана для створення звичайних файлів. Ви створите «file11, file12, file21 і file22» у зазначених вище папках. +#### Як використовувати `touch` -#### Щоб використовувати `touch` - -1. Змініть каталог, наприклад «cd», на folder1 і створіть file11 +1. Змініть каталог, наприклад `cd` на `folder1` та створіть *file11*: ```bash [root@localhost folder1]# touch file11 ``` -2. Перебуваючи в folder1, створіть «file12» +2. Перебуваючи в `folder1`, створіть *file12*: ```bash [root@localhost folder1]# touch file12 @@ -176,19 +175,17 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В 3. Тепер поверніться до домашнього каталогу root. -4. `cd` до folder2 та створіть «file21» і «file22» +4. `cd` до `folder2` та створіть *file21* і *file22* ```bash - [root@localhost folder2]# Touch file21 file22 + [root@localhost folder2]# touch file21 file22 ``` 5. Поверніться до домашнього каталогу root. -## Завдання 5 - -### `ls` +### 5. Перелічить каталоги за допомогою `ls` -Команда "ls" означає список. Вона відображає список вмісту каталогу. +Команда ls (==Список==) є однією з найосновніших і найпоширеніших команд в системах Linux та Unix-подібних системах. Він дозволяє переглядати вміст каталогу, відображаючи файли та підкаталоги з різними опціями форматування та сортування. #### Щоб використовувати `ls` @@ -202,23 +199,22 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В Перелічіть вміст каталогу -2. Перейдіть до каталогу folder1 +2. Перейдіть до каталогу `folder1` -3. Виведіть вміст каталогу “folder1”. Впишіть `ls` +3. Виведіть вміст каталогу `folder1`. Впишіть `ls` ```bash [root@localhost folder1]# ls file11 file12 ``` -4. Перейдіть до каталогу folder2 і перелічіть його вміст тут: +4. Перейдіть до каталогу `folder2` і перелічіть його вміст тут: -5. Поверніться до домашнього каталогу та перерахуйте «всі» приховані файли та папки. +5. Поверніться до домашнього каталогу та перерахуйте **всі** приховані файли та папки: ```bash [root@localhost folder2]# cd - - [root@localhost root]# ls –a + [root@localhost root]# ls –a .. .bash_history .bash_logout .bash_profile .bashrc folder1 folder2 .gtkrc .kde screenrc ``` @@ -227,50 +223,38 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В ```bash [root@localhost root]# ls –al total 44 - drwx------ 5 root root 4096 May 8 10:15 . - drwxr-xr-x 8 root root 4096 May 8 09:44 .. - -rw------- 1 root root 43 May 8 09:48 .bash_history - -rw-r--r-- 1 root root 24 May 8 09:44 .bash_logout - -rw-r--r-- 1 root root 191 May 8 09:44 .bash_profile - -rw-r--r-- 1 root root 124 May 8 09:44 .bashrc - drwxrwxr-x 2 root root 4096 May 8 10:17 folder1 - drwxrwxr-x 2 root root 4096 May 8 10:18 folder2 - ……………………….. ``` -## Завдання 6 - -### `mv` +### 6. Переміщення файлів за допомогою `mv` -Команда "mv" означає переміщення. Він перейменовує файли або каталоги. Він також може переміщувати файли. +Команда `mv` (==Move==) надає інструмент для управління файлами в системі. Її основною функцією є переміщення або перейменування файлів і каталогів у файловій системі. Ця команда особливо корисна для реорганізації структури каталогів, виконання пакетних операцій над групами файлів та ефективного управління резервними копіями. -#### Щоб використовувати `mv` +#### Як використовувати `mv` -1. Змініть каталог на каталог folder1 і перегляньте його вміст +1. Змініть каталог на каталог `folder1` і перегляньте його вміст: ```bash - [root@localhost root]# cd folder1 + [root@localhost root]# cd folder1 [root@localhost folder1] ls - file11 file12 ``` -2. Ви перейменуєте file11 і file12 у каталозі folder1 на temp_file11 і temp_file12 відповідно. +2. Ви перейменуєте *file11* і *file12* в каталозі `folder1` відповідно на *temp_file11* і *temp_file12*: ```bash [root@localhost folder1]# mv file11 temp_file11 ``` -3. Знову перерахуйте вміст folder1. +3. Знову перерахуйте вміст `folder1`. ```bash [root@localhost folder1]# ls @@ -280,89 +264,86 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В Запишіть зміст: -4. Перейменуйте file12 на temp_file12: +4. Перейменуйте *file12* на *temp_file12*: ```bash [root@localhost folder1]# mv file12 temp_file12 ``` -5. Не змінюючи каталог, перейменуйте file21 і file22 у folder2 на temp_file21 і temp_file22 відповідно. +5. Не змінюючи каталог, перейменуйте файли *file21* та *file22* у `folder2` відповідно на *temp_file21* та *temp_file22*: ```bash - [root@localhost folder1]# mv /root/folder2/file21 /root/folder2/temp_file21 - - [root@localhost folder1]# mv /root/folder2/file22 /root/folder2/temp_file22 + [root@localhost folder1]# mv /root/folder2/file21 /root/folder2/temp_file21 + [root@localhost folder1]# mv /root/folder2/file22 /root/folder2/temp_file22 ``` -6. Не змінюючи ваш поточний каталог, перегляньте вміст folder2. +6. Не змінюючи ваш поточний каталог, перегляньте вміст `folder2`. !!! question "Питання" Яка команда для цього? Також перелічіть результат команди? -## Завдання 7 +### 7. Копіювання файлів за допомогою `cp` -### `cp` +Команда `cp` (==Copy==) дозволяє дублювати файли та каталоги з одного місця в інше в файловій системі, зберігаючи оригінальний файл без змін. Його простота у використанні та універсальність роблять його незамінним як для повсякденних операцій, так і для більш складних завдань системного адміністрування. Серед найкорисніших функцій команди `cp` є можливість збереження оригінальних атрибутів файлів під час копіювання, включаючи *права доступу*, *мітки часу* та *інформацію про власника*. Ця функція є особливо важливою під час роботи з файлами конфігурації або коли необхідно зберегти певні властивості документа. -Команда "cp" означає копію. Він створює копії файлів або каталогів. +#### Як використовувати `cp` -1. Змініть свій каталог на каталог folder2. +1. Змініть свій каталог на каталог `folder2`. -2. Скопіюйте вміст folder2 (temp_file21 і temp_file22) до folder1 +2. Скопіюйте вміст папки `folder2` (*temp_file21* та *temp_file22*) до папки `folder1`: ```bash - [root@localhost folder2]# cp temp_file21 temp_file22 ../folder1 + [root@localhost folder2]# cp temp_file21 temp_file22 ../folder1 ``` -3. Перелічіть вміст folder1. +3. Перелічіть вміст `folder1`. ```bash - [root@localhost folder2]# ls ../folder1 + [root@localhost folder2]# ls ../folder1 temp_file11 temp_file12 temp_file21 temp_file22 ``` -4. Перелічіть вміст folder2. Зауважте, що оригінальні копії temp_file21 і temp_file22 залишаються в folder2. +4. Перелічіть вміст `folder2`. Зверніть увагу, що оригінальні копії *temp_file21* та *temp_file22* залишаються в `folder2`. ```bash [root@localhost folder2]# ls temp_file21 temp_file22 ``` -## Завдання 8 +### 8. Визначення типу файлу за допомогою `file` -### `file` +Команда `file` є діагностичним інструментом, який дозволяє визначити тип файлу шляхом аналізу його вмісту. На відміну від розширень файлів, які можуть бути змінені або вводити в оману, ця команда перевіряє фактичну структуру даних, щоб точно визначити їх характер. Однією з найважливіших особливостей команди `file` є її здатність розрізняти різні типи текстових файлів, ідентифікуючи, наприклад, скрипти оболонки, вихідний код на різних мовах програмування, файли XML або JSON. Для бінарних файлів він може розпізнавати виконувані файли, спільні бібліотеки, зображення в різних форматах та багато інших типів структурованих даних. -Утиліта `file` використовується для визначення типів файлів або каталогів. - -#### Щоб використовувати `file` +#### Як використовувати `file` 1. Поверніться до домашнього каталогу. -2. Щоб перевірити, чи є "folder1" файлом або каталогом, впишіть: +2. Щоб перевірити, чи є `folder1` файлом або каталогом, впишіть: ```bash - [root@localhost root]# file folder1 + [root@localhost root]# file folder1 folder1: directory ``` -3. Перейдіть до каталогу folder1 +3. Перейдіть до каталогу `folder1` -4. Використовуйте утиліту `file`, щоб визначити тип файлу для temp_file11 +4. Використовуйте утиліту `file`, щоб визначити тип файлу для *temp_file11*: ```bash - [root@localhost folder1]# file temp_file11 + [root@localhost folder1]# file temp_file11 temp_file11: empty ``` -5. Скористайтеся утилітою `file`, щоб дізнатися тип файлу для всіх файлів у каталозі folder1. Перелік тут: +5. Скористайтеся утилітою `file`, щоб дізнатися тип файлу для всіх файлів у каталозі `folder1`. Перелік тут: -6. Змініть каталог на каталог /etc. +6. Змініть каталог на каталог `/etc`: ```bash [root@localhost folder1]# cd /etc ``` -7. Використовуйте утиліту `file`, щоб дізнатися тип файлу для файлу "passwd". +7. Використовуйте утиліту `file`, щоб дізнатися тип файлу для файлу *passwd*. ```bash [root@localhost etc]# file passwd @@ -372,17 +353,17 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В Який це тип файлу? -## Завдання 9 - -### `cat` +### 9. Перелічити та об'єднати файли за допомогою `cat` -`cat` є скороченням від concatenate, що означає, що файли з’єднуються разом. Команда `cat` також відобразить вміст цілого файлу на екрані. Ви будете використовувати `cat` разом із символом переспрямування “>” щоб створити файл. +Команда `cat` (скорочення від ==Concatenate==) є незамінним інструментом для управління текстовими файлами в Linux. Його основною функцією є відображення вмісту одного або декількох файлів безпосередньо в терміналі, але його також можна використовувати для створення, об'єднання або копіювання файлів. +Команда cat особливо корисна в поєднанні з іншими інструментами (такими як `grep` або `more`) для обробки або фільтрації тексту безпосередньо з терміналу. Незважаючи на свою простоту, це одна з найпоширеніших команд для швидкої обробки файлів. +Ви будете використовувати `cat` разом із символом перенаправлення «>» для створення файлу. #### Щоб створити файл за допомогою `cat` -1. Змініть каталог на каталог /root/folder1 +1. Змініть каталог на каталог `/root/folder1` -2. Створіть новий текстовий файл під назвою «first.txt» +2. Створіть новий текстовий файл з назвою *first.txt* ```bash [root@localhost folder1]# cat > first.txt @@ -396,14 +377,14 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В 4. Одночасно натисніть ++ctrl+c++. -5. Введіть «cat first.txt», щоб прочитати щойно введений текст. +5. Введіть `cat first.txt`, щоб прочитати щойно введений текст: ```bash - [root@localhost folder1]# cat first.txt + [root@localhost folder1]# cat first.txt This is a line from first.txt !! ``` -6. Створіть інший файл під назвою “second.txt” за допомогою `cat`. Введіть у файл наступний текст – «This is a line from second.txt!!» +6. Створіть інший файл під назвою *second.txt* за допомогою `cat`. Введіть у файл наступний текст – «This is a line from second.txt!!» !!! Question "Питання" @@ -411,80 +392,74 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В #### Щоб використовувати `cat` для об’єднання файлів -1. Ви об’єднаєте файли “first.txt” і “second.txt”. Впишіть: +1. Ви об’єднаєте файли *first.txt* та *second.txt*. Впишіть: ```bash - [root@localhost folder1]# cat first.txt second.txt + [root@localhost folder1]# cat first.txt second.txt ``` !!! Question "Питання" Який ваш вихід? -## Вправа 10 - -### `ftp` +### 10. Передача файлів за допомогою `ftp` -`ftp` — це програма-клієнт для використання та підключення до служб FTP через протокол передачі файлів. Програма дозволяє користувачам передавати файли на віддалений мережевий сайт і з нього. Це утиліта, яку ви можете часто використовувати. - -У цій вправі ви дізнаєтесь, як анонімно увійти на сервер FTP і завантажити файл із сервера за допомогою клієнтської програми `ftp`. +Команда `ftp` (File Transfer Protocol) — це інструмент командного рядка для передачі файлів між віддаленими та локальними системами. Хоча він був частково замінений більш сучасними та безпечними протоколами, такими як *SFTP* та *SCP*, він залишається корисним у застарілих контекстах або на серверах, які підтримують лише FTP. +FTP передає дані у вигляді **відкритого тексту**, включаючи облікові дані та вміст, тому його не рекомендується використовувати для передачі конфіденційної інформації. +Хоча FTP все ще використовується в деяких середовищах, для безпечних операцій краще використовувати зашифровані протоколи. +У цьому вправі ви дізнаєтеся, як анонімно увійти на FTP-сервер і завантажити файл із сервера за допомогою програми *ftp-клієнт*. !!! note "Примітка" Вам потрібно буде виконати вправи з попередньої лабораторної роботи, щоб продовжувати цю конкретну вправу, для якої потрібен доступний FTP-сервер, який працює десь доступно. -#### Щоб використовувати `ftp` +#### Як використовувати `ftp` 1. Увійдіть на свою машину як root -2. Змініть каталог на “/usr/local/src/”. +2. Змініть каталог на `/usr/local/src/` -3. Створіть новий каталог під назвою «завантаження» в каталозі «/usr/local/src/». +3. Створіть новий каталог під назвою `downloads` в каталозі `/usr/local/src/`. !!! Question "Питання" Яка команда для цього? -4. Змініть каталог на щойно створений каталог «завантажень». +4. Змініть каталог на щойно створений каталог `downloads` ```bash - [root@localhost src]# cd downloads + [root@localhost src]# cd downloads ``` -5. Введіть “ftp”, щоб запустити клієнт `ftp`. +5. Введіть `ftp`, щоб запустити клієнт *ftp client*: ```bash - [root@localhost downloads]# ftp + [root@localhost downloads]# ftp ftp> ``` 6. Для підключення до FTP-сервера введіть: ```bash - ftp> open < server-address> (Obtain the from your instructor) - ……… - + ftp> open < server-address> (Obtain the from your instructor) + ……… 220 localhost.localdomain FTP server (Version wu-2.6.2-5) ready. ……….. ``` -7. Увійдіть як анонімний користувач. Введіть «anonymous» у запиті: +7. Увійдіть як анонімний користувач. Введіть “*anonymous*” у запиті: ```bash Name (10.4.51.29:root): anonymous ``` -8. У вікні запиту пароля введіть будь-яку адресу електронної пошти та натисніть клавішу enter +8. У вікні запиту пароля введіть будь-яку *e-mail address* та натисніть клавішу ++enter++ ```bash - Password: *************** - + Password: *************** 230 Guest login ok, access restrictions apply. - Remote system type is UNIX. - Using binary mode to transfer files. - ftp> ``` @@ -498,10 +473,10 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В Що таке вихід двійкової команди і що таке двійковий режим "двійковий режим"? -10. Перелічіть поточні каталоги на ftp-сервері. Введіть «ls» у запит ftp (ftp>): +10. Перелічіть поточні каталоги на ftp-сервері. Введіть `ls` у запит *ftp prompt*: ```bash - ftp> ls + ftp> ls 227 Entering Passive Mode (10,0,4,5,16,103). 125 Data connection already open; Transfer starting. 11-23-43 10:23PM images @@ -509,34 +484,30 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В 226 Transfer complete. ``` -11. Змініть каталог на каталог «pub». Впишіть: +11. Змініть каталог на каталог `pub`. Впишіть: ```bash ftp> cd pub ``` -12. Використовуйте команду «ls», щоб отримати список файлів і каталогів у каталозі «pub». +12. Використовуйте команду `ls`, щоб отримати список файлів і каталогів у каталозі `pub` !!! Question "Питання" Скільки файлів і каталогів там зараз? -13. Завантажте файл під назвою «hello-2.1.1.tar.gz» у свій локальний каталог. Введіть «yes» у запиті. +13. Завантажте файл під назвою “*hello-2.1.1.tar.gz*” у свій локальний каталог. Введіть “*yes*” у запиті. ```bash - ftp> mget hello-2.1.1.tar.gz - mget hello-2.1.1.tar.gz? yes - + ftp> mget hello-2.1.1.tar.gz + mget hello-2.1.1.tar.gz? yes 227 Entering Passive Mode (10,0,4,5,16,252). - 125 Data connection already open; Transfer starting. - 226 Transfer complete. - 389363 bytes received in 0.0745 secs (5.1e+03 Kbytes/sec) ``` -14. Вийдіть із FTP-сервера та вийдіть із клієнта `ftp`. Впишіть: +14. Вийдіть із FTP-сервера та вийдіть із клієнта *ftp client*. Впишіть: ```bash ftp> bye @@ -544,41 +515,39 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В 15. Ви будете кинуті назад у свою локальну оболонку. -16. Переконайтеся, що ви все ще перебуваєте в каталозі «завантажень» локальної машини. +16. Переконайтеся, що ви все ще перебуваєте в каталозі `downloads` локальної машини. !!! question "Питання" Перелічіть файли в папці завантажень. -## Вправа 11 - -### Використання перенаправлення +### 11. Використання перенаправлення -Більшість утиліт і команд, якими ви користуєтеся в Linux, надсилають вихідні дані на екран. Екран називається стандартним виводом (stdout). Переспрямування дає змогу надіслати результат кудись ще – можливо, файл. +Більшість утиліт і команд, якими ви користуєтеся в Linux, надсилають вихідні дані на екран. Екран називається стандартним виводом (*stdout*). Переспрямування дає змогу надіслати результат кудись ще – можливо, файл. -Кожна програма, запущена в системі Linux, має три дескриптори відкритих файлів: stdin (0), stdout (1) і stderr (2). Ви можете перенаправляти або передавати їх окремо. Символи перенаправлення: “>, < “ +Кожна програма, запущена в системі Linux, має три відкриті дескриптори файлів: *stdin* **(0)**, *stdout* **(1)** та *stderr* **(2)**. Ви можете перенаправляти або «*передавати*» їх окремо. Символами перенаправлення є ++більше++ та ++менше++. -#### Щоб використовувати перенаправлення +#### Як використовувати перенаправлення -1. Переконайтеся, що ви все ще перебуваєте в каталозі folder1. +1. Переконайтеся, що ви все ще перебуваєте в каталозі `folder1`. -2. Ви будете використовувати переспрямування виводу, щоб переспрямувати вихід із команди ls (list) до текстового файлу під назвою myredirects +2. Ви будете використовувати перенаправлення виводу, щоб перенаправити вивід команди `ls` (*list*) у текстовий файл під назвою *myredirects*: ```bash - [root@localhost folder1]# ls > myredirects + [root@localhost folder1]# ls > myredirects ``` -3. Перегляньте новий файл (myredirects), створений у каталозі folder1. +3. Перегляньте вміст нового файлу (*myredirects*), створеного в каталозі `folder1`. ```bash - [root@localhost folder1] # cat myredirects + [root@localhost folder1] # cat myredirects temp_file11 temp_file12 temp_file21 temp_file22 myredirects ``` -4. Тепер ви перенаправите вихід команди file у той самий файл. Ви хочете дізнатися тип файлу для temp_file11 у каталозі folder1 і надіслати результат у свій файл myredirects +4. Тепер ви перенаправите вихід команди file у той самий файл. Ви хочете дізнатися тип файлу *temp_file11* у каталозі `folder1` і надіслати результат у файл *myredirects*: ```bash - [root@localhost folder1]# file temp_file11 > myredirects + [root@localhost folder1]# file temp_file11 > myredirects ``` 5. Перегляньте вміст файлу myredirects. @@ -587,51 +556,48 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В Воно змінилося. Що сталося? -6. Якщо ви хочете запобігти тому, що сталося вище, ви скористаєтеся подвійним символом перенаправлення «>>». Це додасть новий вихід до файлу замість його заміни. Впишіть: +6. Якщо ви хочете запобігти тому, що сталося вище, ви будете використовувати подвійний символ перенаправлення ++«>»+«>»++. Це додасть (*add*) новий вивід до файлу, замість того, щоб замінювати його. Впишіть: ```bash - [root@localhost folder1]# ls >> myredirects + [root@localhost folder1]# ls >> myredirects ``` -7. Тепер ще раз перевірте вміст файлу myredirects за допомогою `cat`. +7. Тепер знову перегляньте вміст файлу *myredirects* за допомогою команди `cat`. !!! Question "Питання" Запишіть його зміст тут: -### Використання перенаправлення для придушення виводу команди +#### Використання перенаправлення для придушення виводу команди Ви будете часто використовувати концепції, розглянуті тут, у Linux, тому, будь ласка, зверніть на це особливу увагу. Це може бути трохи складно. -Бувають випадки, коли ви не хочете, щоб користувач бачив результат команди, можливо, повідомлення про помилку. Зазвичай це відбувається тому, що дивні повідомлення про помилки часто лякають звичайних користувачів. У цих вправах ви надішлете вихід своїх команд на нульовий пристрій ( /dev/null/ ). Нульовий пристрій схожий на «бітове відро». Все, що ви кладете всередину, зникає назавжди. Ви також можете надіслати (або перенаправити) звичайний вихід команди на нульовий пристрій "null device". +Будуть випадки, коли ви не хочете, щоб користувач бачив результат виконання команди - наприклад, повідомлення про помилку. Зазвичай це відбувається тому, що дивні повідомлення про помилки часто лякають звичайних користувачів. У цьому вправі ви будете надсилати вихідні дані ваших команд на *нульовий пристрій* ( `/dev/null/` ). Пристрій *null* схожий на «*bit bucket*». Все, що ви кладете всередину, зникає назавжди. Ви також можете надсилати (або перенаправляти) звичайний вивід команди на *нульовий пристрій*. -Використовуйте наведені нижче вказівки. +Використовуйте наведені нижче вказівки: -```bash -|Redirector|

Function

| -| :- | :- | -|> file|Direct standard output to file| -|< file|Take standard input from file| -|Cmd1 | cmd2|Pipe; take standard out of cmd1 as standard input to cmd2| -|n> file|Direct file descriptor n to file| -|N< file|Set file as file descriptor n| -|>&n|Duplicate standard output to file descriptor n| -|<&n|Duplicate standard input from file descriptor n| -|&>file|Direct standard output and standard error to file| +| Перенаправлення | Функція | +| --------------- | ----------------------------------------------------------------- | +| > file | Направляє стандартний вивід у файл | +| < file | Приймає стандартний вхід з файлу | +| Cmd1 \ | cmd2 | Pipe; бере стандартний вивід cmd1 як стандартний ввід cmd2 | +| n> file | Направляє файловий дескриптор n до файлу | +| N< file | Встановлює файл як файловий дескриптор n | +| >&n | Дублює стандартний вивід у файловий дескриптор n | +| <&n | Дублює стандартний ввід з файлового дескриптора n | +| &>file | Направляє стандартний вивід і стандартну помилку у файл | -``` - -1. Переконайтеся, що ви все ще перебуваєте в каталозі folder1. Використовуйте опцію довгого списку команди ls у temp_file11: +1. Переконайтеся, що ви все ще перебуваєте в каталозі `folder1`. Використовуйте опцію довгого переліку команди `ls` для *temp_file11*: ```bash - [root@localhost folder1]# ls –l temp_file11 - -rw-r--r-- 1 root root 0 Jul 26 18:26 temp_file11 + [root@localhost folder1]# ls –l temp_file11 + -rw-r--r-- 1 root root 0 Jul 26 18:26 temp_file11 ``` -2. Ви перенаправите вихід тієї ж команди вище (ls –l temp_file11) на нульовий пристрій. +2. Ви перенаправите вихідні дані тієї ж команди, що наведена вище (`ls –l temp_file11`), на нульовий пристрій. ```bash - [root@localhost folder1]# ls –l temp_file11 > /dev/null + [root@localhost folder1]# ls –l temp_file11 > /dev/null ``` У вас не повинно бути результату. @@ -645,17 +611,16 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В Наведене вище є результатом типу помилки, яку було запрограмовано видати командою `ls`. -4. Виконайте ту саму команду, що й вище, з неправильним написанням імені файлу та перенаправте його до /dev/null +4. Виконайте ту саму команду, що й вище, з неправильним написанням імені файлу та перенаправте її до `/dev/null` ```bash - [root@localhost folder1]# ls -l te_file1 > /dev/null - + [root@localhost folder1]# ls -l te_file1 > /dev/null ls: te_file1: No such file or directory ``` !!! Question "Питання" - Що тут сталося? Чому вихідні дані все ще з’являються на екрані (stdout)? + Що тут сталося? Чому вихідні дані все ще з’являються на екрані (*stdout*)? 5. З різних причин ви можете придушити такі повідомлення про помилки, як наведене вище. Щоб зробити це, впишіть: @@ -663,32 +628,28 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В [root@localhost folder1]# ls –l te_file1 > /dev/null 2>&1 ``` - Ви не отримаєте результату. - - Цього разу стандартний вихід, а також стандартна помилка пригнічуються. + Ви не отримаєте результату. Цього разу стандартний вихід, а також стандартна помилка пригнічуються. Порядок перенаправлення ВАЖЛИВИЙ!! - Переспрямування читається зліва направо в командному рядку. - - Крайня ліва частина символу перенаправлення - «>»: надсилатиме стандартний вихід (stdout) до /dev/null. Тоді крайня права частина переспрямування - "2>&1 ": дублюватиме стандартну помилку (2) у стандартний вихід (1). + Переспрямування читається зліва направо в командному рядку. Найлівіша частина символу перенаправлення - ++greater++ - надсилає стандартний вивід (*stdout*) до `/dev/null`. Тоді права частина перенаправлення - `2>&1` буде дублювати стандартну помилку **(2)** до стандартного виводу **(1)**. - Отже, наведену вище команду можна прочитати так: перенаправити stdout(1) до “/dev/null”, а потім скопіювати stderr (2) до stdout + Отже, вищезазначену команду можна прочитати так: *перенаправити stdout(1) до «/dev/null», а потім скопіювати stderr (2) до stdout* 6. Щоб додатково продемонструвати важливість порядку перенаправлення. Спробуйте: ```bash - [root@localhost folder1]# ls –l tem_file 2>&1 > order.txt + [root@localhost folder1]# ls –l tem_file 2>&1 > order.txt ``` - Використовуйте команду `cat`, щоб перевірити вміст файлу “order.txt” + Використовуйте команду `cat`, щоб перевірити вміст файлу “*order.txt*” - Крайня ліва частина – «2>&1» скопіює стандартну помилку до стандартного виводу. Потім крайня права частина вищезазначеного – “ > order.txt» перенаправляє stdout до файлу order.txt. + Крайня ліва частина – `2>&1` скопіює стандартну помилку до стандартного виводу. Потім крайня права частина вищезазначеного – `> order.txt` перенаправляє *stdout* до файлу *order.txt*. 7. Спробуйте цей варіант описаного вище кроку: ```bash - [root@localhost folder1]# ls –l hgh_ghz 2> order2.txt > order2.txt + [root@localhost folder1]# ls –l hgh_ghz 2> order2.txt > order2.txt ``` !!! question "Питання" @@ -698,69 +659,61 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В 8. Щоб надіслати стандартний вивід і стандартну помилку в окремі файли, впишіть: ```bash - [root@localhost folder1]# ls –l tep_f > standard_out 2> standard_err + [root@localhost folder1]# ls –l tep_f > standard_out 2> standard_err ``` !!! question "Питання" Було створено два нових файли. Як називаються файли і який їх вміст? -9. Ви можете аналогічно переспрямувати як stdout, так і stderr до одного файлу, використовуючи: +9. Ви можете аналогічно перенаправити як *stdout*, так і *stderr* в один і той же файл, використовуючи: ```bash - [root@localhost folder1]# ls –l te_fil &> standard_both + [root@localhost folder1]# ls –l te_fil &> standard_both ``` -## Вправа 12 - -### `rm` +### 12. Видалення файлів за допомогою `rm` -Команда `rm` видаляє файли або каталоги. Ви збираєтеся використати `rm`, щоб видалити деякі з файлів, створених у попередніх вправах. +Команда `rm` (Remove) дозволяє назавжди видалити один або кілька файлів, каталогів та їх вміст без можливості відновлення, якщо не використовувати зовнішні засоби відновлення. Це потужна команда, але вона може бути небезпечною, якщо її використовувати неправильно, оскільки її дії не можна скасувати. З цієї причини важливо використовувати його з обережністю, завжди перевіряючи шляхи та імена файлів перед виконанням операції. Ви будете використовувати `rm` для видалення деяких файлів, які ви створили в попередніх вправах. -#### Щоб використати `rm` +#### Як використовувати `rm` -1. Перебуваючи в каталозі "folder1", видаліть файл standard_err. У запиті підтвердження введіть «y»: +1. Перебуваючи в каталозі `folder1`, видаліть файл *standard_err*. Введіть ++«y»++ у вікні підтвердження: ```bash - [root@localhost folder1]# rm standard_err + [root@localhost folder1]# rm standard_err rm: remove `standard_err'? y ``` -2. Видаліть файл «standard_out». Щоб запобігти запиту підтвердження перед видаленням файлу, скористайтеся параметром “–f “ з командою `rm`. +2. Видаліть файл *standard_out*. Щоб уникнути запиту на підтвердження перед видаленням файлу, використовуйте опцію `–f` разом із командою `rm`: ```bash - [root@localhost folder1]# rm -f standard_out + [root@localhost folder1]# rm -f standard_out ``` -3. Поверніться до домашнього каталогу (/root) і видаліть каталог «folder2». Щоб використати `rm` для видалення папки, потрібно використати перемикач «–r»: +3. Поверніться до свого домашнього каталогу (`/root`) і видаліть каталог `folder2`. Щоб видалити папку за допомогою команди `rm`, потрібно використовувати параметр `–r`: ```bash - [root@localhost root]# rm -r folder2 - - rm: descend into directory `folder2'? y - - rm: remove `folder2/temp_file21'? y - - rm: remove `folder2/temp_file22'? y - - rm: remove directory `folder2'? y + [root@localhost root]# rm -r folder2 + rm: descend into directory 'folder2'? y + rm: remove 'folder2/temp_file21'? y + rm: remove 'folder2/temp_file22'? y + rm: remove directory 'folder2'? y ``` !!! Question "Питання" Вам знову було запропоновано підтвердити видалення кожного файлу в каталозі та самого каталогу. Яку опцію ви використаєте з командою `rm –r`, щоб запобігти цьому? -## Вправа 13 +### 13. Вивчення `vi` -### Вивчення `vi` +Редактор `vi` є одним з найпотужніших і найпоширеніших текстових редакторів, доступних в системах Linux і Unix-подібних системах. Це незамінний інструмент для системних адміністраторів та розробників завдяки своїй ефективності та універсальності. На відміну від багатьох сучасних редакторів, `vi` працює переважно в текстовому режимі, пропонуючи швидкі команди та комбінації клавіш, які дозволяють редагувати файли з надзвичайною точністю та швидкістю. -`vi` — текстовий редактор. Його можна використовувати для редагування всіх видів звичайного тексту. Це особливо корисно для редагування програм. +Спочатку його освоєння може бути складним, але після того, як ви опануєте основні функції, він стане незамінним інструментом для редагування конфігураційних файлів, скриптів і вихідного коду безпосередньо з терміналу. `vi` - це великий товстий монстр, який може робити майже все, включаючи приготування кави чи какао!! -Замість того, щоб намагатися навчити вас `vi`, ця вправа вкаже вам на інструмент, який може краще ознайомити вас з `vi`. - -Будь ласка, знайдіть час, щоб ознайомитися з онлайн-підручником `vi` (точніше `vim`). Просто дотримуйтесь інструкцій. +Замість того, щоб намагатися навчити вас `vi`, ця вправа вкаже вам на інструмент, який може краще ознайомити вас з `vi`. Будь ласка, знайдіть час, щоб ознайомитися з онлайн-підручником `vi` (точніше `vim`). Просто дотримуйтесь інструкцій. #### Для вивчення `vi` @@ -768,15 +721,13 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В [root@localhost root]# vimtutor -## Вправа 14 - -### Пошук файлів: (`find` та `locate`) +### 14. Пошук файлів за допомогою `find` та `locate` У цій вправі буде розглянуто дві найпопулярніші утиліти, які використовуються для пошуку файлів і каталогів у файловій системі. Це команди `find` і `locate`. #### `find` -Утиліта `find` існує вже давно. Вона рекурсивно сканує каталоги, щоб знайти файли, які відповідають заданому критерію. +Команда `find` дозволяє шукати файли та каталоги у файловій системі за широким спектром критеріїв, таких як ім'я, тип, розмір, дата модифікації, права доступу та багато іншого. Його здатність виконувати дії над знайденими результатами, такі як видалення, переміщення або обробка файлів, робить його незамінним інструментом для системних адміністраторів та досвідчених користувачів. Загальний синтаксис `find` має вигляд: @@ -784,59 +735,35 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В find [path] [options] [criterion] [action] ``` -Якщо ви не вкажете жодного каталогу чи шляху, пошук буде здійснюватися в поточному каталозі. Якщо ви не вкажете критерій, це еквівалентно "true", тому всі файли будуть знайдені. Утиліта `find` має багато параметрів для будь-якого типу пошуку файлу. Нижче наведено лише деякі параметри, критерії та дії. - -```bash -ОПЦІЇ: - --xdev: не шукайте в каталогах, розташованих на інших файлових системах; - --mindepth : спуститися принаймні на рівнів нижче зазначеного каталогу раніше пошуку файлів; - --maxdepth : шукати файли, розташовані не більше ніж на n рівнів нижче вказаного каталогу; - --follow: перейдіть за символічними посиланнями, якщо вони посилаються на каталоги. - --daystart: у разі використання тестів, пов’язаних із часом (див. нижче), візьміть початок поточного дня як позначку часу замість типової (за 24 години до поточного часу). -``` - -```bash -КРИТЕРІЇ - --впишіть : пошук заданого типу файлу; може бути одним із: f (звичайний файл), d (каталог), - -l (символічне посилання), s (socket), b (файл режиму блокування), c (файл символьного режиму) або - -p (іменований pipe); - --name : знайти файли, імена яких відповідають заданим ; - --iname : like - назва, але ігнорувати регістр; - --atime , -amin : знайти файли, доступ до яких був останні дні тому (-atime) або хвилини тому (-amin). Ви також можете вказати + або -, у цьому випадку пошук здійснюватиметься для файлів, до яких було відкрито щонайбільше або принаймні днів/хвилин тому; - --anewer : знайти файли, до яких відкривався нещодавно, ніж файл ; - --ctime , -cmin , -cnewer : такий саме як -atime, -amin та -anewer, але застосовується до останнього часу, коли вміст файлу було змінено; - --regex : такий саме як -name, але шаблон розглядається як регулярний вираз; - --iregex : такий саме як -regex, але ігнорувати регістр. -``` - -```bash -ДІЇ: - --print: просто друкує назву кожного файлу на стандартному виводі. Це типова дія; - --ls: виводить на стандартний вивід еквівалент ls -ilds для кожного знайденого файлу; - --exec : виконує команду для кожного знайденого файлу. Командний рядок має закінчуватися символом ;, який потрібно екранувати, щоб оболонка не інтерпретувала його; позиція файлу позначена {}. - --ok : те саме, що -exec, але запитувати підтвердження для кожної команди. -``` - -#### Щоб використовувати `find` +Якщо ви не вказали жодного каталогу або шляху, `find` буде шукати в поточному каталозі. Якщо ви не вкажете критерій, це буде еквівалентно «*true*», отже, будуть знайдені всі файли. Утиліта `find` має багато параметрів для будь-якого типу пошуку файлу. Нижче наведено лише деякі параметри, критерії та дії. + +| Параметр | Опис | +| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| -xdev | не здійснює пошук у каталогах, розташованих в інших файлових системах | +| -mindepth `` | спускається щонайменше на `` рівнів нижче вказаного каталогу перед пошуком файлів | +| -maxdepth `` | шукає файли, розташовані на рівні не більше `` нижче вказаного каталогу | +| -follow | слідує за символічними посиланнями, якщо вони ведуть до каталогів | +| -daystart | при використанні тестів, пов'язаних з часом (див. нижче), бере початок поточного дня як мітку часу замість стандартного значення (24 години до поточного часу) | + +| Критерій | Опис | +| ------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| -type `` | пошук певного типу файлів; `` може бути одним з наступних: **f** (*звичайний файл*), **d** (*каталог*) **l** (*символічне посилання*), **s** (*сокет*), **b** (*файл у блоковому режимі*), **c** (*файл у символьному режимі*) або **p** (*іменований канал*) | +| -name `` | знаходить файли, імена яких відповідають заданим `` | +| -iname `` | як *-name*, але ігнорує регістр | +| -atime ``, -amin `` | знаходить файли, до яких востаннє зверталися `` днів тому (*-atime*) або `` хвилин тому (*-amin*). Ви також можете вказати `+` або `-`, у цьому випадку пошук буде здійснюватися для файлів, до яких було здійснено доступ відповідно *найбільше* або *найменше* `` днів/хвилин тому | +| -anewer `` | знаходить файли, до яких було здійснено доступ пізніше, ніж до файлу `` | +| -ctime ``, -cmin ``, -cnewer `` | так само, як для *-atime*, *-amin* та *-anewer*, але застосовується до останнього часу, коли вміст файлу було змінено | +| -regex `` | те саме, що й *-name*, але шаблон розглядається як регулярний вираз | +| -iregex `` | те саме, що *-regex*, але ігнорує регістр | + +| Дія | Опис | +| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| -print | просто виводить назву кожного файлу на стандартний вивід. Це стандартна дія | +| -ls | виводить на стандартний вивід еквівалент `ls -ilds` для кожного знайденого файлу | +| -exec `` | виконує команду `` для кожного знайденого файлу. Командний рядок `` повинен закінчуватися символом `;`, який необхідно екранувати, щоб оболонка не інтерпретувала його; позиція файлу позначається символами `{}` | +| -ok `` | те саме, що *-exec*, але запитує підтвердження для кожної команди | + +#### Як використовувати `find` 1. Переконайтеся, що ви перебуваєте у своєму домашньому каталозі. @@ -844,36 +771,24 @@ p (іменований pipe); ```bash [root@localhost root]# find - - ……….. - ./.bash_profile - ./.bashrc - ./.cshrc - ./.tcshrc - ./.viminfo - ./folder1 - ./folder1/first.txt - ………… ``` - Ваші результати показують типову поведінку find, коли використовується без жодного параметра. - - Він рекурсивно відображає всі файли та каталоги (включаючи приховані файли) у робочому каталозі. + Ваш результат показує стандартну поведінку команди find при використанні без будь-яких опцій. +Вона відображає всі файли та каталоги (*включно з прихованими файлами*) у робочому каталозі рекурсивно. -3. Тепер використовуйте `find`, щоб знайти лише каталоги у вашому pwd. Впишіть: +3. Тепер використовуйте `find`, щоб знайти лише каталоги у вашому *pwd*. Впишіть: ```bash - [root@localhost root]# find -type d - . + [root@localhost root]# find -type d ./folder1 ./folder2 ……… @@ -881,12 +796,12 @@ p (іменований pipe); !!! question "Питання" - З наведеної вище команди «find –type d»; що таке «option», що таке «path», що таке «criterion» і, нарешті, що таке «action»? + З наведеної вище команди `find –type d`; що таке “*option*”, що таке “*path*”, що таке “*criterion*” і, нарешті, що таке “*action*? -4. Далі ви шукатимете всі файли у вашій системі, які закінчуються суфіксом «.txt». +4. Далі ви шукатимете всі файли у вашій системі, які закінчуються суфіксом “*.txt*”: ```bash - [root@localhost root]# find / -maxdepth 3 -name "*.txt" -print + [root@localhost root]# find / -maxdepth 3 -name "*.txt" -print /root/folder1/first.txt /root/folder1/second.txt /root/folder1/order.txt @@ -895,51 +810,43 @@ p (іменований pipe); !!! question "Питання" - Знову з наведеної вище команди; що таке «option», що таке «path», що таке «criterion» і, нарешті, що таке «action»? (ПІДКАЗКА: дія = “- print”) - - Пошук виконуватиметься лише на 3 каталоги вглиб від каталогу “/”. + Знову з наведеної вище команди; що таке “*option*”, “*path*”, “*criterion*” and “*action*”? (ПІДКАЗКА: дія = “- print”) - Зірочка, яка використовується в наведеній вище команді, є одним із символів підстановки в Linux. + Пошук буде виконуватися тільки в 3 каталогах, розташованих глибше каталогу `/`. Зірочка, використана у вищезазначеній команді, є одним із символів «*wild card*» в Linux. +Використання символів wild-card в Linux називається «*globbing*». - Використання символів підстановки в Linux називається «глоббуванням». - -5. Використовуйте команду `find`, щоб знайти всі файли у вашому “pwd”, які мають розмір “менший” за 200 кілобайт. Впишіть: +5. Використовуйте команду `find`, щоб знайти всі файли у вашому “*pwd*”, які мають розмір “менший” за 200 кілобайт. Впишіть: ```bash - [root@localhost root]# find . –size -200k + [root@localhost root]# find . –size -200k ``` 6. Використовуйте команду `find`, щоб знайти всі файли у вашому pwd, які «більші» за 10 кілобайт, а також відобразити їхній «тип файлу». Впишіть: ```bash - [root@localhost root]# find . –size +10k –exec file "{ }" ";" + [root@localhost root]# find . –size +10k –exec file "{ }" ";" ``` #### `locate` -Синтаксис команди `find` іноді може бути досить складним у використанні; і через інтенсивний пошук він може бути повільним. Альтернативною командою є `locate`. - -`locate` здійснює пошук у попередньо створеній базі даних усіх файлів у файловій системі. - -Він покладається на програму `updatedb`. +Команда `locate` дозволяє шукати файли та каталоги в системі. На відміну від інших команд, таких як `find`, які виконують пошук у реальному часі, `locate` базується на попередньо скомпільованій базі даних, що містить шляхи до всіх файлів у системі, забезпечуючи майже миттєві результати. Ця база даних зазвичай періодично оновлюється за допомогою команди `updatedb`, яка керується *завданням cron*. Завдяки своїй ефективності, `locate` особливо корисний для швидкого пошуку файлів або папок без необхідності вручну сканувати всю файлову систему. +Однак важливо пам'ятати, що результати можуть бути не завжди актуальними, якщо база даних не була нещодавно синхронізована з поточним станом системи. -```bash -search usage: - -locate [-qi] [-d ] [--database=] ... - -locate [-r ] [--regexp=] +| Використання пошуку: | +| --------------------------------------------------------------------------------------- | +| locate [-qi] [-d ``] [--database=``] ``... | +| locate [-r ``] [--regexp=``] | -database usage: locate [-qv] [-o ] [--output=] +| Використання бази даних: | +| --------------------------------------------------------------------------------------------------------------------------------- | +| locate [-qv] [-o ``] [--output=``] | +| locate [-e ``] [-f ``] [-l ``] [-c] [-U ``] [-u] [`pattern...`] | -locate [-e ] [-f ] [-l ] - -[-c] <[-U ] [-u]> - -general usage: locate [-Vh] [--version] [--help] -``` +| Загальне використання: | +| ------------------------------------- | +| locate \[-Vh\] \[--version\] [--help] | -#### Щоб використовувати `locate` +#### Як використовувати `locate` 1. Перейдіть до каталогу folder1 і створіть порожні файли temp1, temp2 і temp3: diff --git a/docs/labs/systems_administration_I/lab7-software_management.uk.md b/docs/labs/systems_administration_I/lab7-software_management.uk.md index 44e75c4ff0..0ce17e4677 100644 --- a/docs/labs/systems_administration_I/lab7-software_management.uk.md +++ b/docs/labs/systems_administration_I/lab7-software_management.uk.md @@ -9,7 +9,7 @@ tags: # Лабораторна робота 7: Керування та інсталяція програмного забезпечення -## Завдання +## Цілі Після виконання цієї лабораторної роботи ви зможете: @@ -704,7 +704,7 @@ DNF можна використовувати для перевірки та в Сценарій, який зазвичай дозволяє налаштувати програмне забезпечення, зазвичай має влучну назву «configure» -!!! tip "Порада" +!!! Tip "Порада" ```` Переконайтеся, що ви встановили групу пакетів «Інструменти розробки» перед виконанням наступних вправ. diff --git a/docs/labs/systems_administration_I/lab8-system_and_process_monitoring-I.uk.md b/docs/labs/systems_administration_I/lab8-system_and_process_monitoring-I.uk.md index 9a0cb33ec6..04a559cdc9 100644 --- a/docs/labs/systems_administration_I/lab8-system_and_process_monitoring-I.uk.md +++ b/docs/labs/systems_administration_I/lab8-system_and_process_monitoring-I.uk.md @@ -19,7 +19,7 @@ tags: # Лабораторна робота 8: Моніторинг системи та процесів -## Завдання +## Цілі Після виконання цієї лабораторної роботи ви зможете: @@ -155,7 +155,7 @@ tags: (sleep 3600 & MYPROC1=$! && echo PID is: $MYPROC1) 2>/dev/null ``` - Вихід + Вихід: ```bash PID is: 1331933 @@ -185,7 +185,7 @@ tags: (sleep 3600 & MYPROC2=$! && echo PID is: $MYPROC2) 2>/dev/null ``` - Вихід + Вихід: ```bash PID is: 1333258 @@ -367,7 +367,7 @@ tags: bash -c 'while true; do echo "Default priority: The PID is $$"; done' ``` - Вихід + Вихід: ```bash Default priority: The PID is 2185209 @@ -422,7 +422,7 @@ tags: nice -n 19 bash -c 'while true; do echo "Low priority: The PID is $$"; done' ``` - Вихід + Вихід: ```bash Low priority: The PID is 2180254 @@ -454,7 +454,7 @@ tags: ps -C find -o pid= ``` - Вихід + Вихід: ```bash 2577072 @@ -472,10 +472,10 @@ tags: renice -n -10 -p $(ps -C find -o pid=) ``` - Вихід + Вихід: ```bash - (process ID) old priority 0, new priority -10 + (process ID) old priority 0, new priority -10 ``` Замініть "" (вище) фактичним PID запущеного процесу. @@ -498,7 +498,7 @@ tags: renice -n 10 -p ``` - Вихід + Вихід: ```bash 2338530 (process ID) old priority -10, new priority 10 @@ -688,7 +688,7 @@ tags: jobs -l ``` - Вихід + Вихід: ```bash [1]- 2977364 Stopped vi foobar1.txt @@ -717,7 +717,7 @@ tags: kill -SIGKILL %1 %2 && jobs ``` - Вихід + Вихід: ```bash [1]- Killed vi foobar1.txt diff --git a/docs/labs/systems_administration_II/lab3-bootup_and_startup.uk.md b/docs/labs/systems_administration_II/lab3-bootup_and_startup.uk.md index 184e8767f8..2b559d2a6c 100644 --- a/docs/labs/systems_administration_II/lab3-bootup_and_startup.uk.md +++ b/docs/labs/systems_administration_II/lab3-bootup_and_startup.uk.md @@ -11,7 +11,7 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В # Лабораторна робота 3: Процеси завантаження та запуску -## Завдання +## Цілі Після виконання цієї лабораторної роботи ви зможете: @@ -455,7 +455,7 @@ author: Wale Soyinka contributors: Steven Spencer, Ganna Zhyrnova tested on: В Чому, на вашу думку, PID відрізняються кожного разу, коли ви перезапускаєте службу? - !!! tip "Порада" + !!! Tip "Підказка" Функціональність старої доброї класичної команди служби перенесено для бездоганної роботи в керованих системах systemd. Ви можете використовувати такі команди служби, як наведені нижче, щоб зупинити, запустити, перезапустити та переглянути статус служби `smartd`. diff --git a/docs/labs/systems_administration_II/lab4-advanced_system_process_monitoring.uk.md b/docs/labs/systems_administration_II/lab4-advanced_system_process_monitoring.uk.md index a64b9f53a8..7904196497 100644 --- a/docs/labs/systems_administration_II/lab4-advanced_system_process_monitoring.uk.md +++ b/docs/labs/systems_administration_II/lab4-advanced_system_process_monitoring.uk.md @@ -19,7 +19,7 @@ tags: # Лабораторна робота 4: Розширений моніторинг системи та процесів -## Завдання +## Цілі Виконавши цю лабораторну роботу, ви зможете @@ -206,7 +206,7 @@ tags: sudo perf stat -e cycles ./generate_cpu_load.sh 500 ``` - Вихід + Вихід: ```bash ...... @@ -278,7 +278,7 @@ tags: export MYPID=$(pgrep strace_script) ; echo $MYPID ``` - Вихід + Вихід: ```bash 4006301 @@ -316,7 +316,7 @@ tags: Наша зразкова система показує підсумковий звіт таким чином: - Вихід + Вихід: ```bash strace: Process 4006301 attached @@ -587,7 +587,7 @@ NUMA означає "нерівномірний доступ до пам'яті" journalctl -xe -f | grep -i memory ``` - !!! tip "Порада" + !!! Tip "Порада" ```` Ви можете швидко скористатися командою ps, щоб перевірити приблизне використання пам'яті процесом, якщо вам відомий PID процесу, запустивши: @@ -694,7 +694,7 @@ NUMA означає "нерівномірний доступ до пам'яті" #### Щоб створити процес стрес-тесту вводу-виводу -1. Запустіть процес `dd`, щоб створити великий файл з назвою /tmp/io_stress. Також запишіть і збережіть PID процесу dd у змінній під назвою `MYPID`. Впишіть: +1. Запустіть процес `dd`, щоб створити великий файл з назвою `/tmp/io_stress`. Також запишіть і збережіть PID процесу dd у змінній під назвою `MYPID`. Впишіть: ```bash dd if=/dev/zero of=/tmp/io_stress bs=10M count=500 oflag=dsync \ @@ -717,7 +717,7 @@ NUMA означає "нерівномірний доступ до пам'яті" iotop -p $MYPID ``` -Вихідні дані відображатимуть швидкість читання/запису вводу/виводу для процесу io_stress.sh, яка не повинна перевищувати 1 МБ/с відповідно до обмеження. + На виході буде відображено швидкість читання/запису вводу-виводу для процесу io_stress.sh, яка не повинна перевищувати 1 МБ/с відповідно до обмеження. #### Щоб видалити `cgroups` @@ -743,7 +743,7 @@ CPU affinity прив’язує конкретні процеси або пот lscpu | grep "On-line" ``` -2. Давайте створимо зразок процесу за допомогою утиліти dd і збережемо його PID у змінній MYPID. Впишіть: +2. Створіть зразок процесу за допомогою утиліти `dd` і збережіть його PID у змінній `MYPID`. Впишіть: ```bash dd if=/dev/zero of=/dev/null & export MYPID="$!" @@ -756,7 +756,7 @@ CPU affinity прив’язує конкретні процеси або пот taskset -p $MYPID ``` - Вихід + Вихід: ```bash pid 1211483's current affinity mask: f @@ -779,13 +779,13 @@ CPU affinity прив’язує конкретні процеси або пот ### Щоб встановити/змінити схожість ЦП -1. Встановіть приналежність ЦП процесу dd до одного ЦП (ЦП 0). Впишіть: +1. Встановіть афінність процесора для процесу `dd` на один процесор (процесор 0). Впишіть: ```bash taskset -p 0x1 $MYPID ``` - Вихід + ВИХІД ```bash pid 1211483's current affinity mask: f @@ -798,9 +798,9 @@ CPU affinity прив’язує конкретні процеси або пот taskset -p $MYPID ``` - Вихідні дані вказують на маску спорідненості ЦП процесу з PID $MYPID. Маска спорідненості дорівнює «1» у десятковій системі, що перекладається як «1» у двійковій системі. Це означає, що процес наразі прив’язаний до ядра ЦП 0. + Вихідні дані вказують маску афінності процесора процесу з PID `$MYPID`. Маска спорідненості дорівнює «1» у десятковій системі, що перекладається як «1» у двійковій системі. Це означає, що процес наразі прив’язаний до ядра ЦП 0. -3. Тепер встановіть приналежність ЦП процесу dd до кількох ЦП (ЦП 0 і 1). Впишіть: +3. Тепер встановіть афінність процесора для процесу `dd` на кілька процесорів (процесори 0 і 1). Впишіть: ```bash taskset -p 0x3 $MYPID @@ -825,13 +825,13 @@ CPU affinity прив’язує конкретні процеси або пот 5. Запустіть утиліту `top` або `htop` в окремому терміналі та спостерігайте, якщо ви бачите щось цікаве, експериментуючи з різними конфігураціями `taskset` для процесу. -6. Все готово. Використовуйте його PID ($MYPID), щоб припинити процес dd. +6. Все готово. Використовуйте його PID (`$MYPID`) для завершення процесу `dd`. ## Завдання 9 ### `systemd-run` -Команда `systemd-run` створює та запускає тимчасові службові блоки для виконання команд або процесів. Вона також може запускати програми в блоках тимчасової області дії, блоках обслуговування, що запускаються шляхом, сокетом або таймером. +Команда `systemd-run` створює та запускає тимчасові службові блоки для виконання команд або процесів. Він також може запускати програми в одиницях тимчасового обсягу, одиницях обслуговування, що запускаються за допомогою шляху, сокета або таймера. У цій вправі показано, як використовувати `systemd-run` для створення тимчасових службових одиниць у `systemd`. @@ -851,7 +851,7 @@ CPU affinity прив’язує конкретні процеси або пот #### Щоб установити обмеження ресурсу пам’яті для тимчасової служби -1. Використовуйте параметр `--property` разом із `systemd-run`, щоб обмежити максимальне використання пам’яті для тимчасового процесу до 200 МБ. Впишіть: +1. Використовуйте параметр `--property` разом із `systemd-run`, щоб обмежити максимальне використання пам’яті для тимчасового процесу до 200 Мб. Впишіть: ```bash systemd-run --unit=mylimited.service --property=MemoryMax=200M sleep 300 @@ -871,14 +871,14 @@ CPU affinity прив’язує конкретні процеси або пот #### Щоб установити обмеження на ресурс ЦП для тимчасової служби -1. Давайте створимо тимчасовий блок `systemd` під назвою "myrealtime.service". Запустіть myrealtime.service із спеціальною політикою планування циклічного (rr) і пріоритетом. Впишіть: +1. Давайте створимо тимчасовий блок `systemd` під назвою "myrealtime.service". Запустіть `myrealtime.service` із певною політикою планування round robin (rr) та пріоритетом. Впишіть: ```bash systemd-run --unit=myrealtime.service \ --property=CPUSchedulingPolicy=rr --property=CPUSchedulingPriority=50 sleep 300 ``` -2. Перегляньте статус myrealtime.service. Крім того, захопіть/збережіть основний [sleep] PID у змінній під назвою MYPID. Впишіть: +2. Перевірте статус `myrealtime.service`. Крім того, захопіть/збережіть основний [sleep] PID у змінній під назвою MYPID. Впишіть: ```bash MYPID=$(systemctl status myrealtime.service | awk '/Main PID/ {print $3}') @@ -956,7 +956,7 @@ CPU affinity прив’язує конкретні процеси або пот ~/cpu_load_generator.sh & echo $! ``` -3. Зберіть PID для основного процесу `openssl`, запущеного в сценарії cpu_load_generator.sh. Зберігайте PID у змінній з іменем MYPID. Впишіть: +3. Зафіксуйте PID для основного процесу `openssl`, запущеного в скрипті `cpu_load_generator.sh`. Збережіть PID у змінній з іменем `$MYPID`. Впишіть: ```bash export MYPID=$(pidof openssl) ; echo $MYPID @@ -964,13 +964,13 @@ CPU affinity прив’язує конкретні процеси або пот #### Щоб використовувати `schedtool` для перевірки поточної політики планування -1. Використовуйте команду `schedtool`, щоб відобразити інформацію про планування процесу з PID $MYPID. Впишіть: +1. Використовуйте команду `schedtool`, щоб відобразити інформацію про планування процесу з PID `$MYPID`. Впишіть: ```bash schedtool $MYPID ``` - Вихід + Вихід: ```bash PID 2565081: PRIO 0, POLICY N: SCHED_NORMAL , NICE 0, AFFINITY 0xf diff --git a/docs/release_notes/10_0.uk.md b/docs/release_notes/10_0.uk.md index af887d60b3..a207fbf18c 100644 --- a/docs/release_notes/10_0.uk.md +++ b/docs/release_notes/10_0.uk.md @@ -46,7 +46,7 @@ Rocky Linux 10 підтримується на таких архітектура #### Зовсім нова підтримка архітектури RISC-V -Команда розробників релізу Rocky Linux довго та наполегливо працювала над тим, щоб забезпечити підтримку Rocky Linux 10 для певних реалізацій RISC-V.\ +Команда інженерів Rocky Linux Release Engineering довго і наполегливо працювала над тим, щоб Rocky Linux 10 став доступним для певних «реалізацій RISC-V». Платформи/підсистеми, що підтримувалися на день випуску, включають StarFive VisionFive 2 (VF2), **QEMU** та SiFive HiFive Premier P550. Щоб отримати докладнішу інформацію про цю віху, зокрема про підтримку RISC-V у RL10, відвідайте [цей сайт](https://rockylinux.org/news/rockylinux-support-for-riscv). @@ -106,7 +106,7 @@ Kea DHCP замінює DHCP-сервер ISC, термін служби яко У попередніх версіях Rocky Linux функція об'єднання мережевих карт була застарілою. У RL 10 це тепер повністю видалено. Як заміну, налаштуйте зв'язок замість мережевої команди. -### Пам’ять +### Сховище Окрім наступних змін, з RL 10 додано, оновлено або видалено кілька драйверів пристроїв, пов’язаних із сховищем. @@ -175,21 +175,30 @@ kernel-6.12.0-130.el10.x86_64 Модульність DNF застаріла, і Rocky Linux не має наміру надавати контент AppStream як модулі в RL 10. У майбутньому RL 10 може надавати додаткові версії програм у вигляді RPM-пакетів, колекцій програмного забезпечення або Flatpaks. +Іншими словами, команда `dnf module` була вилучена з RL 10, оскільки пакетний менеджер DNF нового покоління (`dnf5`) уніфікував API і більше не використовує стару модульну архітектуру для управління декількома версіями програмного забезпечення. Відповідні порівняння наведені нижче: + +| опис | Старий (`dnf module`) | Новий | +| :------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------: | :---------------------------- | +| Переглянути доступні версії | `dnf module list ` | `dnf repoquery ` | +| Встановити конкретну версію | `dnf module enable nginx:1.14 && dnf module install nginx:1.14` | `dnf install nginx-1.26.3` | +| Видалити конкретну версію | `dnf -y module remove --all :` or `dnf -y module remove --all :/` | `dnf remove -` | +| Переключитися на потрібну версію | `dnf -y module remove --all : && dnf module reset && dnf module enable :` | Не потрібно перемикатися | + ### Середовище робочого столу У RL 10 Wayland замінює сервер X.Org. Xwayland підтримуватиме більшість клієнтів X11, які ще не були портовані на Wayland. Деякі настільні програми та компоненти також замінено в RL 10. #### Зміни компонентів робочого столу -| Видалено | Замінено | -| :------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- | -| текстовий редактор gedit | GNOME Text Editor (gnome-text-editor) | -| Додаток Tweaks | Використовуйте параметри налаштувань у налаштуваннях GNOME та/або використовуйте Flatpak на Flathub | -| Festival speech synthesizer | Espeak NG | -| Eye of GNOME (eog) image viewer | GNOME Image Viewer (loupe) | -| Cheese camera application | Snapshot application | -| GNOME Terminal | ptyxis terminal | -| PulseAudio daemon (but not the client interfaces) | Pipewire (вже був стандартним у RL 9) | +| Видалено | Замінено | +| :----------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- | +| текстовий редактор gedit | GNOME Text Editor (gnome-text-editor) | +| Додаток Tweaks | Використовуйте параметри налаштувань у налаштуваннях GNOME та/або використовуйте Flatpak на Flathub | +| Festival speech synthesizer | Espeak NG | +| Eye of GNOME (eog) image viewer | GNOME Image Viewer (loupe) | +| Cheese camera application | Snapshot application | +| GNOME Terminal | ptyxis terminal | +| Демон PulseAudio (але не клієнтські інтерфейси) | Pipewire (вже був стандартним у RL 9) | Кілька графічних програм для робочого столу більше не входять до дистрибутиву Rocky Linux 10. У більшості випадків ви можете отримати ці програми з основних джерел або як Flatpak на Flathub. @@ -214,11 +223,11 @@ gnome-remote-desktop, використовуючи RDP, замінює TigerVNC | Видалено | Замінено | | :--------------------------------- | :---------------------------------------------------------------------------------------------- | | power-profiles-daemon CPU throttle | шар перекладу tuned-ppd, який підтримує програми, написані для демона power-profiles | -| redis in-memory key-value database | valkey (a fork of redis) in-memory key-value database ^1 | +| redis in-memory key-value database | valkey (a fork of redis) in-memory key-value database ^1 | | sendmail mail transfer agent | Rocky Linux рекомендує перейти на агент передачі пошти Postfix. | | spamassassin email spam filter | Фільтр спаму електронної пошти spamassassin тепер доступний у репозиторії EPEL. | -1 Окрім `valkey`, у репозиторії Plus є пакет `valkey-compat-redis`. +[^1]: **valkey**: Форк redis. 1 Окрім `valkey`, у репозиторії Plus є пакет `valkey-compat-redis`. ### Динамічні мови програмування diff --git a/docs/release_notes/9_0.uk.md b/docs/release_notes/9_0.uk.md index c23b3822f5..0eeba011cf 100644 --- a/docs/release_notes/9_0.uk.md +++ b/docs/release_notes/9_0.uk.md @@ -171,6 +171,6 @@ Rocky Linux 9 було з любов’ю створено за допомого * **Обмеження використання мінімальної установки ISO** – більшість пакетів, пов’язаних із безпекою, не працюватимуть. Якщо під час інсталяції вам потрібні профілі та пакети безпеки/SCAP, використовуйте DVD ISO. -## Повідомлення про помилки +## Повідомлення про Проблеми -Будь ласка, повідомляйте про будь-які виявлені помилки в [Відстеження помилок Rocky Linux](https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким способом на наших [форумах](https://forums.rockylinux.org), [Mattermost](https://chat. rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/ r/rockylinux), [Списки розсилки](https://lists.resf.org) або будь-яким іншим способом, яким ви бажаєте взяти участь! +Будь ласка, повідомляйте про всі виявлені помилки в [Rocky Linux Bug Tracker](https://bugs.rockylinux.org/). Ми також запрошуємо вас приєднатися до нашої спільноти будь-яким зручним для вас способом, будь то на нашому [Форумі](https://forums.rockylinux.org), [Mattermost](https://chat.rockylinux.org), [IRC на Libera.Chat](irc://irc.liberachat/rockylinux), [Reddit](https://reddit.com/r/rockylinux), [Mailing Lists](https://lists.resf.org), або як вам буде зручно! diff --git a/docs/rocky_insights/blogs/good_docs.uk.md b/docs/rocky_insights/blogs/good_docs.uk.md new file mode 100644 index 0000000000..b362d9e2b8 --- /dev/null +++ b/docs/rocky_insights/blogs/good_docs.uk.md @@ -0,0 +1,88 @@ +--- +title: Хороший документ — точка зору перекладача +author: Ganna Zhyrnova +contributors: Steven Spencer +--- + +## Вступ + +Перекладачі надають цінні поради щодо написання чіткої та лаконічної документації. Вони краще за інших знають, що не перекладається добре і що заплутує читача. У цьому документі розглядаються деякі з цих питань та висвітлюються найкращі практики створення документів. + +### Від автора + +Документація до програмного забезпечення допомагає користувачам зрозуміти, як ефективно використовувати конкретне програмне забезпечення. Вони повинні розуміти, що вони отримають в результаті і які переваги це їм дасть. Водночас, коли ви створюєте документацію, це означає, що ви створюєте її не тільки для себе, але й для своєї мережі та інших людей, які можуть її прочитати. Інші люди можуть бути не з англомовних країн. Це означає, що для них англійська мова не є основною мовою. З огляду на це, дотримуйтесь цих основних правил, щоб зробити вашу документацію більш зрозумілою для _всіх_ користувачів. + +## Використання простої мови + +Ви не маєте уявлення, хто є вашим користувачем. Незалежно від того, чи знайомий цей користувач з цією сферою, чи є він досвідченим розробником або початківцем. Проста мова — це чітка, лаконічна комунікація, яку цільова аудиторія може легко зрозуміти з першого разу. Вона уникає жаргон, технічні терміни та складні синтаксичні конструкції на користь простішої мови та чіткої структури. Мета полягає в тому, щоб забезпечити доступність і зрозумілість повідомлення для широкої аудиторії, незалежно від її походження або рівня читацької підготовки. Часто це можна зробити, спростивши структуру речень або команд до їх найпростішого формату. + +## Уникайте ідіом, жаргону, акронімів та скорочень + +Ідіоми, жаргон, скорочення та акроніми можуть заплутати читачів, які не знайомі з ними, особливо тих, хто не є носіями мови, нових співробітників або людей, які не належать до вашої конкретної галузі. + +**Ідіоми** часто мають культурну специфіку і можуть бути важкими для розуміння міжнародним читачам.\ +**Жаргон** включає спеціалізовані терміни, які можуть розуміти лише експерти в певній галузі.\ +**Скорочення** замінюють слова в англійській мові скороченими формами, але такі скорочення не завжди існують у всіх мовах, що ускладнює переклад.\ +**Акроніми** можуть бути неоднозначними, особливо якщо вони не визначені при першому використанні. + +Приклад: + +❌ "Once you’ve got the hang of the dashboard, the rest is a piece of cake." Тут автор використовує скорочення, сленг та ідіому. + +✅ "Once you have learned how to use the dashboard, the rest is easy." Замінивши скорочення, сленг та ідіоми словами, пов'язаними з кожним з них, значення стає зрозумілим. + +Фігуративні вирази, такі як ідіоми, часто важко перекласти. Технічні письменники або перекладачі можуть зіткнутися з труднощами при передачі того самого значення іншими мовами. + +Приклад: + +❌ "Let’s touch base next week to circle back on the open tickets." + +✅ "Let us meet next week to review the unresolved support requests." + +Жаргонні слова та абревіатури можуть викликати плутанину — навіть у межах однієї організації — якщо їх значення не є загальновідомими. + +Приклад: + +❌ "Upload the CSV to the CMS and tag it according to SOPs." + +✅ "Upload the CSV (Comma-Separated Values file) to the content management system and label it according to the standard operating procedures." + +Примітка: Якщо ви хочете використовувати акроніми, завжди визначайте їх при першому використанні: «Система управління взаємовідносинами з клієнтами (CRM)». + +Вилучивши ідіоми та непотрібний жаргон, ви зробите зміст вашого документа більш зрозумілим. Заміна скорочень словами, які вони позначають, означає, що переклад на всі мови стає простішим. Ваш документ буде найбільш зрозумілим для читача, якщо ви заміните або поясните абревіатури. + +## Використовуйте Active Voice + +Active voice підкреслює виконавця дії, даючи зрозуміти, хто або що є відповідальним за дію дієслова. + +Приклад: + +The system opens the dialog where you need to complete the form. + +Будь ласка, утримайтеся від використання складної форми, оскільки вона може заплутати читачів. + +Більше інформації про використання активного голосу та важливість його використання див. [цю думку](active_voice.md) та [це зовнішнє джерело](https://developers.google.com/tech-writing/one/active-voice). + +## Опис кроків + +Якщо у документації є конкретні кроки, розділіть їх один від одного. + +Наприклад: + +Step 1 - Go to the section\ +Step 2 - Click the button\ +Step 3 - Complete the form\ +...\ +Step N - save changes + +## Додавайте скріншоти де необхідно + +Використовуйте правильні знімки екрана, де це необхідно. Це означає, що вам не потрібно додавати скріншоти всюди, а лише в тих місцях, де потрібні додаткові пояснення. + +## Використовуйте приклади + +Якщо потрібно заповнити форму, наведіть приклади того, як користувачі можуть її заповнити. Вкажіть обмеження, якщо вони є. + +## Висновок + +Написання хорошої документації – це не тільки забезпечення її технічної точності, але й дуже важливо зробити її зрозумілою для читача з першого погляду. Це особливо важливо, коли технічний документ потрібно перекласти на інші мови. У цьому документі автор мав на меті висвітлити конкретні техніки написання якісної та зрозумілої документації.