From c61b40327b4d157d399339d20d0352d8d2536a17 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:03:00 -0400 Subject: [PATCH 001/167] New translations test_cpu_compat.md (French) --- docs/gemstones/test_cpu_compat.fr.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/gemstones/test_cpu_compat.fr.md b/docs/gemstones/test_cpu_compat.fr.md index 2d4435f98b..501ca3d27f 100644 --- a/docs/gemstones/test_cpu_compat.fr.md +++ b/docs/gemstones/test_cpu_compat.fr.md @@ -18,18 +18,18 @@ Depuis la sortie de Rocky Linux 9, certaines installations sur les plateformes x 3. Une fois le lancement terminé, ouvrez une fenêtre de terminal et procédez comme suit : - ```bash - /lib64/ld-linux-x86-64.so.2 --help | grep x86-64 - ``` + ```bash + /lib64/ld-linux-x86-64.so.2 --help | grep x86-64 + ``` - Vous devriez obtenir une sortie similaire à ceci : + Vous devriez obtenir une sortie similaire à ceci : - ```bash - Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] - This program interpreter self-identifies as: /lib64/ld-linux-x86-64.so.2 - x86-64-v4 - x86-64-v3 - x86-64-v2 (supported, searched) - ``` + ```bash + Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] + This program interpreter self-identifies as: /lib64/ld-linux-x86-64.so.2 + x86-64-v4 + x86-64-v3 + x86-64-v2 (supported, searched) + ``` - Cette sortie indique la version minimale x86-64 (v2) requise. Dans ce cas, l'installation peut continuer. S'il n'y a pas d'indication "(supported, searched)" à côté de l'entrée "x86-64-v2", cela signifie que votre processeur n'est **pas** compatible avec Rocky Linux 9.x. Si le test indique que votre installation peut continuer et qu'il répertorie également x86-64-v3 (requis pour Rocky Linux 10) et x86-64-v4 comme (`supported, searched`), votre CPU sera bien pris en charge pour 9.x et les versions suivantes. + Cette sortie indique la version minimale x86-64 (v2) requise. Dans ce cas, l'installation peut continuer. S'il n'y a pas d'indication "(supported, searched)" à côté de l'entrée "x86-64-v2", cela signifie que votre processeur n'est **pas** compatible avec Rocky Linux 9.x. Si le test indique que votre installation peut continuer et qu'il répertorie également x86-64-v3 (requis pour Rocky Linux 10) et x86-64-v4 comme (`supported, searched`), votre CPU sera bien pris en charge pour 9.x et les versions suivantes. From 2e9436704e9bba031be4fb31bd735381ef49ace5 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:04:37 -0400 Subject: [PATCH 002/167] New translations test_cpu_compat.md (German) --- docs/gemstones/test_cpu_compat.de.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/gemstones/test_cpu_compat.de.md b/docs/gemstones/test_cpu_compat.de.md index 468417761f..e20576bbe6 100644 --- a/docs/gemstones/test_cpu_compat.de.md +++ b/docs/gemstones/test_cpu_compat.de.md @@ -18,18 +18,18 @@ Seit der Veröffentlichung von Rocky Linux 9 sind einige Installationen auf x86- 3. Nachdem der Startvorgang abgeschlossen ist, öffnen Sie ein Terminalfenster und führen Sie dieses Kommando aus: - ```bash - /lib64/ld-linux-x86-64.so.2 --help | grep x86-64 - ``` + ```bash + /lib64/ld-linux-x86-64.so.2 --help | grep x86-64 + ``` - Sie sollten eine Ausgabe erhalten, die etwa dieser ähnelt: + Sie sollten eine Ausgabe erhalten, die etwa dieser ähnelt: - ```bash - Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] - This program interpreter self-identifies as: /lib64/ld-linux-x86-64.so.2 - x86-64-v4 - x86-64-v3 - x86-64-v2 (supported, searched) - ``` + ```bash + Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] + This program interpreter self-identifies as: /lib64/ld-linux-x86-64.so.2 + x86-64-v4 + x86-64-v3 + x86-64-v2 (supported, searched) + ``` - Diese Ausgabe gibt die minimal erforderliche x86-64-Version (v2) an. In diesem Fall kann die Installation fortgesetzt werden. Wenn Sie neben `x86-64-v2` kein Eintrag (`supported, searched`) sehen, ist Ihre CPU nicht mit Rocky Linux 9.x kompatibel. Wenn der Test anzeigt, dass Ihre Installation fortgesetzt werden kann und x86-64-v3 (erforderlich für Rocky Linux 10) und x86-64-v4 auch als `(supported, searched)` aufgeführt werden, wird Ihre CPU für 9.x und zukünftige Versionen gut unterstützt. + Diese Ausgabe gibt die minimal erforderliche x86-64-Version (v2) an. In diesem Fall kann die Installation fortgesetzt werden. Wenn Sie neben `x86-64-v2` kein Eintrag (`supported, searched`) sehen, ist Ihre CPU nicht mit Rocky Linux 9.x kompatibel. Wenn der Test anzeigt, dass Ihre Installation fortgesetzt werden kann und x86-64-v3 (erforderlich für Rocky Linux 10) und x86-64-v4 auch als `(supported, searched)` aufgeführt werden, wird Ihre CPU für 9.x und zukünftige Versionen gut unterstützt. From a72bac15752c57451d4a72dfe7bf63dfeeed71b6 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:04:38 -0400 Subject: [PATCH 003/167] New translations 02_github_web_edit_pr_title.md (German) --- docs/gemstones/git/02_github_web_edit_pr_title.de.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/gemstones/git/02_github_web_edit_pr_title.de.md b/docs/gemstones/git/02_github_web_edit_pr_title.de.md index cf63d1b7a3..12cb7ce0af 100644 --- a/docs/gemstones/git/02_github_web_edit_pr_title.de.md +++ b/docs/gemstones/git/02_github_web_edit_pr_title.de.md @@ -26,13 +26,13 @@ Manchmal kann es erforderlich sein, den Titel eines PR nach seiner Erstellung zu ### Verwendung der GitHub-Weboberfläche 1. **Navigieren Sie zum Pull Request**: - - Gehen Sie zum Repository, in dem sich der PR befindet. - - Klicken Sie auf `Pull Requests` und wählen Sie den PR aus, den Sie bearbeiten möchten. + - Gehen Sie zum Repository, in dem sich der PR befindet. + - Klicken Sie auf `Pull Requests` und wählen Sie den PR aus, den Sie bearbeiten möchten. 2. **PR-Titel Editieren**: - - Klicken Sie auf den Titel der PR. - - Ein editierbares Textfeld wird angezeigt. - - Passen Sie den Titel an, drücken Sie ++enter++ oder klicken Sie außerhalb des Textfelds, um die Änderungen zu speichern. + - Klicken Sie auf den Titel der PR. + - Ein editierbares Textfeld wird angezeigt. + - Passen Sie den Titel an, drücken Sie ++enter++ oder klicken Sie außerhalb des Textfelds, um die Änderungen zu speichern. ## Zusätzliche Informationen (optional) From 589deb1bb4c9cd11b63da7b32dfca9756a04c44f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:04:39 -0400 Subject: [PATCH 004/167] New translations gemstone_template.md (German) --- docs/gemstones/gemstone_template.de.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/gemstones/gemstone_template.de.md b/docs/gemstones/gemstone_template.de.md index 18c2ffc79a..708d703423 100644 --- a/docs/gemstones/gemstone_template.de.md +++ b/docs/gemstones/gemstone_template.de.md @@ -30,15 +30,15 @@ Skizzieren Sie die Prozedur bzw. die Lösung mit nummerierten Schritten: 1. **Erste Etappe**: - Anleitungen und Kommandobeispiele. + Anleitungen und Kommandobeispiele. - ```bash - Befehl oder Codeausschnitt - ``` + ```bash + Befehl oder Codeausschnitt + ``` 2. **Zweite Etappe**: - Fahren Sie mit den detaillierten Anweisungen fort. + Fahren Sie mit den detaillierten Anweisungen fort. ## Zusätzliche Informationen (optional) From 67afe51dc2159aca1ff4fb0f3b1ddc7c049ff18f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:04:40 -0400 Subject: [PATCH 005/167] New translations feature_branch_workflow.md (German) --- .../git/feature_branch_workflow.de.md | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/docs/gemstones/git/feature_branch_workflow.de.md b/docs/gemstones/git/feature_branch_workflow.de.md index 2fe27fb0cf..5dba0f7fbc 100644 --- a/docs/gemstones/git/feature_branch_workflow.de.md +++ b/docs/gemstones/git/feature_branch_workflow.de.md @@ -31,53 +31,53 @@ Der Benutzer `Rockstar` hat dieses Repository geforkt und wir werden `https://gi 1. Falls noch nicht geschehen, klonen Sie Ihren Fork: - ```bash - git clone https://github.com/rockstar/documentation.git - cd documentation - ``` + ```bash + git clone https://github.com/rockstar/documentation.git + cd documentation + ``` 2. Fügen Sie das Upstream-Remote hinzu: - ```bash - git remote add upstream https://github.com/rocky-linux/documentation.git - ``` + ```bash + git remote add upstream https://github.com/rocky-linux/documentation.git + ``` 3. Upstream-Änderungen abrufen: - ```bash - git fetch upstream - ``` + ```bash + git fetch upstream + ``` 4. Erstellen Sie einen neuen Feature-Zweig: - ```bash - git checkout -b feature-branch-name - ``` + ```bash + git checkout -b feature-branch-name + ``` 5. Nehmen Sie Änderungen vor, fügen Sie neue Dateien hinzu und committen Sie sie: - ```bash - git add . - git commit -m "Implementing feature X" - ``` + ```bash + git add . + git commit -m "Implementing feature X" + ``` 6. Halten Sie Ihr Branch auf dem neuesten Stand. Führen Sie regelmäßig Änderungen aus dem Upstream zusammen, um Konflikte zu vermeiden: - ```bash - git pull upstream main --rebase - ``` + ```bash + git pull upstream main --rebase + ``` 7. Pushen Sie zu Ihrem Fork indem Sie Folgendes eingeben: - ```bash - git push origin feature-branch-name - ``` + ```bash + git push origin feature-branch-name + ``` 8. Pull Request anlegen: - ```bash - gh pr create --base main --head rockstar:feature-branch-name --title "New Feature X" --body "Long Description of the feature" - ``` + ```bash + gh pr create --base main --head rockstar:feature-branch-name --title "New Feature X" --body "Long Description of the feature" + ``` ## Zusammenfassung From 95d26ebaafc0d8746e3fbd01b9df1a2ee0cef15f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:08 -0400 Subject: [PATCH 006/167] New translations lab7-software_management.md (Ukrainian) --- .../lab7-software_management.uk.md | 652 +++++++++--------- 1 file changed, 326 insertions(+), 326 deletions(-) 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 0ce17e4677..8aea1b2375 100644 --- a/docs/labs/systems_administration_I/lab7-software_management.uk.md +++ b/docs/labs/systems_administration_I/lab7-software_management.uk.md @@ -116,130 +116,130 @@ https://download.rockylinux.org/pub/rocky/8.8/ 1. Щоб переглянути список усіх пакетів, які зараз встановлено у вашій локальній системі, введіть: - ```bash - $ rpm -qa - python3-gobject-base-* - NetworkManager-* - rocky-repos-* - ...... - ``` + ```bash + $ rpm -qa + python3-gobject-base-* + NetworkManager-* + rocky-repos-* + ...... + ``` - Ви повинні побачити довгий список. + Ви повинні побачити довгий список. 2. Давайте заглибимося глибше та дізнаємося більше про один із пакетів, встановлених у системі. Ми розглянемо NetworkManager. Ми будемо використовувати параметри --query (-q) і --info (-i) з командою `rpm`. Впишіть: - ```bash - $ rpm -qi NetworkManager - Name : NetworkManager - Epoch : 1 - ...... - ``` + ```bash + $ rpm -qi NetworkManager + Name : NetworkManager + Epoch : 1 + ...... + ``` - Це величезна кількість інформації (метаданих)! + Це величезна кількість інформації (метаданих)! 3. Скажімо, нас цікавить лише поле «Підсумок» попередньої команди. Ми можемо використовувати опцію --queryformat rpm, щоб фільтрувати інформацію, яку ми отримуємо з опції запиту. - Наприклад, щоб переглянути лише поле Summary, введіть: + Наприклад, щоб переглянути лише поле Summary, введіть: - ```bash - rpm -q --queryformat '%{summary}\n' NetworkManager - ``` + ```bash + rpm -q --queryformat '%{summary}\n' NetworkManager + ``` - Назва поля нечутлива до регістру. + Назва поля нечутлива до регістру. 4. Щоб переглянути поля Version та Summary встановленого типу пакета NetworkManager: - ```bash - rpm -q --queryformat '%{version} %{summary}\n' NetworkManager - ``` + ```bash + rpm -q --queryformat '%{version} %{summary}\n' NetworkManager + ``` 5. Введіть команду, щоб переглянути інформацію про пакет bash, встановлений у системі. - ```bash - rpm -qi bash - ``` + ```bash + rpm -qi bash + ``` - !!! note "Примітка" + !!! note "Примітка" - ``` - Попередні вправи стосувалися запитів і роботи з пакетами, уже встановленими в системі. У наступних вправах ми почнемо працювати з пакетами, які ще не встановлено. Ми будемо використовувати програму DNF для завантаження пакетів, які використовуватимемо в наступних кроках. - ``` + ``` + Попередні вправи стосувалися запитів і роботи з пакетами, уже встановленими в системі. У наступних вправах ми почнемо працювати з пакетами, які ще не встановлено. Ми будемо використовувати програму DNF для завантаження пакетів, які використовуватимемо в наступних кроках. + ``` 6. По-перше, переконайтеся, що програму `wget` ще не встановлено в системі. Впишіть: - ```bash - rpm -q wget - package wget is not installed - ``` + ```bash + rpm -q wget + package wget is not installed + ``` - Схоже, `wget` не встановлено в нашій демонстраційній системі. + Схоже, `wget` не встановлено в нашій демонстраційній системі. 7. Починаючи з Rocky Linux 8.x, команда `dnf download` дозволить вам отримати останній пакет `rpm` для `wget`. Впишіть: - ```bash - dnf download wget - ``` + ```bash + dnf download wget + ``` 8. Використовуйте команду `ls`, щоб переконатися, що пакет завантажено у ваш поточний каталог. Впишіть: - ```bash - ls -lh wg* - ``` + ```bash + ls -lh wg* + ``` 9. Використовуйте команду `rpm`, щоб отримати інформацію про завантажений wget-\*.rpm. Впишіть: - ```bash - rpm -qip wget-*.rpm - Name : wget - Architecture: x86_64 - Install Date: (not installed) - Group : Applications/Internet - ...... - ``` + ```bash + rpm -qip wget-*.rpm + Name : wget + Architecture: x86_64 + Install Date: (not installed) + Group : Applications/Internet + ...... + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Виходячи з результатів попереднього кроку, що саме таке пакет `wget`? Підказка: ви можете використовувати параметр формату запиту `rpm`, щоб переглянути поле опису пакета завантаження. - ``` + ``` + Виходячи з результатів попереднього кроку, що саме таке пакет `wget`? Підказка: ви можете використовувати параметр формату запиту `rpm`, щоб переглянути поле опису пакета завантаження. + ``` 10. Якщо вас цікавить пакет `wget files-.rpm`, ви можете перелічити всі файли, включені до пакета, ввівши: - ```bash - rpm -qlp wget-*.rpm | head - /etc/wgetrc - /usr/bin/wget - ...... - /usr/share/doc/wget/AUTHORS - /usr/share/doc/wget/COPYING - /usr/share/doc/wget/MAILING-LIST - /usr/share/doc/wget/NEWS - ``` + ```bash + rpm -qlp wget-*.rpm | head + /etc/wgetrc + /usr/bin/wget + ...... + /usr/share/doc/wget/AUTHORS + /usr/share/doc/wget/COPYING + /usr/share/doc/wget/MAILING-LIST + /usr/share/doc/wget/NEWS + ``` 11. Давайте переглянемо вміст файлу `/usr/share/doc/wget/AUTHORS`, зазначеного як частину пакета `wget`. Ми будемо використовувати команду `cat`. Впишіть: - ```bash - cat /usr/share/doc/wget/AUTHORS - cat: /usr/share/doc/wget/AUTHORS: No such file or directory - ``` + ```bash + cat /usr/share/doc/wget/AUTHORS + cat: /usr/share/doc/wget/AUTHORS: No such file or directory + ``` - `wget` [ще] не встановлено в нашій демонстраційній системі! Отже, ми не можемо переглянути файл AUTHORS, який запаковано з ним! + `wget` [ще] не встановлено в нашій демонстраційній системі! Отже, ми не можемо переглянути файл AUTHORS, який запаковано з ним! 12. Перегляньте список файлів, які постачаються з іншим пакетом (curl), _вже_ встановленим у системі. Впишіть: - ```bash - $ rpm -ql curl - /usr/bin/curl - /usr/lib/.build-id - /usr/lib/.build-id/fc - ...<>... - ``` + ```bash + $ rpm -ql curl + /usr/bin/curl + /usr/lib/.build-id + /usr/lib/.build-id/fc + ...<>... + ``` - !!! note "Примітка" + !!! note "Примітка" - ``` - Ви помітите, що вам не потрібно було посилатися на повну назву пакета `curl` у попередній команді. Це тому, що `curl` уже встановлено. - ``` + ``` + Ви помітите, що вам не потрібно було посилатися на повну назву пакета `curl` у попередній команді. Це тому, що `curl` уже встановлено. + ``` #### Розширені знання про назву пакета @@ -283,35 +283,35 @@ https://download.rockylinux.org/pub/rocky/8.8/ 1. Можна завантажити або отримати пошкоджений або зіпсований файл. Перевірте цілісність пакета `wget`, який ви завантажили. Впишіть: - ```bash - rpm -K wget-*.rpm - wget-1.19.5-10.el8.x86_64.rpm: digests signatures OK - ``` + ```bash + rpm -K wget-*.rpm + wget-1.19.5-10.el8.x86_64.rpm: digests signatures OK + ``` - Повідомлення «digests signatures OK» у вихідних даних показує, що з пакетом все гаразд. + Повідомлення «digests signatures OK» у вихідних даних показує, що з пакетом все гаразд. 2. Давайте проявимо зловмисність і навмисно змінимо завантажений пакет. Це можна зробити, додавши будь-що до оригінального пакету або вилучивши щось із нього. Будь-що, що змінює пакунок у спосіб, який не передбачали вихідні пакувачі, пошкодить пакунок. Ми змінимо файл за допомогою команди echo, щоб додати рядок «haha» до пакета. Впишіть: - ```bash - echo haha >> wget-1.19.5-10.el8.x86_64.rpm - ``` + ```bash + echo haha >> wget-1.19.5-10.el8.x86_64.rpm + ``` 3. Тепер спробуйте ще раз перевірити цілісність пакета за допомогою параметра -K rpm. - ```bash - $ rpm -K wget-*.rpm - wget-1.19.5-10.el8.x86_64.rpm: DIGESTS SIGNATURES NOT OK - ``` + ```bash + $ rpm -K wget-*.rpm + wget-1.19.5-10.el8.x86_64.rpm: DIGESTS SIGNATURES NOT OK + ``` - Зараз це зовсім інше повідомлення. Висновок «DIGESTS SIGNATURES NOT OK» чітко попереджає, що вам не слід намагатися використовувати або інсталювати пакет. Більше не варто довіряти. + Зараз це зовсім інше повідомлення. Висновок «DIGESTS SIGNATURES NOT OK» чітко попереджає, що вам не слід намагатися використовувати або інсталювати пакет. Більше не варто довіряти. 4. Використовуйте команду `rm`, щоб видалити пошкоджений файл пакета `wget` і завантажити нову копію за допомогою `dnf`. Впишіть: - ```bash - rm wget-*.rpm && dnf download wget - ``` + ```bash + rm wget-*.rpm && dnf download wget + ``` - Ще раз перевірте, чи нещодавно завантажений пакет пройшов перевірку цілісності RPM. + Ще раз перевірте, чи нещодавно завантажений пакет пройшов перевірку цілісності RPM. ## Завдання 3 @@ -329,74 +329,74 @@ https://download.rockylinux.org/pub/rocky/8.8/ 1. Спробуйте встановити програму `wget`. Використовуйте параметри командного рядка RPM -ivh. Впишіть: - ```bash - rpm -ivh wget-*.rpm - error: Failed dependencies: - libmetalink.so.3()(64bit) is needed by wget-* - ``` + ```bash + rpm -ivh wget-*.rpm + error: Failed dependencies: + libmetalink.so.3()(64bit) is needed by wget-* + ``` - Відразу - проблема залежності! Зразок результату показує, що `wget` потребує якогось файлу бібліотеки під назвою "libmetalink.so.3" + Відразу - проблема залежності! Зразок результату показує, що `wget` потребує якогось файлу бібліотеки під назвою "libmetalink.so.3" - !!! note "Примітка" + !!! note "Примітка" - ``` - Відповідно до результатів тесту вище, для пакета wget-*.rpm потрібно встановити пакет libmetalink-*.rpm. Іншими словами, libmetalink є необхідною умовою для встановлення wget-*.rpm. Ви можете примусово встановити пакет wget-*.rpm за допомогою параметра «nodeps», якщо знаєте, що робите, але це, як правило, ПОГАНА практика. - ``` + ``` + Відповідно до результатів тесту вище, для пакета wget-*.rpm потрібно встановити пакет libmetalink-*.rpm. Іншими словами, libmetalink є необхідною умовою для встановлення wget-*.rpm. Ви можете примусово встановити пакет wget-*.rpm за допомогою параметра «nodeps», якщо знаєте, що робите, але це, як правило, ПОГАНА практика. + ``` 2. RPM дав нам підказку про те, чого не вистачає. Ви пам’ятаєте, що `rpm` знає, що і як, але не обов’язково знає, де. Скористаємося утилітою `dnf`, щоб визначити назву пакета, який надає відсутню бібліотеку. Впишіть: - ```bash - $ dnf whatprovides libmetalink.so.3 - ...... - libmetalink-* : Metalink library written in C - Repo : baseos - Matched from: - Provide : libmetalink.so.3 - ``` + ```bash + $ dnf whatprovides libmetalink.so.3 + ...... + libmetalink-* : Metalink library written in C + Repo : baseos + Matched from: + Provide : libmetalink.so.3 + ``` 3. З результату нам потрібно завантажити пакет `libmetalink`, який надає відсутню бібліотеку. Зокрема, нам потрібна 64-розрядна версія бібліотеки. Викличмо окрему утиліту (`dnf`), щоб допомогти нам знайти та завантажити пакет для нашої демонстраційної 64-розрядної (x86_64) архітектури. Впишіть: - ```bash - dnf download --arch x86_64 libmetalink - ``` + ```bash + dnf download --arch x86_64 libmetalink + ``` 4. Тепер у вашому робочому каталозі має бути принаймні 2 пакети rpm. Використовуйте команду `ls`, щоб підтвердити це. 5. Встановіть відсутню залежність `libmetalink`. Впишіть: - ```bash - sudo rpm -ivh libmetalink-*.rpm - ``` + ```bash + sudo rpm -ivh libmetalink-*.rpm + ``` 6. З установленою залежністю ми можемо повернутися до нашої початкової мети встановлення пакета `wget`. Впишіть: - ```bash - sudo rpm -ivh wget-*.rpm - ``` + ```bash + sudo rpm -ivh wget-*.rpm + ``` - !!! note "Примітка" + !!! note "Примітка" - ```` - RPM підтримує транзакції. У попередніх вправах ми могли виконати одну транзакцію rpm, яка включала оригінальний пакет, який ми хотіли встановити, і всі пакети та бібліотеки, від яких він залежав. Було б достатньо однієї такої команди, як наведена нижче: + ```` + RPM підтримує транзакції. У попередніх вправах ми могли виконати одну транзакцію rpm, яка включала оригінальний пакет, який ми хотіли встановити, і всі пакети та бібліотеки, від яких він залежав. Було б достатньо однієї такої команди, як наведена нижче: - ```bash - rpm -Uvh wget-*.rpm libmetalink-*.rpm - ``` - ```` + ```bash + rpm -Uvh wget-*.rpm libmetalink-*.rpm + ``` + ```` 7. Момент істини зараз. Спробуйте запустити програму `wget` без будь-яких опцій, щоб перевірити, чи вона встановлена. Впишіть: - ```bash - wget - ``` + ```bash + wget + ``` 8. Давайте подивимося на `wget` в дії. Використовуйте `wget`, щоб завантажити файл з Інтернету з командного рядка. Впишіть: - ```bash - wget https://kernel.org - ``` + ```bash + wget https://kernel.org + ``` - Це завантажить стандартний index.html з веб-сайту kernel.org! + Це завантажить стандартний index.html з веб-сайту kernel.org! 9. Використовуйте `rpm`, щоб переглянути список усіх файлів у програмі `wget`. @@ -406,16 +406,16 @@ https://download.rockylinux.org/pub/rocky/8.8/ 12. Вам потрібно було встановити пакет `libmetalink`, щоб встановити `wget`. Спробуйте запустити або виконати `libmetalink` з командного рядка. Впишіть: - ```bash - libmetalink - -bash: libmetalink: command not found - ``` + ```bash + libmetalink + -bash: libmetalink: command not found + ``` - !!! attention "Увага" + !!! attention "Увага" - ``` - Що це дає? Чому ви не можете запустити або виконати `libmetalink`? - ``` + ``` + Що це дає? Чому ви не можете запустити або виконати `libmetalink`? + ``` #### Щоб імпортувати відкритий ключ через `rpm` @@ -443,31 +443,31 @@ https://download.rockylinux.org/pub/rocky/8.8/ 1. Видаліть пакет `libmetalink` з вашої системи. Впишіть: - ```bash - sudo rpm -e libmetalink - ``` + ```bash + sudo rpm -e libmetalink + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Поясніть, чому не вдалося зняти пакет? - ``` + ``` + Поясніть, чому не вдалося зняти пакет? + ``` 2. Чистим і правильним способом видалення пакетів за допомогою RPM є видалення пакетів разом із їхніми залежностями. Щоб видалити пакет `libmetalink`, ми також повинні видалити пакет `wget`, який залежить від нього. Впишіть: - ```bash - sudo rpm -e libmetalink wget - ``` + ```bash + sudo rpm -e libmetalink wget + ``` - !!! note "Примітка" + !!! note "Примітка" - ``` - Якщо ви хочете зламати пакунок, який покладається на libmetalink, і *примусово* видалити пакунок із вашої системи, ви можете скористатися параметром rpm `--nodeps` так: `$ sudo rpm -e --nodeps libmetalink`. + ``` + Якщо ви хочете зламати пакунок, який покладається на libmetalink, і *примусово* видалити пакунок із вашої системи, ви можете скористатися параметром rpm `--nodeps` так: `$ sudo rpm -e --nodeps libmetalink`. - **i.** Параметр «nodeps» означає відсутність залежностей. Тобто ігнорувати всі залежності. - **ii.** Вище показано, як примусово видалити пакет із системи. Іноді це потрібно робити, але зазвичай це *не дуже добре*. - **iii.** Примусове видалення пакета «xyz», на який покладається інший встановлений пакет «abc», фактично робить пакет «abc» непридатним для використання або дещо зламаним. - ``` + **i.** Параметр «nodeps» означає відсутність залежностей. Тобто ігнорувати всі залежності. + **ii.** Вище показано, як примусово видалити пакет із системи. Іноді це потрібно робити, але зазвичай це *не дуже добре*. + **iii.** Примусове видалення пакета «xyz», на який покладається інший встановлений пакет «abc», фактично робить пакет «abc» непридатним для використання або дещо зламаним. + ``` ## Завдання 5 @@ -524,66 +524,66 @@ DNF (та інші інструменти, подібні до нього) ді 1. По-перше, давайте переконаємося, що `wget` і `libmetalink` видалено з системи. Впишіть: - ```bash - sudo rpm -e wget libmetalink - ``` + ```bash + sudo rpm -e wget libmetalink + ``` - Після видалення, якщо ви спробуєте запустити `wget` з CLI, ви побачите повідомлення на зразок _wget: command not found_ + Після видалення, якщо ви спробуєте запустити `wget` з CLI, ви побачите повідомлення на зразок _wget: command not found_ 2. Тепер використовуйте `dnf`, щоб встановити `wget`. Впишіть: - ```bash - sudo dnf -y install wget - Dependencies resolved. - ...... - Installed: - libmetalink-* wget-* - Complete! - ``` + ```bash + sudo dnf -y install wget + Dependencies resolved. + ...... + Installed: + libmetalink-* wget-* + Complete! + ``` - !!! tip "Підказка" + !!! tip "Підказка" - ``` - Параметр "-y", використаний у попередній команді, пригнічує підказку "[y/N]" для підтвердження дії, яку збирається виконати `dnf`. Це означає, що всі дії підтвердження (або інтерактивні відповіді) будуть «так» (у). - ``` + ``` + Параметр "-y", використаний у попередній команді, пригнічує підказку "[y/N]" для підтвердження дії, яку збирається виконати `dnf`. Це означає, що всі дії підтвердження (або інтерактивні відповіді) будуть «так» (у). + ``` 3. DNF надає параметр «Група середовища», який спрощує додавання нового набору функцій до системи. Щоб додати цю функцію, зазвичай потрібно інсталювати декілька пакунків окремо, але використовуючи `dnf`, все, що вам потрібно знати, це назва або опис потрібної функції. Використовуйте `dnf`, щоб відобразити список усіх доступних груп. Впишіть: - ```bash - dnf group list - ``` + ```bash + dnf group list + ``` 4. Нас цікавить група/функція "Інструменти розробки". Давайте дізнаємося більше про цю групу. Впишіть: - ```bash - dnf group info "Development Tools" - ``` + ```bash + dnf group info "Development Tools" + ``` 5. Пізніше нам знадобляться деякі програми з групою «Development Tools». Встановіть групу «Development Tools» за допомогою `dnf`, виконавши: - ```bash - sudo dnf -y group install "Development Tools" - ``` + ```bash + sudo dnf -y group install "Development Tools" + ``` #### Щоб використовувати `dnf` для видалення пакетів 1. Щоб використати `dnf` для видалення типу пакета `wget`: - ```bash - sudo dnf -y remove wget - ``` + ```bash + sudo dnf -y remove wget + ``` 2. Використовуйте `dnf`, щоб переконатися, що пакет видалено із системи. Впишіть: - ```bash - sudo dnf -y remove wget - ``` + ```bash + sudo dnf -y remove wget + ``` 3. Спробуйте використати/запустити `wget`. Впишіть: - ```bash - wget - ``` + ```bash + wget + ``` #### Щоб використовувати `dnf` для оновлення пакета @@ -591,33 +591,33 @@ DNF може перевірити та встановити останню ве 1. Використовуйте опцію списку з `dnf`, щоб переглянути доступні у вашій системі версії програми `wget`. Впишіть: - ```bash - dnf list wget - ``` + ```bash + dnf list wget + ``` 2. Якщо ви хочете лише побачити, чи доступні оновлені версії для пакета, скористайтеся опцією перевірки оновлення з `dnf`. Наприклад, для типу пакета `wget`: - ```bash - dnf check-update wget - ``` + ```bash + dnf check-update wget + ``` 3. Тепер перерахуйте всі доступні версії пакета ядра для вашої системи. Впишіть: - ```bash - sudo dnf list kernel - ``` + ```bash + sudo dnf list kernel + ``` 4. Тепер перевірте, чи доступні оновлені пакети для встановленого пакета ядра. Впишіть: - ```bash - dnf check-update kernel - ``` + ```bash + dnf check-update kernel + ``` 5. Оновлення пакетів можуть відбуватися через виправлення помилок, нові функції або виправлення безпеки. Щоб переглянути, чи є будь-які оновлення безпеки для пакета ядра, введіть: - ```bash - dnf --security check-update kernel - ``` + ```bash + dnf --security check-update kernel + ``` #### Щоб використовувати `dnf` для оновлень системи @@ -625,21 +625,21 @@ DNF можна використовувати для перевірки та в 1. Щоб перевірити наявність оновлень для пакетів, які ви зараз інсталювали у своїй системі, введіть: - ```bash - $ sudo dnf -y remove wget - ``` + ```bash + $ sudo dnf -y remove wget + ``` 2. Щоб перевірити наявність оновлень безпеки для всіх пакетів, встановлених у вашій системі, введіть: - ```bash - $ sudo dnf -y remove wget - ``` + ```bash + $ sudo dnf -y remove wget + ``` 3. Щоб оновити всі пакети, встановлені у вашій системі, до найновіших версій, доступних для вашого дистрибутива: - ```bash - $ wget - ``` + ```bash + $ wget + ``` ## Завдання 6 @@ -655,7 +655,7 @@ DNF можна використовувати для перевірки та в 1. Використовуйте `curl`, щоб завантажити останній вихідний код програми `hello`. Давайте завантажимо та збережемо файл у папці Downloads. - https://ftp.gnu.org/gnu/hello/hello-2.12.tar.gz + https://ftp.gnu.org/gnu/hello/hello-2.12.tar.gz #### Щоб розархівувати файл @@ -663,40 +663,40 @@ DNF можна використовувати для перевірки та в 2. Розпакуйте (розпакуйте) архів за допомогою програми tar. Впишіть: - ```bash - tar -xvzf hello-2.12.tar.gz - ``` + ```bash + tar -xvzf hello-2.12.tar.gz + ``` - Вихід + Вихід - ```bash - hello-2.12/ - hello-2.12/NEWS - hello-2.12/AUTHORS - hello-2.12/hello.1 - hello-2.12/THANKS - ...... - ``` + ```bash + hello-2.12/ + hello-2.12/NEWS + hello-2.12/AUTHORS + hello-2.12/hello.1 + hello-2.12/THANKS + ...... + ``` 3. Використовуйте команду `ls`, щоб переглянути вміст вашого pwd. - Новий каталог під назвою hello-2.12 повинен був бути створений для вас під час де-тарування. + Новий каталог під назвою hello-2.12 повинен був бути створений для вас під час де-тарування. 4. Перейдіть до цього каталогу та перегляньте його вміст. Впишіть: - ```bash - cd hello-2.12 ; ls - ``` + ```bash + cd hello-2.12 ; ls + ``` 5. Перегляд будь-яких спеціальних інструкцій зі встановлення, які можуть постачатися з вихідним кодом, завжди є хорошою практикою. Ці файли зазвичай мають такі назви: INSTALL, README тощо. - Використовуйте пейджер, щоб відкрити файл INSTALL і прочитати його. Впишіть: + Використовуйте пейджер, щоб відкрити файл INSTALL і прочитати його. Впишіть: - ```bash - less INSTALL - ``` + ```bash + less INSTALL + ``` - Вийдіть із пейджера, коли завершите перегляд файлу. + Вийдіть із пейджера, коли завершите перегляд файлу. #### Щоб налаштувати пакет @@ -718,33 +718,33 @@ sudo dnf -y group install "Development Tools" 2. Щоб побачити всі параметри, ви можете ввімкнути або вимкнути тип програми `hello`: - ```bash - ./configure --help - ``` + ```bash + ./configure --help + ``` - !!! question "Питання" + !!! question "Питання" - ``` - З результатів команди, що робить параметр «--prefix»? - ``` + ``` + З результатів команди, що робить параметр «--prefix»? + ``` 3. Якщо ви задоволені стандартними параметрами, які пропонує сценарій налаштування. Впишіть: - ```bash - ./configure - ``` + ```bash + ./configure + ``` - !!! note "Примітка" + !!! note "Примітка" - ``` - Сподіваюся, етап налаштування пройшов гладко, і ви можете перейти до етапу компіляції. + ``` + Сподіваюся, етап налаштування пройшов гладко, і ви можете перейти до етапу компіляції. - Якщо ви отримуєте деякі помилки під час етапу налаштування, вам слід уважно переглянути кінцеву частину виводу, щоб побачити джерело помилки. Помилки *іноді* зрозумілі самі за себе, і їх легко виправити. Наприклад, ви можете побачити таку помилку: + Якщо ви отримуєте деякі помилки під час етапу налаштування, вам слід уважно переглянути кінцеву частину виводу, щоб побачити джерело помилки. Помилки *іноді* зрозумілі самі за себе, і їх легко виправити. Наприклад, ви можете побачити таку помилку: - configure: error: no acceptable C compiler found in $PATH + configure: error: no acceptable C compiler found in $PATH - Наведена вище помилка просто означає, що у вас не встановлено компілятор C (наприклад, `gcc`) у системі або компілятор інстальовано десь не у вашій змінній PATH. - ``` + Наведена вище помилка просто означає, що у вас не встановлено компілятор C (наприклад, `gcc`) у системі або компілятор інстальовано десь не у вашій змінній PATH. + ``` #### Скомпілювати пакет @@ -752,20 +752,20 @@ sudo dnf -y group install "Development Tools" 1. Використовуйте команду make, щоб скомпілювати пакет після запуску сценарію “configure”. Впишіть: - ```bash - make - ``` + ```bash + make + ``` - Вихід + Вихід - ```bash - gcc -g -O2 -o hello src/hello.o ./lib/libhello.a - make[2]: Leaving directory '/home/rocky/hello-2.12' - ...... - make[1]: Leaving directory '/home/rocky/hello-2.12' - ``` + ```bash + gcc -g -O2 -o hello src/hello.o ./lib/libhello.a + make[2]: Leaving directory '/home/rocky/hello-2.12' + ...... + make[1]: Leaving directory '/home/rocky/hello-2.12' + ``` - Якщо все піде добре, цей важливий крок `make` допоможе створити остаточний двійковий файл `hello` програми. + Якщо все піде добре, цей важливий крок `make` допоможе створити остаточний двійковий файл `hello` програми. 2. Знову перерахуйте файли у вашому поточному робочому каталозі. Ви повинні побачити кілька новостворених файлів, включаючи програму `hello`. @@ -775,51 +775,51 @@ sudo dnf -y group install "Development Tools" 1. Щоб установити програму hello, виконайте команду make install. Впишіть: - ```bash - sudo make install - ``` + ```bash + sudo make install + ``` - Це встановить пакет у місце, указане аргументом префікса за замовчуванням (--prefix), який раніше використовувався у сценарії «configure». Якщо не було встановлено жодного --prefix, буде використано стандартний префікс `/usr/local/`. + Це встановить пакет у місце, указане аргументом префікса за замовчуванням (--prefix), який раніше використовувався у сценарії «configure». Якщо не було встановлено жодного --prefix, буде використано стандартний префікс `/usr/local/`. #### Щоб запустити програму hello 1. Використовуйте команду `whereis`, щоб побачити, де у вашій системі знаходиться програма `hello`. Впишіть: - ```bash - whereis hello - ``` + ```bash + whereis hello + ``` 2. Спробуйте запустити програму `hello`, щоб побачити, що вона робить. Впишіть: - ```bash - hello - ``` + ```bash + hello + ``` 3. Знову запустіть `hello` з опцією `--help`, щоб побачити інші речі, які він може робити. 4. Тепер за допомогою `sudo` знову запустіть `hello` як суперкористувач. Впишіть: - ```bash - sudo hello - ``` + ```bash + sudo hello + ``` - Вихід + Вихід - ```bash - sudo: hello: command not found - ``` + ```bash + sudo: hello: command not found + ``` - !!! Question "Питання" + !!! Question "Питання" - ``` - Дослідіть, що викликає помилку, коли ви намагаєтесь запустити `hello` за допомогою sudo. Виправте проблему та переконайтеся, що програму `hello` можна використовувати з sudo. - ``` + ``` + Дослідіть, що викликає помилку, коли ви намагаєтесь запустити `hello` за допомогою sudo. Виправте проблему та переконайтеся, що програму `hello` можна використовувати з sudo. + ``` - !!! tip "Підказка" + !!! tip "Підказка" - ``` - Тестування програми як звичайного користувача є хорошою практикою, щоб переконатися, що звичайні користувачі можуть використовувати програму. Дозволи для двійкового файлу можуть бути встановлені неправильно, тому лише суперкористувач може використовувати програми. Це, звичайно, припускає, що ви дійсно хочете, щоб звичайні користувачі могли використовувати програму. - ``` + ``` + Тестування програми як звичайного користувача є хорошою практикою, щоб переконатися, що звичайні користувачі можуть використовувати програму. Дозволи для двійкового файлу можуть бути встановлені неправильно, тому лише суперкористувач може використовувати програми. Це, звичайно, припускає, що ви дійсно хочете, щоб звичайні користувачі могли використовувати програму. + ``` 5. Це все. Завдання завершено! @@ -837,48 +837,48 @@ sudo dnf -y group install "Development Tools" 1. Щоб продемонструвати, як працює перевірка пакету `rpm`, змініть файл конфігурації chrony - `/etc/chrony.conf`. (Передбачається, що ви встановили Chrony). Додайте 2 символи нешкідливого коментаря `##` у кінець файлу. Впишіть: - ```bash - echo -e "##" | sudo tee -a /etc/chrony.conf - ``` + ```bash + echo -e "##" | sudo tee -a /etc/chrony.conf + ``` 2. Тепер запустіть команду `rpm` з опцією `--verify`. Впишіть: - ```bash - rpm -V chrony - ``` + ```bash + rpm -V chrony + ``` - Вихід + Вихід - ```bash - S.5....T. c /etc/chrony.conf - ``` + ```bash + S.5....T. c /etc/chrony.conf + ``` - Результат розбивається на 3 окремі стовпці. + Результат розбивається на 3 окремі стовпці. - - **Перший стовпець (S.5....T.)** + - **Перший стовпець (S.5....T.)** - Зразок вихідних даних - `S.5....T.` вказує на 9 полів, які використовуються для вказівки корисної інформації про дійсність файлів у пакеті RPM. Будь-яке поле чи характеристика, які пройшли певну перевірку/тест, позначається знаком «.». + Зразок вихідних даних - `S.5....T.` вказує на 9 полів, які використовуються для вказівки корисної інформації про дійсність файлів у пакеті RPM. Будь-яке поле чи характеристика, які пройшли певну перевірку/тест, позначається знаком «.». - Ці 9 різних полів або перевірок описано тут: + Ці 9 різних полів або перевірок описано тут: - - S: Чи було змінено розмір файлу. - - M: Чи було змінено тип файлу або права доступу до файлу (rwx). - - 5: Чи змінено контрольну суму файлу MD5. - - D: Чи було змінено номер пристрою. - - L: Чи було змінено шлях до файлу. - - U: Чи було змінено власника файлу. - - G: Чи було змінено групу, до якої належить файл. - - T: Чи було змінено mTime (час зміни) файлу. - - P: Чи була змінена функція програми. + - S: Чи було змінено розмір файлу. + - M: Чи було змінено тип файлу або права доступу до файлу (rwx). + - 5: Чи змінено контрольну суму файлу MD5. + - D: Чи було змінено номер пристрою. + - L: Чи було змінено шлях до файлу. + - U: Чи було змінено власника файлу. + - G: Чи було змінено групу, до якої належить файл. + - T: Чи було змінено mTime (час зміни) файлу. + - P: Чи була змінена функція програми. - - **Друга колонка (c)** + - **Друга колонка (c)** - - **c**: Вказує на зміни у файлі конфігурації. Це також можуть бути такі значення: - - d: файл документації. - - g: файл-привид. Дуже мало можна побачити. - - l: файл ліцензії. - - r: файл readme. + - **c**: Вказує на зміни у файлі конфігурації. Це також можуть бути такі значення: + - d: файл документації. + - g: файл-привид. Дуже мало можна побачити. + - l: файл ліцензії. + - r: файл readme. - - **Третій стовпець (/etc/chrony.conf)** + - **Третій стовпець (/etc/chrony.conf)** - - **/etc/chrony.conf**: Представляє шлях до зміненого файлу. + - **/etc/chrony.conf**: Представляє шлях до зміненого файлу. From 9a6dd2d7a3eacabff0f8475955016048aa01476b Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:14 -0400 Subject: [PATCH 007/167] New translations nload.md (Ukrainian) --- docs/gemstones/network/nload.uk.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/gemstones/network/nload.uk.md b/docs/gemstones/network/nload.uk.md index a059e48d95..a6b03189ee 100644 --- a/docs/gemstones/network/nload.uk.md +++ b/docs/gemstones/network/nload.uk.md @@ -70,17 +70,17 @@ Outgoing: Розбиття наведених вище рядків: -- Curr - використання поточної виміряної пропускної здатності -- Avg - середнє використання пропускної здатності за період -- Min - використання мінімальної виміряної пропускної здатності -- Max - використання максимальної виміряної пропускної здатності -- Ttl - дані, передані в сеансі `nload` + - Curr - використання поточної виміряної пропускної здатності + - Avg - середнє використання пропускної здатності за період + - Min - використання мінімальної виміряної пропускної здатності + - Max - використання максимальної виміряної пропускної здатності + - Ttl - дані, передані в сеансі `nload` ## Комбінації клавіш для взаємодії -- \++page-down++, ++down++ - Переходить вниз на один інтерфейс -- \++page-up++, ++up++ - Переходить вверх на один інтерфейс -- \++f2++ - Показує вікно параметрів -- \++f5++ - Зберігає параметри -- \++f6++ - Перезавантажує налаштування з конфігураційного файлу -- \++q++, ++ctrl+c++ - Закриває `nload` + - \++page-down++, ++down++ - Переходить вниз на один інтерфейс + - \++page-up++, ++up++ - Переходить вверх на один інтерфейс + - \++f2++ - Показує вікно параметрів + - \++f5++ - Зберігає параметри + - \++f6++ - Перезавантажує налаштування з конфігураційного файлу + - \++q++, ++ctrl+c++ - Закриває `nload` From ab5157608a89f6bf971986c4080ceb3d76ba00e6 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:17 -0400 Subject: [PATCH 008/167] New translations 2_grep_command.md (Ukrainian) --- docs/books/sed_awk_grep/2_grep_command.uk.md | 318 +++++++++---------- 1 file changed, 159 insertions(+), 159 deletions(-) diff --git a/docs/books/sed_awk_grep/2_grep_command.uk.md b/docs/books/sed_awk_grep/2_grep_command.uk.md index 2a9dee9943..24c8f74349 100644 --- a/docs/books/sed_awk_grep/2_grep_command.uk.md +++ b/docs/books/sed_awk_grep/2_grep_command.uk.md @@ -74,207 +74,207 @@ directory or file control: 1. опція -f і опція -o - ```bash - Shell > cat /root/a - abcdef - 123456 - 338922549 - 24680 - hello world - - Shell > cat /root/b - 12345 - test - world - aaaaa - - # Treat each line of file b as a matching pattern and output the lines that match file a. - Shell > grep -f /root/b /root/a - 123456 - hello world - - Shell > grep -f /root/b /root/a -o - 12345 - world - ``` + ```bash + Shell > cat /root/a + abcdef + 123456 + 338922549 + 24680 + hello world + + Shell > cat /root/b + 12345 + test + world + aaaaa + + # Treat each line of file b as a matching pattern and output the lines that match file a. + Shell > grep -f /root/b /root/a + 123456 + hello world + + Shell > grep -f /root/b /root/a -o + 12345 + world + ``` 2. Зіставлення кількох шаблонів (за допомогою параметра -e) - ```bash - Shell > echo -e "a\nab\nbc\nbcde" | grep -e 'a' -e 'cd' - a - ab - bcde - ``` + ```bash + Shell > echo -e "a\nab\nbc\nbcde" | grep -e 'a' -e 'cd' + a + ab + bcde + ``` - або: + або: - ```bash - Shell > echo -e "a\nab\nbc\nbcde" | grep -E "a|cd" - a - ab - bcde - ``` + ```bash + Shell > echo -e "a\nab\nbc\nbcde" | grep -E "a|cd" + a + ab + bcde + ``` 3. Видалення порожніх рядків та рядків коментарів із файлу конфігурації - ```bash - Shell > grep -v -E "^$|^#" /etc/chrony.conf - server ntp1.tencent.com iburst - server ntp2.tencent.com iburst - server ntp3.tencent.com iburst - server ntp4.tencent.com iburst - driftfile /var/lib/chrony/drift - makestep 1.0 3 - rtcsync - keyfile /etc/chrony.keys - leapsectz right/UTC - logdir /var/log/chrony - ``` + ```bash + Shell > grep -v -E "^$|^#" /etc/chrony.conf + server ntp1.tencent.com iburst + server ntp2.tencent.com iburst + server ntp3.tencent.com iburst + server ntp4.tencent.com iburst + driftfile /var/lib/chrony/drift + makestep 1.0 3 + rtcsync + keyfile /etc/chrony.keys + leapsectz right/UTC + logdir /var/log/chrony + ``` 4. Друк 5 найкращих результатів, які збігаються - ```bash - Shell > seq 1 20 | grep -m 5 -E "[0-9]{2}" - 10 - 11 - 12 - 13 - 14 - ``` - - або: - - ```bash - Shell > seq 1 20 | grep -m 5 "[0-9]\{2\}" - 10 - 11 - 12 - 13 - 14 - ``` + ```bash + Shell > seq 1 20 | grep -m 5 -E "[0-9]{2}" + 10 + 11 + 12 + 13 + 14 + ``` + + або: + + ```bash + Shell > seq 1 20 | grep -m 5 "[0-9]\{2\}" + 10 + 11 + 12 + 13 + 14 + ``` 5. Опція -B та опція -A - ```bash - Shell > seq 1 20 | grep -B 2 -A 3 -m 5 -E "[0-9]{2}" - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - ``` + ```bash + Shell > seq 1 20 | grep -B 2 -A 3 -m 5 -E "[0-9]{2}" + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + ``` 6. Опція -C - ```bash - Shell > seq 1 20 | grep -C 3 -m 5 -E "[0-9]{2}" - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - ``` + ```bash + Shell > seq 1 20 | grep -C 3 -m 5 -E "[0-9]{2}" + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + ``` 7. опція -c - ```bash - Shell > cat /etc/ssh/sshd_config | grep -n -i -E "port" - 13:# If you want to change the port on a SELinux system, you have to tell - 15:# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER - 17:#Port 22 - 99:# WARNING: 'UsePAM no' is not supported in RHEL and may cause several - 105:#GatewayPorts no + ```bash + Shell > cat /etc/ssh/sshd_config | grep -n -i -E "port" + 13:# If you want to change the port on a SELinux system, you have to tell + 15:# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER + 17:#Port 22 + 99:# WARNING: 'UsePAM no' is not supported in RHEL and may cause several + 105:#GatewayPorts no - Shell > cat /etc/ssh/sshd_config | grep -E -i "port" -c - 5 - ``` + Shell > cat /etc/ssh/sshd_config | grep -E -i "port" -c + 5 + ``` 8. опція -v - ```bash - Shell > cat /etc/ssh/sshd_config | grep -i -v -E "port" -c - 140 - ``` + ```bash + Shell > cat /etc/ssh/sshd_config | grep -i -v -E "port" -c + 140 + ``` 9. Фільтрувати файли в каталозі, які містять рядки, які відповідають рядку (виключити файли в підкаталогах) - ```bash - Shell > grep -i -E "port" /etc/n*.conf -n - /etc/named.conf:11: listen-on port 53 { 127.0.0.1; }; - /etc/named.conf:12: listen-on-v6 port 53 { ::1; }; - /etc/nsswitch.conf:32:# winbind Use Samba winbind support - /etc/nsswitch.conf:33:# wins Use Samba wins support - ``` + ```bash + Shell > grep -i -E "port" /etc/n*.conf -n + /etc/named.conf:11: listen-on port 53 { 127.0.0.1; }; + /etc/named.conf:12: listen-on-v6 port 53 { ::1; }; + /etc/nsswitch.conf:32:# winbind Use Samba winbind support + /etc/nsswitch.conf:33:# wins Use Samba wins support + ``` 10. Фільтрувати файли в каталозі, які містять рядки, що відповідають рядку (включити або виключити файли або каталоги в підкаталогах) - Включити синтаксис для кількох файлів: + Включити синтаксис для кількох файлів: - ```bash - Shell > grep -n -i -r -E "port" /etc/ --include={0..20}_* - /etc/grub.d/20_ppc_terminfo:26:export TEXTDOMAIN=grub - /etc/grub.d/20_ppc_terminfo:27:export TEXTDOMAINDIR=/usr/share/locale - /etc/grub.d/20_linux_xen:26:export TEXTDOMAIN=grub - /etc/grub.d/20_linux_xen:27:export TEXTDOMAINDIR="${datarootdir}/locale" - /etc/grub.d/20_linux_xen:46:# Default to disabling partition uuid support to maintian compatibility with - /etc/grub.d/10_linux:26:export TEXTDOMAIN=grub - /etc/grub.d/10_linux:27:export TEXTDOMAINDIR="${datarootdir}/locale" - /etc/grub.d/10_linux:47:# Default to disabling partition uuid support to maintian compatibility with + ```bash + Shell > grep -n -i -r -E "port" /etc/ --include={0..20}_* + /etc/grub.d/20_ppc_terminfo:26:export TEXTDOMAIN=grub + /etc/grub.d/20_ppc_terminfo:27:export TEXTDOMAINDIR=/usr/share/locale + /etc/grub.d/20_linux_xen:26:export TEXTDOMAIN=grub + /etc/grub.d/20_linux_xen:27:export TEXTDOMAINDIR="${datarootdir}/locale" + /etc/grub.d/20_linux_xen:46:# Default to disabling partition uuid support to maintian compatibility with + /etc/grub.d/10_linux:26:export TEXTDOMAIN=grub + /etc/grub.d/10_linux:27:export TEXTDOMAINDIR="${datarootdir}/locale" + /etc/grub.d/10_linux:47:# Default to disabling partition uuid support to maintian compatibility with - Shell > grep -n -i -r -E "port" /etc/ --include={{0..20}_*,sshd_config} -c - /etc/ssh/sshd_config:5 - /etc/grub.d/20_ppc_terminfo:2 - /etc/grub.d/10_reset_boot_success:0 - /etc/grub.d/12_menu_auto_hide:0 - /etc/grub.d/20_linux_xen:3 - /etc/grub.d/10_linux:3 - ``` + Shell > grep -n -i -r -E "port" /etc/ --include={{0..20}_*,sshd_config} -c + /etc/ssh/sshd_config:5 + /etc/grub.d/20_ppc_terminfo:2 + /etc/grub.d/10_reset_boot_success:0 + /etc/grub.d/12_menu_auto_hide:0 + /etc/grub.d/20_linux_xen:3 + /etc/grub.d/10_linux:3 + ``` - Якщо вам потрібно виключити один каталог, використовуйте такий синтаксис: + Якщо вам потрібно виключити один каталог, використовуйте такий синтаксис: - ```bash - Shell > grep -n -i -r -E "port" /etc/ --exclude-dir=selin[u]x - ``` + ```bash + Shell > grep -n -i -r -E "port" /etc/ --exclude-dir=selin[u]x + ``` - Якщо вам потрібно виключити кілька каталогів, використовуйте такий синтаксис: + Якщо вам потрібно виключити кілька каталогів, використовуйте такий синтаксис: - ```bash - Shell > grep -n -i -r -E "port" /etc/ --exclude-dir={selin[u]x,"profile.d",{a..z}ki,au[a-z]it} - ``` + ```bash + Shell > grep -n -i -r -E "port" /etc/ --exclude-dir={selin[u]x,"profile.d",{a..z}ki,au[a-z]it} + ``` - Якщо вам потрібно виключити один файл, використовуйте такий синтаксис: + Якщо вам потрібно виключити один файл, використовуйте такий синтаксис: - ```bash - Shell > grep -n -i -r -E "port" /etc/ --exclude=sshd_config - ``` + ```bash + Shell > grep -n -i -r -E "port" /etc/ --exclude=sshd_config + ``` - Якщо вам потрібно виключити кілька файлів, використовуйте такий синтаксис: + Якщо вам потрібно виключити кілька файлів, використовуйте такий синтаксис: - ```bash - Shell > grep -n -i -r -E "port" /etc/ --exclude={ssh[a-z]_config,*.conf,services} - ``` + ```bash + Shell > grep -n -i -r -E "port" /etc/ --exclude={ssh[a-z]_config,*.conf,services} + ``` - Якщо вам потрібно виключити кілька файлів і каталогів одночасно, використовуйте такий синтаксис: + Якщо вам потрібно виключити кілька файлів і каталогів одночасно, використовуйте такий синтаксис: - ```bash - Shell > grep -n -i -r -E "port" /etc/ --exclude-dir={selin[u]x,"profile.d",{a..z}ki,au[a-z]it} --exclude={ssh[a-z]_config,*.conf,services,[0-9][0-9]*} - ``` + ```bash + Shell > grep -n -i -r -E "port" /etc/ --exclude-dir={selin[u]x,"profile.d",{a..z}ki,au[a-z]it} --exclude={ssh[a-z]_config,*.conf,services,[0-9][0-9]*} + ``` 11. Підрахувати всі IPv4-адреси поточної машини - ```bash - Shell > ip a | grep -o -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | grep -v -E "127|255" - 192.168.100.3 - ``` + ```bash + Shell > ip a | grep -o -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | grep -v -E "127|255" + 192.168.100.3 + ``` From 286c90b79e6099cb2479ef3c3db1539823f5e53d Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:19 -0400 Subject: [PATCH 009/167] New translations 3_sed_command.md (Ukrainian) --- docs/books/sed_awk_grep/3_sed_command.uk.md | 1384 +++++++++---------- 1 file changed, 692 insertions(+), 692 deletions(-) diff --git a/docs/books/sed_awk_grep/3_sed_command.uk.md b/docs/books/sed_awk_grep/3_sed_command.uk.md index 2d0bf46f36..138fc0e67d 100644 --- a/docs/books/sed_awk_grep/3_sed_command.uk.md +++ b/docs/books/sed_awk_grep/3_sed_command.uk.md @@ -68,769 +68,769 @@ sed [OPTION]... {script-only-if-no-other-script} [input-file]... 1. Зіставлення та друк (`p`) - - Надрукуйте рядок, який починається з рядка NetBIOS + - Надрукуйте рядок, який починається з рядка NetBIOS - ```bash - Shell > cat /etc/services | sed -n '/^netbios/p' - netbios-ns 137/tcp # NETBIOS Name Service - netbios-ns 137/udp - netbios-dgm 138/tcp # NETBIOS Datagram Service - netbios-dgm 138/udp - netbios-ssn 139/tcp # NETBIOS session service - netbios-ssn 139/udp - ``` + ```bash + Shell > cat /etc/services | sed -n '/^netbios/p' + netbios-ns 137/tcp # NETBIOS Name Service + netbios-ns 137/udp + netbios-dgm 138/tcp # NETBIOS Datagram Service + netbios-dgm 138/udp + netbios-ssn 139/tcp # NETBIOS session service + netbios-ssn 139/udp + ``` - !!! tip "Підказка" + !!! tip "Підказка" - ``` - Як ми всі знаємо, подвійні та одинарні лапки в оболонці відіграють різну роль. **$**, **\`** і **\\** у подвійних лапках мають особливе значення. Рекомендовано використовувати одинарні лапки частіше під час використання команди `sed`. - ``` + ``` + Як ми всі знаємо, подвійні та одинарні лапки в оболонці відіграють різну роль. **$**, **\`** і **\\** у подвійних лапках мають особливе значення. Рекомендовано використовувати одинарні лапки частіше під час використання команди `sed`. + ``` - - Вивести текст з 23 по 26 рядки + - Вивести текст з 23 по 26 рядки + + ```bash + Shell > cat -n /etc/services | sed -n '23,26p' + 23 tcpmux 1/tcp # TCP port service multiplexer + 24 tcpmux 1/udp # TCP port service multiplexer + 25 rje 5/tcp # Remote Job Entry + 26 rje 5/udp # Remote Job Entry + ``` + + - Друкувати непарні рядки + + ```bash + Shell > cat -n /etc/services | sed -n '1~2p' + 1 # /etc/services: + 3 # + 5 # IANA services version: last updated 2016-07-08 + 7 # Note that it is presently the policy of IANA to assign a single well-known + 9 # even if the protocol doesn't support UDP operations. + 11 # are included, only the more common ones. + 13 # The latest IANA port assignments can be gotten from + 15 # The Well Known Ports are those from 0 through 1023. + 17 # The Dynamic and/or Private Ports are those from 49152 through 65535 + 19 # Each line describes one service, and is of the form: + ... + ``` + + - Вивести рядок 10 до останнього рядка + + ```bash + Shell > cat -n /etc/services | sed -n '10,$p' + 10 # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports + 11 # are included, only the more common ones. + 12 # + 13 # The latest IANA port assignments can be gotten from + 14 # http://www.iana.org/assignments/port-numbers + 15 # The Well Known Ports are those from 0 through 1023. + 16 # The Registered Ports are those from 1024 through 49151 + 17 # The Dynamic and/or Private Ports are those from 49152 through 65535 + ... + ``` + + - Рядки з 10 до останнього не друкувати + + ```bash + Shell > cat -n /etc/services | sed -n '10,$!p' + 1 # /etc/services: + 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ + 3 # + 4 # Network services, Internet style + 5 # IANA services version: last updated 2016-07-08 + 6 # + 7 # Note that it is presently the policy of IANA to assign a single well-known + 8 # port number for both TCP and UDP; hence, most entries here have two entries + 9 # even if the protocol doesn't support UDP operations. + ``` + + - Надрукуйте номер рядка та вміст відповідного рядка + + ```bash + Shell > sed -n -e '/netbios/=' -e '/netbios/p' /etc/services + 123 + netbios-ns 137/tcp # NETBIOS Name Service + 124 + netbios-ns 137/udp + 125 + netbios-dgm 138/tcp # NETBIOS Datagram Service + 126 + netbios-dgm 138/udp + 127 + netbios-ssn 139/tcp # NETBIOS session service + 128 + netbios-ssn 139/udp + ``` + + - Зіставте діапазон рядків і надрукуйте його + + Використовуйте коми для розділення діапазонів рядків + + ```bash + Shell > cat /etc/services | sed -n '/^netbios/,/^imap/p' + netbios-ns 137/tcp # NETBIOS Name Service + netbios-ns 137/udp + netbios-dgm 138/tcp # NETBIOS Datagram Service + netbios-dgm 138/udp + netbios-ssn 139/tcp # NETBIOS session service + netbios-ssn 139/udp + imap 143/tcp imap2 # Interim Mail Access Proto v2 + ``` + + !!! info "примітка" - ```bash - Shell > cat -n /etc/services | sed -n '23,26p' - 23 tcpmux 1/tcp # TCP port service multiplexer - 24 tcpmux 1/udp # TCP port service multiplexer - 25 rje 5/tcp # Remote Job Entry - 26 rje 5/udp # Remote Job Entry - ``` - - - Друкувати непарні рядки + ``` + **Початок діапазону**: відповідність рядку, де розташований рядок, лише збігання з першим рядком, який з’являється. + **Кінець діапазону**: збігається з рядком, у якому розташований рядок, лише з першим рядком, який з’являється. + ``` - ```bash - Shell > cat -n /etc/services | sed -n '1~2p' - 1 # /etc/services: - 3 # - 5 # IANA services version: last updated 2016-07-08 - 7 # Note that it is presently the policy of IANA to assign a single well-known - 9 # even if the protocol doesn't support UDP operations. - 11 # are included, only the more common ones. - 13 # The latest IANA port assignments can be gotten from - 15 # The Well Known Ports are those from 0 through 1023. - 17 # The Dynamic and/or Private Ports are those from 49152 through 65535 - 19 # Each line describes one service, and is of the form: - ... - ``` + ```bash + Shell > grep -n ^netbios /etc/services + 123:netbios-ns 137/tcp # NETBIOS Name Service + 124:netbios-ns 137/udp + 125:netbios-dgm 138/tcp # NETBIOS Datagram Service + 126:netbios-dgm 138/udp + 127:netbios-ssn 139/tcp # NETBIOS session service + 128:netbios-ssn 139/udp + + Shell > grep -n ^imap /etc/services + 129:imap 143/tcp imap2 # Interim Mail Access Proto v2 + 130:imap 143/udp imap2 + 168:imap3 220/tcp # Interactive Mail Access + 169:imap3 220/udp # Protocol v3 + 260:imaps 993/tcp # IMAP over SSL + 261:imaps 993/udp # IMAP over SSL + ``` - - Вивести рядок 10 до останнього рядка + Іншими словами, вміст, надрукований вище, це рядки з 123 по 129 - ```bash - Shell > cat -n /etc/services | sed -n '10,$p' - 10 # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports - 11 # are included, only the more common ones. - 12 # - 13 # The latest IANA port assignments can be gotten from - 14 # http://www.iana.org/assignments/port-numbers - 15 # The Well Known Ports are those from 0 through 1023. - 16 # The Registered Ports are those from 1024 through 49151 - 17 # The Dynamic and/or Private Ports are those from 49152 through 65535 - ... - ``` + - Надрукуйте рядок, де знаходиться рядок, і до останнього рядка - - Рядки з 10 до останнього не друкувати + ```bash + Shell > cat /etc/services | sed -n '/^netbios/,$p' + ``` - ```bash - Shell > cat -n /etc/services | sed -n '10,$!p' - 1 # /etc/services: - 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ - 3 # - 4 # Network services, Internet style - 5 # IANA services version: last updated 2016-07-08 - 6 # - 7 # Note that it is presently the policy of IANA to assign a single well-known - 8 # port number for both TCP and UDP; hence, most entries here have two entries - 9 # even if the protocol doesn't support UDP operations. - ``` + - Використання змінних у сценаріях bash - - Надрукуйте номер рядка та вміст відповідного рядка + ```bash + Shell > vim test1.sh + #!/bin/bash + a=10 - ```bash - Shell > sed -n -e '/netbios/=' -e '/netbios/p' /etc/services - 123 - netbios-ns 137/tcp # NETBIOS Name Service - 124 - netbios-ns 137/udp - 125 - netbios-dgm 138/tcp # NETBIOS Datagram Service - 126 - netbios-dgm 138/udp - 127 - netbios-ssn 139/tcp # NETBIOS session service - 128 - netbios-ssn 139/udp - ``` + sed -n ''${a}',$!p' /etc/services + # or + sed -n "${a},\$!p" /etc/services + ``` - - Зіставте діапазон рядків і надрукуйте його + - Регулярний вираз - Використовуйте коми для розділення діапазонів рядків + Відповідає лише "Три цифри" + "/udp". - ```bash - Shell > cat /etc/services | sed -n '/^netbios/,/^imap/p' - netbios-ns 137/tcp # NETBIOS Name Service - netbios-ns 137/udp - netbios-dgm 138/tcp # NETBIOS Datagram Service - netbios-dgm 138/udp - netbios-ssn 139/tcp # NETBIOS session service - netbios-ssn 139/udp - imap 143/tcp imap2 # Interim Mail Access Proto v2 - ``` + ```bash + Shell > cat /etc/services | sed -r -n '/[^0-9]([1-9]{3}\/udp)/p' + sunrpc 111/udp portmapper rpcbind # RPC 4.0 portmapper UDP + auth 113/udp authentication tap ident + sftp 115/udp + uucp-path 117/udp + nntp 119/udp readnews untp # USENET News Transfer Protocol + ntp 123/udp # Network Time Protocol + netbios-ns 137/udp + netbios-dgm 138/udp + netbios-ssn 139/udp + ... + ``` - !!! info "примітка" - - ``` - **Початок діапазону**: відповідність рядку, де розташований рядок, лише збігання з першим рядком, який з’являється. - **Кінець діапазону**: збігається з рядком, у якому розташований рядок, лише з першим рядком, який з’являється. - ``` - - ```bash - Shell > grep -n ^netbios /etc/services - 123:netbios-ns 137/tcp # NETBIOS Name Service - 124:netbios-ns 137/udp - 125:netbios-dgm 138/tcp # NETBIOS Datagram Service - 126:netbios-dgm 138/udp - 127:netbios-ssn 139/tcp # NETBIOS session service - 128:netbios-ssn 139/udp +2. Зіставити та видалити (`d`) - Shell > grep -n ^imap /etc/services - 129:imap 143/tcp imap2 # Interim Mail Access Proto v2 - 130:imap 143/udp imap2 - 168:imap3 220/tcp # Interactive Mail Access - 169:imap3 220/udp # Protocol v3 - 260:imaps 993/tcp # IMAP over SSL - 261:imaps 993/udp # IMAP over SSL - ``` + Це схоже на друк, за винятком того, що команду операції замінено на `d`, а параметр -n не потрібен. + + - Видалити всі рядки, які відповідають рядку udp, видалити всі рядки коментарів і видалити всі порожні рядки + + ```bash + Shell > sed -e '/udp/d' -e '/^#/d' -e '/^$/d' /etc/services + tcpmux 1/tcp # TCP port service multiplexer + rje 5/tcp # Remote Job Entry + echo 7/tcp + discard 9/tcp sink null + systat 11/tcp users + daytime 13/tcp + qotd 17/tcp quote + chargen 19/tcp ttytst source + ftp-data 20/tcp + ftp 21/tcp + ssh 22/tcp # The Secure Shell (SSH) Protocol + telnet 23/tcp + ... + ``` + + - Видалити послідовні рядки тексту + + ```bash + Shell > cat -n /etc/services | sed '10,$d' + 1 # /etc/services: + 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ + 3 # + 4 # Network services, Internet style + 5 # IANA services version: last updated 2016-07-08 + 6 # + 7 # Note that it is presently the policy of IANA to assign a single well-known + 8 # port number for both TCP and UDP; hence, most entries here have two entries + 9 # even if the protocol doesn't support UDP operations. + ``` + + - Регулярний вираз + + ```bash + Shell > cat /etc/services | sed -r '/(tcp)|(udp)|(^#)|(^$)/d' + http 80/sctp # HyperText Transfer Protocol + bgp 179/sctp + https 443/sctp # http protocol over TLS/SSL + h323hostcall 1720/sctp # H.323 Call Control + nfs 2049/sctp nfsd shilp # Network File System + rtmp 1/ddp # Routing Table Maintenance Protocol + nbp 2/ddp # Name Binding Protocol + echo 4/ddp # AppleTalk Echo Protocol + zip 6/ddp # Zone Information Protocol + discard 9/sctp # Discard + discard 9/dccp # Discard SC:DISC + ... + ``` - Іншими словами, вміст, надрукований вище, це рядки з 123 по 129 +3. Замінити рядки (`s///g`) - - Надрукуйте рядок, де знаходиться рядок, і до останнього рядка + | Синтаксис | Опис синтаксису | + | :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | + | `sed 's/string/replace/g' FILENAME` | **s**: усі рядки, що представляють вміст файлу. Ви також можете вказати діапазон рядків, наприклад: `sed '20,200s/netbios/TMP/g' /etc/services. **g** (Глобальне): Якщо g відсутнє, це означає, що коли в одному рядку з'являється кілька співпадаючих рядків, буде замінено лише перший співпадаючий рядок. **/**: Стиль роздільника. Ви також можете вказати інші стилі, наприклад: `sed '20,200s?netbios?TMP?g' /etc/services\` | - ```bash - Shell > cat /etc/services | sed -n '/^netbios/,$p' - ``` + !!! tip "Підказка" - - Використання змінних у сценаріях bash + ```` + Example in the bash script: ```bash - Shell > vim test1.sh + Shell > vim /root/sedReplace.sh #!/bin/bash - a=10 + a="SELINUX=enforcing" + b="SELINUX=disabled" - sed -n ''${a}',$!p' /etc/services + sed -i 's/'${a}'/'${b}'/g' /etc/selinux/config # or - sed -n "${a},\$!p" /etc/services - ``` - - - Регулярний вираз - - Відповідає лише "Три цифри" + "/udp". - - ```bash - Shell > cat /etc/services | sed -r -n '/[^0-9]([1-9]{3}\/udp)/p' - sunrpc 111/udp portmapper rpcbind # RPC 4.0 portmapper UDP - auth 113/udp authentication tap ident - sftp 115/udp - uucp-path 117/udp - nntp 119/udp readnews untp # USENET News Transfer Protocol - ntp 123/udp # Network Time Protocol - netbios-ns 137/udp - netbios-dgm 138/udp - netbios-ssn 139/udp - ... - ``` - -2. Зіставити та видалити (`d`) - - Це схоже на друк, за винятком того, що команду операції замінено на `d`, а параметр -n не потрібен. - - - Видалити всі рядки, які відповідають рядку udp, видалити всі рядки коментарів і видалити всі порожні рядки - - ```bash - Shell > sed -e '/udp/d' -e '/^#/d' -e '/^$/d' /etc/services - tcpmux 1/tcp # TCP port service multiplexer - rje 5/tcp # Remote Job Entry - echo 7/tcp - discard 9/tcp sink null - systat 11/tcp users - daytime 13/tcp - qotd 17/tcp quote - chargen 19/tcp ttytst source - ftp-data 20/tcp - ftp 21/tcp - ssh 22/tcp # The Secure Shell (SSH) Protocol - telnet 23/tcp - ... - ``` - - - Видалити послідовні рядки тексту + sed -i "s/${a}/${b}/g" /etc/selinux/config + ``` + ```` + + - Замініть і роздрукуйте + + ```bash + Shell > sed -n '44,45s/ssh/SSH/gp' /etc/services + SSH 22/tcp + SSH 22/udp + ``` + + - Використовуйте символ "&", щоб посилатися на рядок + + ```bash + Shell > sed -n '44,45s/ssh/&-SSH/gp' /etc/services + ssh-SSH 22/tcp + ssh-SSH 22/udp + ``` + + - Використовуйте рядок, щоб знайти один або кілька рядків і замінити вказаний рядок у діапазоні рядків + + ```bash + Shell > grep ssh /etc/services -n + 44:ssh 22/tcp # The Secure Shell (SSH) Protocol + 45:ssh 22/udp # The Secure Shell (SSH) Protocol + 551:x11-ssh-offset 6010/tcp # SSH X11 forwarding offset + 593:ssh 22/sctp # SSH + 1351:sshell 614/tcp # SSLshell + 1352:sshell 614/udp # SSLshell + 1607:netconf-ssh 830/tcp # NETCONF over SSH + 1608:netconf-ssh 830/udp # NETCONF over SSH + 7178:sdo-ssh 3897/tcp # Simple Distributed Objects over SSH + 7179:sdo-ssh 3897/udp # Simple Distributed Objects over SSH + 7791:netconf-ch-ssh 4334/tcp # NETCONF Call Home (SSH) + 8473:snmpssh 5161/tcp # SNMP over SSH Transport Model + 8474:snmpssh-trap 5162/tcp # SNMP Notification over SSH Transport Model + 9126:tl1-ssh 6252/tcp # TL1 over SSH + 9127:tl1-ssh 6252/udp # TL1 over SSH + 10796:ssh-mgmt 17235/tcp # SSH Tectia Manager + 10797:ssh-mgmt 17235/udp # SSH Tectia Manager + + Shell > sed '/ssh/s/tcp/TCP/gp' -n /etc/services + ssh 22/TCP # The Secure Shell (SSH) Protocol + x11-ssh-offset 6010/TCP # SSH X11 forwarding offset + sshell 614/TCP # SSLshell + netconf-ssh 830/TCP # NETCONF over SSH + sdo-ssh 3897/TCP # Simple Distributed Objects over SSH + netconf-ch-ssh 4334/TCP # NETCONF Call Home (SSH) + snmpssh 5161/TCP # SNMP over SSH Transport Model + snmpssh-trap 5162/TCP # SNMP Notification over SSH Transport Model + tl1-ssh 6252/TCP # TL1 over SSH + ssh-mgmt 17235/TCP # SSH Tectia Manager + ``` + + - Заміна рядка для послідовних рядків + + ```bash + Shell > sed '10,30s/tcp/TCP/g' /etc/services + ``` + + - Кілька збігів і замін + + ```bash + Shell > cat /etc/services | sed 's/netbios/test1/g ; s/^#//d ; s/dhcp/&t2/g' + ``` + + - Групова заміна регулярних виразів + + У регулярних виразах "()" є групуванням. \1 представляє референтну групу 1, \2 представляє референтну групу 2 і так далі. + + ```bash + Shell > cat /etc/services + ... + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > cat /etc/services | sed -r 's/([0-9]*\/tcp)/\1\tCONTENT1/g ; s/([0-9]*\/udp)/\1\tADD2/g' + ... + axio-disc 35100/tcp CONTENT1 # Axiomatic discovery protocol + axio-disc 35100/udp ADD2 # Axiomatic discovery protocol + pmwebapi 44323/tcp CONTENT1 # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp ADD2 # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp CONTENT1 # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp CONTENT1 # Capture handwritten signatures + ``` + + **\t**: тобто вкладка + + - Замініть усі рядки коментарів порожніми + + ```bash + Shell > cat /etc/services | sed -r 's/(^#.*)//g' + ... + chargen 19/udp ttytst source + ftp-data 20/tcp + ftp-data 20/udp + + ftp 21/tcp + ftp 21/udp fsp fspd + ssh 22/tcp # The Secure Shell (SSH) Protocol + ssh 22/udp # The Secure Shell (SSH) Protocol + ... + ``` + + - Замініть одну з малих літер слова великою + + ```bash + Shell > echo -e "hello,world\nPOSIX" | sed -r 's/(.*)w/\1W/g' + hello,World + POSIX + ``` + + - Зміна позиції рядка + + ```bash + Shell > cat /etc/services + ... + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` + + Ми можемо розділити цей файл на п'ять частин: + + ```txt + cloudcheck-ping 45514 / udp # ASSIA CloudCheck WiFi Management keepalive + ↓ ↓ ↓ ↓ ↓ + (.*) (\<[0-9]+\>) \/ (tcp|udp) (.*) + ↓ ↓ ↓ ↓ + \1 \2 \3 \4 + ``` + + ```bash + Shell > cat /etc/services | sed -r 's/(.*)(\<[0-9]+\>)\/(tcp|udp)(.*)/\1\3\/\2\4/g' + ... + edi_service udp/34567 # dhanalakshmi.org EDI Service + axio-disc tcp/35100 # Axiomatic discovery protocol + axio-disc udp/35100 # Axiomatic discovery protocol + pmwebapi tcp/44323 # Performance Co-Pilot client HTTP API + cloudcheck-ping udp/45514 # ASSIA CloudCheck WiFi Management keepalive + cloudcheck tcp/45514 # ASSIA CloudCheck WiFi Management System + spremotetablet tcp/46998 # Capture handwritten signatures + ``` + + - Видаліть усі пробіли + + ```bash + Shell > echo -e "abcd\t1 2 3 4\tWorld" + abcd 1 2 3 4 World + Shell > echo -e "abcd\t1 2 3 4\tWorld" | sed -r 's/(\s)*//g' + abcd1234World + ``` - ```bash - Shell > cat -n /etc/services | sed '10,$d' - 1 # /etc/services: - 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ - 3 # - 4 # Network services, Internet style - 5 # IANA services version: last updated 2016-07-08 - 6 # - 7 # Note that it is presently the policy of IANA to assign a single well-known - 8 # port number for both TCP and UDP; hence, most entries here have two entries - 9 # even if the protocol doesn't support UDP operations. - ``` - - - Регулярний вираз - - ```bash - Shell > cat /etc/services | sed -r '/(tcp)|(udp)|(^#)|(^$)/d' - http 80/sctp # HyperText Transfer Protocol - bgp 179/sctp - https 443/sctp # http protocol over TLS/SSL - h323hostcall 1720/sctp # H.323 Call Control - nfs 2049/sctp nfsd shilp # Network File System - rtmp 1/ddp # Routing Table Maintenance Protocol - nbp 2/ddp # Name Binding Protocol - echo 4/ddp # AppleTalk Echo Protocol - zip 6/ddp # Zone Information Protocol - discard 9/sctp # Discard - discard 9/dccp # Discard SC:DISC - ... - ``` - -3. Замінити рядки (`s///g`) - - | Синтаксис | Опис синтаксису | - | :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | - | `sed 's/string/replace/g' FILENAME` | **s**: усі рядки, що представляють вміст файлу. Ви також можете вказати діапазон рядків, наприклад: `sed '20,200s/netbios/TMP/g' /etc/services. **g** (Глобальне): Якщо g відсутнє, це означає, що коли в одному рядку з'являється кілька співпадаючих рядків, буде замінено лише перший співпадаючий рядок. **/**: Стиль роздільника. Ви також можете вказати інші стилі, наприклад: `sed '20,200s?netbios?TMP?g' /etc/services\` | - - !!! tip "Підказка" +4. Виконайте кілька разів за допомогою параметра -e - ```` - Example in the bash script: + Наступний приклад: ```bash - Shell > vim /root/sedReplace.sh - #!/bin/bash - a="SELINUX=enforcing" - b="SELINUX=disabled" - - sed -i 's/'${a}'/'${b}'/g' /etc/selinux/config + Shell > tail -n 10 /etc/services + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > tail -n 10 /etc/services | sed -e '1,3d' -e '/cloud/s/ping/PING/g' # or - sed -i "s/${a}/${b}/g" /etc/selinux/config + Shell > tail -n 10 /etc/services | sed '1,3d ; /cloud/s/ping/PING/g' + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-PING 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures ``` - ```` - - - Замініть і роздрукуйте - - ```bash - Shell > sed -n '44,45s/ssh/SSH/gp' /etc/services - SSH 22/tcp - SSH 22/udp - ``` - - - Використовуйте символ "&", щоб посилатися на рядок - - ```bash - Shell > sed -n '44,45s/ssh/&-SSH/gp' /etc/services - ssh-SSH 22/tcp - ssh-SSH 22/udp - ``` - - - Використовуйте рядок, щоб знайти один або кілька рядків і замінити вказаний рядок у діапазоні рядків - - ```bash - Shell > grep ssh /etc/services -n - 44:ssh 22/tcp # The Secure Shell (SSH) Protocol - 45:ssh 22/udp # The Secure Shell (SSH) Protocol - 551:x11-ssh-offset 6010/tcp # SSH X11 forwarding offset - 593:ssh 22/sctp # SSH - 1351:sshell 614/tcp # SSLshell - 1352:sshell 614/udp # SSLshell - 1607:netconf-ssh 830/tcp # NETCONF over SSH - 1608:netconf-ssh 830/udp # NETCONF over SSH - 7178:sdo-ssh 3897/tcp # Simple Distributed Objects over SSH - 7179:sdo-ssh 3897/udp # Simple Distributed Objects over SSH - 7791:netconf-ch-ssh 4334/tcp # NETCONF Call Home (SSH) - 8473:snmpssh 5161/tcp # SNMP over SSH Transport Model - 8474:snmpssh-trap 5162/tcp # SNMP Notification over SSH Transport Model - 9126:tl1-ssh 6252/tcp # TL1 over SSH - 9127:tl1-ssh 6252/udp # TL1 over SSH - 10796:ssh-mgmt 17235/tcp # SSH Tectia Manager - 10797:ssh-mgmt 17235/udp # SSH Tectia Manager - - Shell > sed '/ssh/s/tcp/TCP/gp' -n /etc/services - ssh 22/TCP # The Secure Shell (SSH) Protocol - x11-ssh-offset 6010/TCP # SSH X11 forwarding offset - sshell 614/TCP # SSLshell - netconf-ssh 830/TCP # NETCONF over SSH - sdo-ssh 3897/TCP # Simple Distributed Objects over SSH - netconf-ch-ssh 4334/TCP # NETCONF Call Home (SSH) - snmpssh 5161/TCP # SNMP over SSH Transport Model - snmpssh-trap 5162/TCP # SNMP Notification over SSH Transport Model - tl1-ssh 6252/TCP # TL1 over SSH - ssh-mgmt 17235/TCP # SSH Tectia Manager - ``` - - - Заміна рядка для послідовних рядків - - ```bash - Shell > sed '10,30s/tcp/TCP/g' /etc/services - ``` - - - Кілька збігів і замін - - ```bash - Shell > cat /etc/services | sed 's/netbios/test1/g ; s/^#//d ; s/dhcp/&t2/g' - ``` - - - Групова заміна регулярних виразів - - У регулярних виразах "()" є групуванням. \1 представляє референтну групу 1, \2 представляє референтну групу 2 і так далі. - - ```bash - Shell > cat /etc/services - ... - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > cat /etc/services | sed -r 's/([0-9]*\/tcp)/\1\tCONTENT1/g ; s/([0-9]*\/udp)/\1\tADD2/g' - ... - axio-disc 35100/tcp CONTENT1 # Axiomatic discovery protocol - axio-disc 35100/udp ADD2 # Axiomatic discovery protocol - pmwebapi 44323/tcp CONTENT1 # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp ADD2 # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp CONTENT1 # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp CONTENT1 # Capture handwritten signatures - ``` - - **\t**: тобто вкладка - - - Замініть усі рядки коментарів порожніми - - ```bash - Shell > cat /etc/services | sed -r 's/(^#.*)//g' - ... - chargen 19/udp ttytst source - ftp-data 20/tcp - ftp-data 20/udp - - ftp 21/tcp - ftp 21/udp fsp fspd - ssh 22/tcp # The Secure Shell (SSH) Protocol - ssh 22/udp # The Secure Shell (SSH) Protocol - ... - ``` - - - Замініть одну з малих літер слова великою - - ```bash - Shell > echo -e "hello,world\nPOSIX" | sed -r 's/(.*)w/\1W/g' - hello,World - POSIX - ``` - - - Зміна позиції рядка - - ```bash - Shell > cat /etc/services - ... - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` - - Ми можемо розділити цей файл на п'ять частин: - - ```txt - cloudcheck-ping 45514 / udp # ASSIA CloudCheck WiFi Management keepalive - ↓ ↓ ↓ ↓ ↓ - (.*) (\<[0-9]+\>) \/ (tcp|udp) (.*) - ↓ ↓ ↓ ↓ - \1 \2 \3 \4 - ``` - - ```bash - Shell > cat /etc/services | sed -r 's/(.*)(\<[0-9]+\>)\/(tcp|udp)(.*)/\1\3\/\2\4/g' - ... - edi_service udp/34567 # dhanalakshmi.org EDI Service - axio-disc tcp/35100 # Axiomatic discovery protocol - axio-disc udp/35100 # Axiomatic discovery protocol - pmwebapi tcp/44323 # Performance Co-Pilot client HTTP API - cloudcheck-ping udp/45514 # ASSIA CloudCheck WiFi Management keepalive - cloudcheck tcp/45514 # ASSIA CloudCheck WiFi Management System - spremotetablet tcp/46998 # Capture handwritten signatures - ``` - - - Видаліть усі пробіли - - ```bash - Shell > echo -e "abcd\t1 2 3 4\tWorld" - abcd 1 2 3 4 World - Shell > echo -e "abcd\t1 2 3 4\tWorld" | sed -r 's/(\s)*//g' - abcd1234World - ``` - -4. Виконайте кілька разів за допомогою параметра -e - - Наступний приклад: - - ```bash - Shell > tail -n 10 /etc/services - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > tail -n 10 /etc/services | sed -e '1,3d' -e '/cloud/s/ping/PING/g' - # or - Shell > tail -n 10 /etc/services | sed '1,3d ; /cloud/s/ping/PING/g' - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-PING 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` 5. Додайте вміст над або під певним рядком («i» і «a») - - Додайте два рядки вмісту над вказаним номером рядка - - ```bash - Shell > tail -n 10 /etc/services > /root/test.txt - Shell > cat /root/test.txt - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > cat /root/test.txt | sed '3i 123\ - abc' - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - 123 - abc - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` + - Додайте два рядки вмісту над вказаним номером рядка + + ```bash + Shell > tail -n 10 /etc/services > /root/test.txt + Shell > cat /root/test.txt + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > cat /root/test.txt | sed '3i 123\ + abc' + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + 123 + abc + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` + + - Додайте три рядки під вказаним номером рядка - - Додайте три рядки під вказаним номером рядка - - ```bash - Shell > cat /root/test.txt | sed '5a 123\ - comment yes\ - tcp or udp' - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - 123 - comment yes - tcp or udp - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` - - - Зіставте певний рядок на основі рядка та додайте 2 рядки вмісту над ним + ```bash + Shell > cat /root/test.txt | sed '5a 123\ + comment yes\ + tcp or udp' + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + 123 + comment yes + tcp or udp + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` - ```bash - Shell > cat /root/test.txt | sed '/tcp/iTCP\ - UDP' - TCP - UDP - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - TCP - UDP - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - TCP - UDP - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - TCP - UDP - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - TCP - UDP - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - TCP - UDP - spremotetablet 46998/tcp # Capture handwritten signatures - ``` + - Зіставте певний рядок на основі рядка та додайте 2 рядки вмісту над ним + + ```bash + Shell > cat /root/test.txt | sed '/tcp/iTCP\ + UDP' + TCP + UDP + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + TCP + UDP + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + TCP + UDP + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + TCP + UDP + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + TCP + UDP + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + TCP + UDP + spremotetablet 46998/tcp # Capture handwritten signatures + ``` 6. Замінити рядки (`c`) - - Знайдіть один або кілька рядків на основі рядка та замініть ці рядки тексту - - ```bash - Shell > cat /root/test.txt | sed '/ser/c\TMP1 \ - TMP2' - TMP1 - TMP2 - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - TMP1 - TMP2 - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` - - - Заміна однієї лінії - - ```bash - Shell > cat /root/test.txt | sed '7c REPLACE' - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - REPLACE - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` - - - Замінити послідовні рядки тексту - - ```bash - Shell > cat /root/test.txt | sed '2,$c REPLACE1 \ - replace2' - aigairserver 21221/tcp # Services for Air Server - REPLACE1 - replace2 - ``` - - - Замініть парні рядки - - ```bash - Shell > cat /root/test.txt | sed '2~2c replace' - aigairserver 21221/tcp # Services for Air Server - replace - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - replace - axio-disc 35100/tcp # Axiomatic discovery protocol - replace - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - replace - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - replace - ``` + - Знайдіть один або кілька рядків на основі рядка та замініть ці рядки тексту + + ```bash + Shell > cat /root/test.txt | sed '/ser/c\TMP1 \ + TMP2' + TMP1 + TMP2 + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + TMP1 + TMP2 + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` + + - Заміна однієї лінії + + ```bash + Shell > cat /root/test.txt | sed '7c REPLACE' + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + REPLACE + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` + + - Замінити послідовні рядки тексту + + ```bash + Shell > cat /root/test.txt | sed '2,$c REPLACE1 \ + replace2' + aigairserver 21221/tcp # Services for Air Server + REPLACE1 + replace2 + ``` + + - Замініть парні рядки + + ```bash + Shell > cat /root/test.txt | sed '2~2c replace' + aigairserver 21221/tcp # Services for Air Server + replace + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + replace + axio-disc 35100/tcp # Axiomatic discovery protocol + replace + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + replace + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + replace + ``` 7. Прочитайте вміст файлу та додайте його вміст під відповідним рядком (`r`) - ```bash - Shell > cat /root/app.txt - append1 - POSIX - UNIX - - Shell > cat /root/test.txt | sed '/ping/r /root/app.txt' - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - append1 - POSIX - UNIX - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` + ```bash + Shell > cat /root/app.txt + append1 + POSIX + UNIX + + Shell > cat /root/test.txt | sed '/ping/r /root/app.txt' + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + append1 + POSIX + UNIX + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` 8. Записати відповідні рядки в інші файли (`w`) - ```bash - Shell > cat /root/test.txt | sed '/axio/w /root/storage.txt' + ```bash + Shell > cat /root/test.txt | sed '/axio/w /root/storage.txt' - Shell > cat /root/storage.txt - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - ``` + Shell > cat /root/storage.txt + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + ``` 9. Читання/додавання наступного рядка введення в "простір шаблону" (`n` і `N`) - - Надрукуйте наступний рядок відповідного рядка + - Надрукуйте наступний рядок відповідного рядка - ```bash - Shell > cat /root/test.txt - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > cat /root/test.txt | sed '/ping/{n;p}' -n - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - ``` + ```bash + Shell > cat /root/test.txt + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures - !!! tip "Підказка" + Shell > cat /root/test.txt | sed '/ping/{n;p}' -n + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + ``` - ``` - Кілька команд операції `sed` можуть впливати одна на одну, і ви можете використовувати "**{ }**", щоб зменшити цей вплив. - ``` + !!! tip "Підказка" - - Друк рівних рядків тексту + ``` + Кілька команд операції `sed` можуть впливати одна на одну, і ви можете використовувати "**{ }**", щоб зменшити цей вплив. + ``` - Спочатку прочитайте перший рядок, оскільки присутня команда `n`; буде роздруковано другий рядок і так далі. + - Друк рівних рядків тексту + + Спочатку прочитайте перший рядок, оскільки присутня команда `n`; буде роздруковано другий рядок і так далі. + + ```bash + Shell > cat -n /root/test.txt | sed -n '{n;p}' + # or + Shell > cat -n /root/test.txt | sed -n '2~2p' + 2 ka-kdp 31016/udp # Kollective Agent Kollective Delivery + 4 edi_service 34567/udp # dhanalakshmi.org EDI Service + 6 axio-disc 35100/udp # Axiomatic discovery protocol + 8 cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + 10 spremotetablet 46998/tcp # Capture handwritten signatures + ``` + + - Друк непарних рядків тексту + + ```bash + Shell > cat -n /root/test.txt | sed -n '{p;n}' + # or + Shell > cat -n /root/test.txt | sed -n '1~2p' + # or + Shell > cat -n /root/test.txt | sed 'n;d' + 1 aigairserver 21221/tcp # Services for Air Server + 3 ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + 5 axio-disc 35100/tcp # Axiomatic discovery protocol + 7 pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + 9 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + ``` + + - Вивести 3n рядків + + ```bash + Shell > cat -n /root/test.txt | sed -n '{n;n;p}' + # or + Shell > cat -n /root/test.txt | sed -n '3~3p' + 3 ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + 6 axio-disc 35100/udp # Axiomatic discovery protocol + 9 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + ``` + + - `N` + + Прочитайте перший рядок і додайте один рядок після зустрічі з командою `N`. У цьому прикладі «простір шаблону» — «1\n2». Нарешті, виконайте команду `q`, щоб вийти. + + ```bash + Shell > seq 1 10 | sed 'N;q' + 1 + 2 + ``` + + Оскільки після рядка 9 немає додаткового рядка, результат буде таким: + + ```bash + Shell > seq 1 9 | sed -n 'N;p' + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + ``` + + Коли зчитується останній рядок, команда `N` не виконується, і виводиться наступне: + + ```bash + Shell > seq 1 9 | sed -n '$!N;p' + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + ``` + + Об’єднати два рядки в один. Замініть "\n" у "шаблоні" пробілом. + + ```bash + Shell > seq 1 6 | sed 'N;{s/\n//g}' + 12 + 34 + 56 + ``` - ```bash - Shell > cat -n /root/test.txt | sed -n '{n;p}' - # or - Shell > cat -n /root/test.txt | sed -n '2~2p' - 2 ka-kdp 31016/udp # Kollective Agent Kollective Delivery - 4 edi_service 34567/udp # dhanalakshmi.org EDI Service - 6 axio-disc 35100/udp # Axiomatic discovery protocol - 8 cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - 10 spremotetablet 46998/tcp # Capture handwritten signatures - ``` +10. Ігнорувати регістр ('I') - - Друк непарних рядків тексту + Здається, немає інформації про ігнорування регістру в `man 1 sed`. ```bash - Shell > cat -n /root/test.txt | sed -n '{p;n}' - # or - Shell > cat -n /root/test.txt | sed -n '1~2p' - # or - Shell > cat -n /root/test.txt | sed 'n;d' - 1 aigairserver 21221/tcp # Services for Air Server - 3 ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - 5 axio-disc 35100/tcp # Axiomatic discovery protocol - 7 pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - 9 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + Shell > echo -e "abc\nAbc" | sed -n 's/a/X/Igp' + Xbc + XBC ``` - - Вивести 3n рядків - ```bash - Shell > cat -n /root/test.txt | sed -n '{n;n;p}' - # or - Shell > cat -n /root/test.txt | sed -n '3~3p' - 3 ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - 6 axio-disc 35100/udp # Axiomatic discovery protocol - 9 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + Shell > cat /etc/services | sed '/OEM/Ip' -n + oem-agent 3872/tcp # OEM Agent + oem-agent 3872/udp # OEM Agent + oemcacao-jmxmp 11172/tcp # OEM cacao JMX-remoting access point + oemcacao-rmi 11174/tcp # OEM cacao rmi registry access point + oemcacao-websvc 11175/tcp # OEM cacao web service access point ``` - - `N` - - Прочитайте перший рядок і додайте один рядок після зустрічі з командою `N`. У цьому прикладі «простір шаблону» — «1\n2». Нарешті, виконайте команду `q`, щоб вийти. - ```bash - Shell > seq 1 10 | sed 'N;q' - 1 - 2 + Shell > cat /etc/services | sed -r '/(TCP)|(UDP)/Id' ``` - Оскільки після рядка 9 немає додаткового рядка, результат буде таким: - ```bash - Shell > seq 1 9 | sed -n 'N;p' - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 + Shell > cat /etc/services | sed -r '/(TCP)|(UDP)/Ic TMP' ``` - Коли зчитується останній рядок, команда `N` не виконується, і виводиться наступне: +11. Отримує загальну кількість рядків у файлі ```bash - Shell > seq 1 9 | sed -n '$!N;p' - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - ``` - - Об’єднати два рядки в один. Замініть "\n" у "шаблоні" пробілом. + Shell > cat /etc/services | sed -n '$=' + # or + Shell > cat /etc/services | wc -l - ```bash - Shell > seq 1 6 | sed 'N;{s/\n//g}' - 12 - 34 - 56 + 11473 ``` - -10. Ігнорувати регістр ('I') - - Здається, немає інформації про ігнорування регістру в `man 1 sed`. - - ```bash - Shell > echo -e "abc\nAbc" | sed -n 's/a/X/Igp' - Xbc - XBC - ``` - - ```bash - Shell > cat /etc/services | sed '/OEM/Ip' -n - oem-agent 3872/tcp # OEM Agent - oem-agent 3872/udp # OEM Agent - oemcacao-jmxmp 11172/tcp # OEM cacao JMX-remoting access point - oemcacao-rmi 11174/tcp # OEM cacao rmi registry access point - oemcacao-websvc 11175/tcp # OEM cacao web service access point - ``` - - ```bash - Shell > cat /etc/services | sed -r '/(TCP)|(UDP)/Id' - ``` - - ```bash - Shell > cat /etc/services | sed -r '/(TCP)|(UDP)/Ic TMP' - ``` - -11. Отримує загальну кількість рядків у файлі - - ```bash - Shell > cat /etc/services | sed -n '$=' - # or - Shell > cat /etc/services | wc -l - - 11473 - ``` From 6882c328abb0f3cb225a80808b01a2b322505bd4 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:21 -0400 Subject: [PATCH 010/167] New translations 4_awk_command.md (Ukrainian) --- docs/books/sed_awk_grep/4_awk_command.uk.md | 2994 +++++++++---------- 1 file changed, 1497 insertions(+), 1497 deletions(-) diff --git a/docs/books/sed_awk_grep/4_awk_command.uk.md b/docs/books/sed_awk_grep/4_awk_command.uk.md index 9b7bc95738..729b6c0f37 100644 --- a/docs/books/sed_awk_grep/4_awk_command.uk.md +++ b/docs/books/sed_awk_grep/4_awk_command.uk.md @@ -190,293 +190,293 @@ ID Name 1. Читання вихідних файлів програми `awk` з файлів - ```bash - Shell > vim /tmp/read-print.awk - #!/bin/awk - {print $6} - - Shell > df -hT | awk -f /tmp/read-print.awk - Use% - 0% - 0% - 1% - 0% - 6% - 18% - 0% - ``` + ```bash + Shell > vim /tmp/read-print.awk + #!/bin/awk + {print $6} + + Shell > df -hT | awk -f /tmp/read-print.awk + Use% + 0% + 0% + 1% + 0% + 6% + 18% + 0% + ``` 2. Вкажіть роздільник - ```bash - Shell > awk -F ":" '{print $1}' /etc/passwd - root - bin - daemon - adm - lp - sync - ... - - Shell > tail -n 5 /etc/services | awk -F "\/" '{print $2}' - awk: warning: escape sequence `\/' treated as plain `/' - axio-disc 35100 - pmwebapi 44323 - cloudcheck-ping 45514 - cloudcheck 45514 - spremotetablet 46998 - ``` - - Ви також можете використовувати слова як роздільники. Дужки вказують, що це загальний роздільник, а "|" означає або. - - ```bash - Shell > tail -n 5 /etc/services | awk -F "(tcp)|(udp)" '{print $1}' - axio-disc 35100/ - pmwebapi 44323/ - cloudcheck-ping 45514/ - cloudcheck 45514/ - spremotetablet 46998/ - ``` + ```bash + Shell > awk -F ":" '{print $1}' /etc/passwd + root + bin + daemon + adm + lp + sync + ... + + Shell > tail -n 5 /etc/services | awk -F "\/" '{print $2}' + awk: warning: escape sequence `\/' treated as plain `/' + axio-disc 35100 + pmwebapi 44323 + cloudcheck-ping 45514 + cloudcheck 45514 + spremotetablet 46998 + ``` + + Ви також можете використовувати слова як роздільники. Дужки вказують, що це загальний роздільник, а "|" означає або. + + ```bash + Shell > tail -n 5 /etc/services | awk -F "(tcp)|(udp)" '{print $1}' + axio-disc 35100/ + pmwebapi 44323/ + cloudcheck-ping 45514/ + cloudcheck 45514/ + spremotetablet 46998/ + ``` 3. Присвоєння змінної - ```bash - Shell > tail -n 5 /etc/services | awk -v a=123 'BEGIN{print a}{print $1}' - 123 - axio-disc - pmwebapi - cloudcheck-ping - cloudcheck - spremotetablet - ``` - - Призначте значення визначених користувачем змінних у bash змінним awk. - - ```bash - Shell > ab=123 - Shell > echo ${ab} - 123 - Shell > tail -n 5 /etc/services | awk -v a=${ab} 'BEGIN{print a}{print $1}' - 123 - axio-disc - pmwebapi - cloudcheck-ping - cloudcheck - spremotetablet - ``` + ```bash + Shell > tail -n 5 /etc/services | awk -v a=123 'BEGIN{print a}{print $1}' + 123 + axio-disc + pmwebapi + cloudcheck-ping + cloudcheck + spremotetablet + ``` + + Призначте значення визначених користувачем змінних у bash змінним awk. + + ```bash + Shell > ab=123 + Shell > echo ${ab} + 123 + Shell > tail -n 5 /etc/services | awk -v a=${ab} 'BEGIN{print a}{print $1}' + 123 + axio-disc + pmwebapi + cloudcheck-ping + cloudcheck + spremotetablet + ``` 4. Записати глобальні змінні awk у файл - ```bash - Shell > seq 1 6 | awk --dump-variables '{print $0}' - 1 - 2 - 3 - 4 - 5 - 6 - - Shell > cat /root/awkvars.out - ARGC: 1 - ARGIND: 0 - ARGV: array, 1 elements - BINMODE: 0 - CONVFMT: "%.6g" - ENVIRON: array, 27 elements - ERRNO: "" - FIELDWIDTHS: "" - FILENAME: "-" - FNR: 6 - FPAT: "[^[:space:]]+" - FS: " " - FUNCTAB: array, 41 elements - IGNORECASE: 0 - LINT: 0 - NF: 1 - NR: 6 - OFMT: "%.6g" - OFS: " " - ORS: "\n" - PREC: 53 - PROCINFO: array, 20 elements - RLENGTH: 0 - ROUNDMODE: "N" - RS: "\n" - RSTART: 0 - RT: "\n" - SUBSEP: "\034" - SYMTAB: array, 28 elements - TEXTDOMAIN: "messages" - ``` - - Пізніше ми розповімо, що означають ці змінні. Щоб переглянути їх зараз, [перейдіть до змінних](#VARIABLES). + ```bash + Shell > seq 1 6 | awk --dump-variables '{print $0}' + 1 + 2 + 3 + 4 + 5 + 6 + + Shell > cat /root/awkvars.out + ARGC: 1 + ARGIND: 0 + ARGV: array, 1 elements + BINMODE: 0 + CONVFMT: "%.6g" + ENVIRON: array, 27 elements + ERRNO: "" + FIELDWIDTHS: "" + FILENAME: "-" + FNR: 6 + FPAT: "[^[:space:]]+" + FS: " " + FUNCTAB: array, 41 elements + IGNORECASE: 0 + LINT: 0 + NF: 1 + NR: 6 + OFMT: "%.6g" + OFS: " " + ORS: "\n" + PREC: 53 + PROCINFO: array, 20 elements + RLENGTH: 0 + ROUNDMODE: "N" + RS: "\n" + RSTART: 0 + RT: "\n" + SUBSEP: "\034" + SYMTAB: array, 28 elements + TEXTDOMAIN: "messages" + ``` + + Пізніше ми розповімо, що означають ці змінні. Щоб переглянути їх зараз, [перейдіть до змінних](#VARIABLES). 5. BEGIN{ } та END{ } - ```bash - Shell > head -n 5 /etc/passwd | awk 'BEGIN{print "UserName:PasswordIdentification:UID:InitGID"}{print $0}END{print "one\ntwo"}' - UserName:PasswordIdentification:UID:InitGID - root:x:0:0:root:/root:/bin/bash - bin:x:1:1:bin:/bin:/sbin/nologin - daemon:x:2:2:daemon:/sbin:/sbin/nologin - adm:x:3:4:adm:/var/adm:/sbin/nologin - lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin - one - two - ``` + ```bash + Shell > head -n 5 /etc/passwd | awk 'BEGIN{print "UserName:PasswordIdentification:UID:InitGID"}{print $0}END{print "one\ntwo"}' + UserName:PasswordIdentification:UID:InitGID + root:x:0:0:root:/root:/bin/bash + bin:x:1:1:bin:/bin:/sbin/nologin + daemon:x:2:2:daemon:/sbin:/sbin/nologin + adm:x:3:4:adm:/var/adm:/sbin/nologin + lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin + one + two + ``` 6. Опція --profile - ```bash - Shell > df -hT | awk --profile 'BEGIN{print "start line"}{print $0}END{print "end line"}' - start line - Filesystem Type Size Used Avail Use% Mounted on - devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev - tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm - tmpfs tmpfs 1.8G 8.9M 1.8G 1% /run - tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup - /dev/nvme0n1p2 ext4 47G 2.7G 42G 6% / - /dev/nvme0n1p1 xfs 1014M 181M 834M 18% /boot - tmpfs tmpfs 363M 0 363M 0% /run/user/0 - end line - - Shell > cat /root/awkprof.out - # gawk profile, created Fri Dec 8 15:12:56 2023 - - # BEGIN rule(s) - - BEGIN { - 1 print "start line" - } - - # Rule(s) - - 8 { - 8 print $0 - } - - # END rule(s) - - END { - 1 print "end line" - } - ``` - - Змініть файл awkprof.out. - - ```bash - Shell > vim /root/awkprof.out - BEGIN { - print "start line" - } - - { - print $0 - } - - END { - print "end line" - } - - Shell > df -hT | awk -f /root/awkprof.out - start line - Filesystem Type Size Used Avail Use% Mounted on - devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev - tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm - tmpfs tmpfs 1.8G 8.9M 1.8G 1% /run - tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup - /dev/nvme0n1p2 ext4 47G 2.7G 42G 6% / - /dev/nvme0n1p1 xfs 1014M 181M 834M 18% /boot - tmpfs tmpfs 363M 0 363M 0% /run/user/0 - end line - ``` + ```bash + Shell > df -hT | awk --profile 'BEGIN{print "start line"}{print $0}END{print "end line"}' + start line + Filesystem Type Size Used Avail Use% Mounted on + devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev + tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm + tmpfs tmpfs 1.8G 8.9M 1.8G 1% /run + tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup + /dev/nvme0n1p2 ext4 47G 2.7G 42G 6% / + /dev/nvme0n1p1 xfs 1014M 181M 834M 18% /boot + tmpfs tmpfs 363M 0 363M 0% /run/user/0 + end line + + Shell > cat /root/awkprof.out + # gawk profile, created Fri Dec 8 15:12:56 2023 + + # BEGIN rule(s) + + BEGIN { + 1 print "start line" + } + + # Rule(s) + + 8 { + 8 print $0 + } + + # END rule(s) + + END { + 1 print "end line" + } + ``` + + Змініть файл awkprof.out. + + ```bash + Shell > vim /root/awkprof.out + BEGIN { + print "start line" + } + + { + print $0 + } + + END { + print "end line" + } + + Shell > df -hT | awk -f /root/awkprof.out + start line + Filesystem Type Size Used Avail Use% Mounted on + devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev + tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm + tmpfs tmpfs 1.8G 8.9M 1.8G 1% /run + tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup + /dev/nvme0n1p2 ext4 47G 2.7G 42G 6% / + /dev/nvme0n1p1 xfs 1014M 181M 834M 18% /boot + tmpfs tmpfs 363M 0 363M 0% /run/user/0 + end line + ``` 7. Зіставте рядки (записи) за допомогою регулярних виразів - ```bash - Shell > cat /etc/services | awk '/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ {print $0}' - sunrpc 111/tcp portmapper rpcbind # RPC 4.0 portmapper TCP - auth 113/tcp authentication tap ident - sftp 115/tcp - uucp-path 117/tcp - nntp 119/tcp readnews untp # USENET News Transfer Protocol - ntp 123/tcp - netbios-ns 137/tcp # NETBIOS Name Service - netbios-dgm 138/tcp # NETBIOS Datagram Service - netbios-ssn 139/tcp # NETBIOS session service - ... - ``` + ```bash + Shell > cat /etc/services | awk '/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ {print $0}' + sunrpc 111/tcp portmapper rpcbind # RPC 4.0 portmapper TCP + auth 113/tcp authentication tap ident + sftp 115/tcp + uucp-path 117/tcp + nntp 119/tcp readnews untp # USENET News Transfer Protocol + ntp 123/tcp + netbios-ns 137/tcp # NETBIOS Name Service + netbios-dgm 138/tcp # NETBIOS Datagram Service + netbios-ssn 139/tcp # NETBIOS session service + ... + ``` 8. Логічні операції (логічне та, логічне АБО, зворотне) - logical and: && - logical OR: || - reverse: ! - - ```bash - Shell > cat /etc/services | awk '/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ && /175/ {print $0}' - vmnet 175/tcp # VMNET - ``` - - ```bash - Shell > cat /etc/services | awk '/[^0-9a-zA-Z]9[1-9]{2}\/tcp/ || /91{2}\/tcp/ {print $0}' - telnets 992/tcp - imaps 993/tcp # IMAP over SSL - pop3s 995/tcp # POP-3 over SSL - mtp 1911/tcp # - rndc 953/tcp # rndc control sockets (BIND 9) - xact-backup 911/tcp # xact-backup - apex-mesh 912/tcp # APEX relay-relay service - apex-edge 913/tcp # APEX endpoint-relay service - ftps-data 989/tcp # ftp protocol, data, over TLS/SSL - nas 991/tcp # Netnews Administration System - vsinet 996/tcp # vsinet - maitrd 997/tcp # - busboy 998/tcp # - garcon 999/tcp # - #puprouter 999/tcp # - blockade 2911/tcp # Blockade - prnstatus 3911/tcp # Printer Status Port - cpdlc 5911/tcp # Controller Pilot Data Link Communication - manyone-xml 8911/tcp # manyone-xml - sype-transport 9911/tcp # SYPECom Transport Protocol - ``` - - ```bash - Shell > cat /etc/services | awk '!/(tcp)|(udp)/ {print $0}' - discard 9/sctp # Discard - discard 9/dccp # Discard SC:DISC - ftp-data 20/sctp # FTP - ftp 21/sctp # FTP - ssh 22/sctp # SSH - exp1 1021/sctp # RFC3692-style Experiment 1 (*) [RFC4727] - exp1 1021/dccp # RFC3692-style Experiment 1 (*) [RFC4727] - exp2 1022/sctp # RFC3692-style Experiment 2 (*) [RFC4727] - exp2 1022/dccp # RFC3692-style Experiment 2 (*) [RFC4727] - ltp-deepspace 1113/dccp # Licklider Transmission Protocol - cisco-ipsla 1167/sctp # Cisco IP SLAs Control Protocol - rcip-itu 2225/sctp # Resource Connection Initiation Protocol - m2ua 2904/sctp # M2UA - m3ua 2905/sctp # M3UA - megaco-h248 2944/sctp # Megaco-H.248 text - ... - ``` + logical and: && + logical OR: || + reverse: ! + + ```bash + Shell > cat /etc/services | awk '/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ && /175/ {print $0}' + vmnet 175/tcp # VMNET + ``` + + ```bash + Shell > cat /etc/services | awk '/[^0-9a-zA-Z]9[1-9]{2}\/tcp/ || /91{2}\/tcp/ {print $0}' + telnets 992/tcp + imaps 993/tcp # IMAP over SSL + pop3s 995/tcp # POP-3 over SSL + mtp 1911/tcp # + rndc 953/tcp # rndc control sockets (BIND 9) + xact-backup 911/tcp # xact-backup + apex-mesh 912/tcp # APEX relay-relay service + apex-edge 913/tcp # APEX endpoint-relay service + ftps-data 989/tcp # ftp protocol, data, over TLS/SSL + nas 991/tcp # Netnews Administration System + vsinet 996/tcp # vsinet + maitrd 997/tcp # + busboy 998/tcp # + garcon 999/tcp # + #puprouter 999/tcp # + blockade 2911/tcp # Blockade + prnstatus 3911/tcp # Printer Status Port + cpdlc 5911/tcp # Controller Pilot Data Link Communication + manyone-xml 8911/tcp # manyone-xml + sype-transport 9911/tcp # SYPECom Transport Protocol + ``` + + ```bash + Shell > cat /etc/services | awk '!/(tcp)|(udp)/ {print $0}' + discard 9/sctp # Discard + discard 9/dccp # Discard SC:DISC + ftp-data 20/sctp # FTP + ftp 21/sctp # FTP + ssh 22/sctp # SSH + exp1 1021/sctp # RFC3692-style Experiment 1 (*) [RFC4727] + exp1 1021/dccp # RFC3692-style Experiment 1 (*) [RFC4727] + exp2 1022/sctp # RFC3692-style Experiment 2 (*) [RFC4727] + exp2 1022/dccp # RFC3692-style Experiment 2 (*) [RFC4727] + ltp-deepspace 1113/dccp # Licklider Transmission Protocol + cisco-ipsla 1167/sctp # Cisco IP SLAs Control Protocol + rcip-itu 2225/sctp # Resource Connection Initiation Protocol + m2ua 2904/sctp # M2UA + m3ua 2905/sctp # M3UA + megaco-h248 2944/sctp # Megaco-H.248 text + ... + ``` 9. Знаходить послідовні рядки за рядком і друкує їх - ```bash - Shell > cat /etc/services | awk '/^ntp/,/^netbios/ {print $0}' - ntp 123/tcp - ntp 123/udp # Network Time Protocol - netbios-ns 137/tcp # NETBIOS Name Service - ``` + ```bash + Shell > cat /etc/services | awk '/^ntp/,/^netbios/ {print $0}' + ntp 123/tcp + ntp 123/udp # Network Time Protocol + netbios-ns 137/tcp # NETBIOS Name Service + ``` - !!! info "примітка" + !!! info "примітка" - ``` - Початковий діапазон: припинення збігу, коли знайдено перший збіг. - Кінцевий діапазон: припинення збігу, коли знайдено перший збіг. - ``` + ``` + Початковий діапазон: припинення збігу, коли знайдено перший збіг. + Кінцевий діапазон: припинення збігу, коли знайдено перший збіг. + ``` ## Вбудована змінна {#VARIABLES} @@ -499,311 +499,311 @@ ID Name 1. FS та OFS - ```bash - Shell > cat /etc/passwd | awk 'BEGIN{FS=":"}{print $1}' - root - bin - daemon - adm - lp - sync - ``` - - Ви також можете використовувати опцію -v, щоб призначити значення змінним. - - ```bash - Shell > cat /etc/passwd | awk -v FS=":" '{print $1}' - root - bin - daemon - adm - lp - sync - ``` - - Роздільником виводу за замовчуванням є пробіл у разі використання ком для посилань на кілька полів. Однак ви можете вказати роздільник виведення окремо. - - ```bash - Shell > cat /etc/passwd | awk 'BEGIN{FS=":"}{print $1,$2}' - root x - bin x - daemon x - adm x - lp x - ``` - - ```bash - Shell > cat /etc/passwd | awk 'BEGIN{FS=":";OFS="\t"}{print $1,$2}' - # or - Shell > cat /etc/passwd | awk -v FS=":" -v OFS="\t" '{print $1,$2}' - root x - bin x - daemon x - adm x - lp x - ``` + ```bash + Shell > cat /etc/passwd | awk 'BEGIN{FS=":"}{print $1}' + root + bin + daemon + adm + lp + sync + ``` + + Ви також можете використовувати опцію -v, щоб призначити значення змінним. -2. RS та ORS + ```bash + Shell > cat /etc/passwd | awk -v FS=":" '{print $1}' + root + bin + daemon + adm + lp + sync + ``` - За замовчуванням `awk` використовує символи нового рядка, щоб розрізняти кожен запис рядка + Роздільником виводу за замовчуванням є пробіл у разі використання ком для посилань на кілька полів. Однак ви можете вказати роздільник виведення окремо. - ```bash - Shell > echo -e "https://example.com/books/index.html\ntitle//tcp" - https://example.com/books/index.html - title//tcp + ```bash + Shell > cat /etc/passwd | awk 'BEGIN{FS=":"}{print $1,$2}' + root x + bin x + daemon x + adm x + lp x + ``` - Shell > echo -e "https://example.com/books/index.html\ntitle//tcp" | awk 'BEGIN{RS="\/\/";ORS="%%"}{print $0}' - awk: cmd. line:1: warning: escape sequence `\/' treated as plain `/' - https:%%example.com/books/index.html - title%%tcp - %% ← Why? Because "print" - ``` + ```bash + Shell > cat /etc/passwd | awk 'BEGIN{FS=":";OFS="\t"}{print $1,$2}' + # or + Shell > cat /etc/passwd | awk -v FS=":" -v OFS="\t" '{print $1,$2}' + root x + bin x + daemon x + adm x + lp x + ``` + +2. RS та ORS + + За замовчуванням `awk` використовує символи нового рядка, щоб розрізняти кожен запис рядка + + ```bash + Shell > echo -e "https://example.com/books/index.html\ntitle//tcp" + https://example.com/books/index.html + title//tcp + + Shell > echo -e "https://example.com/books/index.html\ntitle//tcp" | awk 'BEGIN{RS="\/\/";ORS="%%"}{print $0}' + awk: cmd. line:1: warning: escape sequence `\/' treated as plain `/' + https:%%example.com/books/index.html + title%%tcp + %% ← Why? Because "print" + ``` 3. NF - Підрахувати кількість полів на рядок поточного тексту - - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {print NF}' - 7 - 7 - 7 - 7 - 7 - ``` - - Виведіть п'яте поле - - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {print $(NF-2)}' - root - bin - daemon - adm - lp - ``` - - Роздрукуйте останнє поле - - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {print $NF}' - /bin/bash - /sbin/nologin - /sbin/nologin - /sbin/nologin - /sbin/nologin - ``` - - Виключіть останні два поля - - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {$NF=" ";$(NF-1)=" ";print $0}' - root x 0 0 root - bin x 1 1 bin - daemon x 2 2 daemon - adm x 3 4 adm - lp x 4 7 lp - ``` - - Виключити перше поле - - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {$1=" ";print $0}' | sed -r 's/(^ )//g' - x 0 0 root /root /bin/bash - x 1 1 bin /bin /sbin/nologin - x 2 2 daemon /sbin /sbin/nologin - x 3 4 adm /var/adm /sbin/nologin - x 4 7 lp /var/spool/lpd /sbin/nologin - ``` + Підрахувати кількість полів на рядок поточного тексту + + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {print NF}' + 7 + 7 + 7 + 7 + 7 + ``` + + Виведіть п'яте поле + + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {print $(NF-2)}' + root + bin + daemon + adm + lp + ``` + + Роздрукуйте останнє поле + + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {print $NF}' + /bin/bash + /sbin/nologin + /sbin/nologin + /sbin/nologin + /sbin/nologin + ``` + + Виключіть останні два поля + + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {$NF=" ";$(NF-1)=" ";print $0}' + root x 0 0 root + bin x 1 1 bin + daemon x 2 2 daemon + adm x 3 4 adm + lp x 4 7 lp + ``` + + Виключити перше поле + + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {$1=" ";print $0}' | sed -r 's/(^ )//g' + x 0 0 root /root /bin/bash + x 1 1 bin /bin /sbin/nologin + x 2 2 daemon /sbin /sbin/nologin + x 3 4 adm /var/adm /sbin/nologin + x 4 7 lp /var/spool/lpd /sbin/nologin + ``` 4. NR та FNR - ```bash - Shell > tail -n 5 /etc/services | awk '{print NR,$0}' - 1 axio-disc 35100/udp # Axiomatic discovery protocol - 2 pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - 3 cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - 4 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - 5 spremotetablet 46998/tcp # Capture handwritten signatures - ``` - - Вивести загальну кількість рядків у вмісті файлу - - ```bash - Shell > cat /etc/services | awk 'END{print NR}' - 11473 - ``` - - Вивести вміст рядка 200 - - ```bash - Shell > cat /etc/services | awk 'NR==200' - microsoft-ds 445/tcp - ``` - - Виведіть друге поле в рядку 200 - - ```bash - Shell > cat /etc/services | awk 'BEGIN{RS="\n";ORS="\n"} NR==200 {print $2}' - 445/tcp - ``` - - Друк вмісту в певному діапазоні - - ```bash - Shell > cat /etc/services | awk 'BEGIN{RS="\n";ORS="\n"} NR<=10 {print NR,$0}' - 1 # /etc/services: - 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ - 3 # - 4 # Network services, Internet style - 5 # IANA services version: last updated 2016-07-08 - 6 # - 7 # Note that it is presently the policy of IANA to assign a single well-known - 8 # port number for both TCP and UDP; hence, most entries here have two entries - 9 # even if the protocol doesn't support UDP operations. - 10 # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports - ``` - - Порівняння між NR і FNR - - ```bash - Shell > head -n 3 /etc/services > /tmp/a.txt - - Shell > cat /tmp/a.txt - # /etc/services: - # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ - # - - Shell > cat /etc/resolv.conf - # Generated by NetworkManager - nameserver 8.8.8.8 - nameserver 114.114.114.114 - - Shell > awk '{print NR,$0}' /tmp/a.txt /etc/resolv.conf - 1 # /etc/services: - 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ - 3 # - 4 # Generated by NetworkManager - 5 nameserver 8.8.8.8 - 6 nameserver 114.114.114.114 - - Shell > awk '{print FNR,$0}' /tmp/a.txt /etc/resolv.conf - 1 # /etc/services: - 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ - 3 # - 1 # Generated by NetworkManager - 2 nameserver 8.8.8.8 - 3 nameserver 114.114.114.114 - ``` + ```bash + Shell > tail -n 5 /etc/services | awk '{print NR,$0}' + 1 axio-disc 35100/udp # Axiomatic discovery protocol + 2 pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + 3 cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + 4 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + 5 spremotetablet 46998/tcp # Capture handwritten signatures + ``` + + Вивести загальну кількість рядків у вмісті файлу + + ```bash + Shell > cat /etc/services | awk 'END{print NR}' + 11473 + ``` + + Вивести вміст рядка 200 + + ```bash + Shell > cat /etc/services | awk 'NR==200' + microsoft-ds 445/tcp + ``` + + Виведіть друге поле в рядку 200 + + ```bash + Shell > cat /etc/services | awk 'BEGIN{RS="\n";ORS="\n"} NR==200 {print $2}' + 445/tcp + ``` + + Друк вмісту в певному діапазоні + + ```bash + Shell > cat /etc/services | awk 'BEGIN{RS="\n";ORS="\n"} NR<=10 {print NR,$0}' + 1 # /etc/services: + 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ + 3 # + 4 # Network services, Internet style + 5 # IANA services version: last updated 2016-07-08 + 6 # + 7 # Note that it is presently the policy of IANA to assign a single well-known + 8 # port number for both TCP and UDP; hence, most entries here have two entries + 9 # even if the protocol doesn't support UDP operations. + 10 # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports + ``` + + Порівняння між NR і FNR + + ```bash + Shell > head -n 3 /etc/services > /tmp/a.txt + + Shell > cat /tmp/a.txt + # /etc/services: + # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ + # + + Shell > cat /etc/resolv.conf + # Generated by NetworkManager + nameserver 8.8.8.8 + nameserver 114.114.114.114 + + Shell > awk '{print NR,$0}' /tmp/a.txt /etc/resolv.conf + 1 # /etc/services: + 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ + 3 # + 4 # Generated by NetworkManager + 5 nameserver 8.8.8.8 + 6 nameserver 114.114.114.114 + + Shell > awk '{print FNR,$0}' /tmp/a.txt /etc/resolv.conf + 1 # /etc/services: + 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ + 3 # + 1 # Generated by NetworkManager + 2 nameserver 8.8.8.8 + 3 nameserver 114.114.114.114 + ``` 5. ARGC та ARGV - ```bash - Shell > awk 'BEGIN{print ARGC}' log dump long - 4 - Shell > awk 'BEGIN{print ARGV[0]}' log dump long - awk - Shell > awk 'BEGIN{print ARGV[1]}' log dump long - log - Shell > awk 'BEGIN{print ARGV[2]}' log dump long - dump - ``` + ```bash + Shell > awk 'BEGIN{print ARGC}' log dump long + 4 + Shell > awk 'BEGIN{print ARGV[0]}' log dump long + awk + Shell > awk 'BEGIN{print ARGV[1]}' log dump long + log + Shell > awk 'BEGIN{print ARGV[2]}' log dump long + dump + ``` 6. ARGIND - Ця змінна в основному використовується для визначення файлу, з яким працює програма `awk`. + Ця змінна в основному використовується для визначення файлу, з яким працює програма `awk`. - ```bash - Shell > awk '{print ARGIND,$0}' /etc/hostname /etc/resolv.conf - 1 Master - 2 # Generated by NetworkManager - 2 nameserver 8.8.8.8 - 2 nameserver 114.114.114.114 - ``` + ```bash + Shell > awk '{print ARGIND,$0}' /etc/hostname /etc/resolv.conf + 1 Master + 2 # Generated by NetworkManager + 2 nameserver 8.8.8.8 + 2 nameserver 114.114.114.114 + ``` 7. ENVIRON - Ви можете посилатися на операційні системи або визначені користувачем змінні в програмах `awk`. - - ```bash - Shell > echo ${SSH_CLIENT} - 192.168.100.2 6969 22 + Ви можете посилатися на операційні системи або визначені користувачем змінні в програмах `awk`. - Shell > awk 'BEGIN{print ENVIRON["SSH_CLIENT"]}' - 192.168.100.2 6969 22 - - Shell > export a=123 - Shell > env | grep -w a - a=123 - Shell > awk 'BEGIN{print ENVIRON["a"]}' - 123 - Shell > unset a - ``` + ```bash + Shell > echo ${SSH_CLIENT} + 192.168.100.2 6969 22 + + Shell > awk 'BEGIN{print ENVIRON["SSH_CLIENT"]}' + 192.168.100.2 6969 22 + + Shell > export a=123 + Shell > env | grep -w a + a=123 + Shell > awk 'BEGIN{print ENVIRON["a"]}' + 123 + Shell > unset a + ``` 8. FILENAME - ```bash - Shell > awk 'BEGIN{RS="\n";ORS="\n"} NR=FNR {print ARGIND,FILENAME"---"$0}' /etc/hostname /etc/resolv.conf /etc/rocky-release - 1 /etc/hostname---Master - 2 /etc/resolv.conf---# Generated by NetworkManager - 2 /etc/resolv.conf---nameserver 8.8.8.8 - 2 /etc/resolv.conf---nameserver 114.114.114.114 - 3 /etc/rocky-release---Rocky Linux release 8.9 (Green Obsidian) - ``` + ```bash + Shell > awk 'BEGIN{RS="\n";ORS="\n"} NR=FNR {print ARGIND,FILENAME"---"$0}' /etc/hostname /etc/resolv.conf /etc/rocky-release + 1 /etc/hostname---Master + 2 /etc/resolv.conf---# Generated by NetworkManager + 2 /etc/resolv.conf---nameserver 8.8.8.8 + 2 /etc/resolv.conf---nameserver 114.114.114.114 + 3 /etc/rocky-release---Rocky Linux release 8.9 (Green Obsidian) + ``` 9. IGNORECASE - Ця змінна корисна, якщо ви хочете використовувати регулярні вирази в `awk` і ігнорувати регістр. - - ```bash - Shell > awk 'BEGIN{IGNORECASE=1;RS="\n";ORS="\n"} /^(SSH)|^(ftp)/ {print $0}' /etc/services - ftp-data 20/tcp - ftp-data 20/udp - ftp 21/tcp - ftp 21/udp fsp fspd - ssh 22/tcp # The Secure Shell (SSH) Protocol - ssh 22/udp # The Secure Shell (SSH) Protocol - ftp-data 20/sctp # FTP - ftp 21/sctp # FTP - ssh 22/sctp # SSH - ftp-agent 574/tcp # FTP Software Agent System - ftp-agent 574/udp # FTP Software Agent System - sshell 614/tcp # SSLshell - sshell 614/udp # SSLshell - ftps-data 989/tcp # ftp protocol, data, over TLS/SSL - ftps-data 989/udp # ftp protocol, data, over TLS/SSL - ftps 990/tcp # ftp protocol, control, over TLS/SSL - ftps 990/udp # ftp protocol, control, over TLS/SSL - ssh-mgmt 17235/tcp # SSH Tectia Manager - ssh-mgmt 17235/udp # SSH Tectia Manager - ``` - - ```bash - Shell > awk 'BEGIN{IGNORECASE=1;RS="\n";ORS="\n"} /^(SMTP)\s/,/^(TFTP)\s/ {print $0}' /etc/services - smtp 25/tcp mail - smtp 25/udp mail - time 37/tcp timserver - time 37/udp timserver - rlp 39/tcp resource # resource location - rlp 39/udp resource # resource location - nameserver 42/tcp name # IEN 116 - nameserver 42/udp name # IEN 116 - nicname 43/tcp whois - nicname 43/udp whois - tacacs 49/tcp # Login Host Protocol (TACACS) - tacacs 49/udp # Login Host Protocol (TACACS) - re-mail-ck 50/tcp # Remote Mail Checking Protocol - re-mail-ck 50/udp # Remote Mail Checking Protocol - domain 53/tcp # name-domain server - domain 53/udp - whois++ 63/tcp whoispp - whois++ 63/udp whoispp - bootps 67/tcp # BOOTP server - bootps 67/udp - bootpc 68/tcp dhcpc # BOOTP client - bootpc 68/udp dhcpc - tftp 69/tcp - ``` + Ця змінна корисна, якщо ви хочете використовувати регулярні вирази в `awk` і ігнорувати регістр. + + ```bash + Shell > awk 'BEGIN{IGNORECASE=1;RS="\n";ORS="\n"} /^(SSH)|^(ftp)/ {print $0}' /etc/services + ftp-data 20/tcp + ftp-data 20/udp + ftp 21/tcp + ftp 21/udp fsp fspd + ssh 22/tcp # The Secure Shell (SSH) Protocol + ssh 22/udp # The Secure Shell (SSH) Protocol + ftp-data 20/sctp # FTP + ftp 21/sctp # FTP + ssh 22/sctp # SSH + ftp-agent 574/tcp # FTP Software Agent System + ftp-agent 574/udp # FTP Software Agent System + sshell 614/tcp # SSLshell + sshell 614/udp # SSLshell + ftps-data 989/tcp # ftp protocol, data, over TLS/SSL + ftps-data 989/udp # ftp protocol, data, over TLS/SSL + ftps 990/tcp # ftp protocol, control, over TLS/SSL + ftps 990/udp # ftp protocol, control, over TLS/SSL + ssh-mgmt 17235/tcp # SSH Tectia Manager + ssh-mgmt 17235/udp # SSH Tectia Manager + ``` + + ```bash + Shell > awk 'BEGIN{IGNORECASE=1;RS="\n";ORS="\n"} /^(SMTP)\s/,/^(TFTP)\s/ {print $0}' /etc/services + smtp 25/tcp mail + smtp 25/udp mail + time 37/tcp timserver + time 37/udp timserver + rlp 39/tcp resource # resource location + rlp 39/udp resource # resource location + nameserver 42/tcp name # IEN 116 + nameserver 42/udp name # IEN 116 + nicname 43/tcp whois + nicname 43/udp whois + tacacs 49/tcp # Login Host Protocol (TACACS) + tacacs 49/udp # Login Host Protocol (TACACS) + re-mail-ck 50/tcp # Remote Mail Checking Protocol + re-mail-ck 50/udp # Remote Mail Checking Protocol + domain 53/tcp # name-domain server + domain 53/udp + whois++ 63/tcp whoispp + whois++ 63/udp whoispp + bootps 67/tcp # BOOTP server + bootps 67/udp + bootpc 68/tcp dhcpc # BOOTP client + bootpc 68/udp dhcpc + tftp 69/tcp + ``` ## Оператор @@ -847,336 +847,336 @@ False 1. Знак оклику - Вивести непарні рядки: - - ```bash - Shell > seq 1 10 | awk 'i=!i {print $0}' - 1 - 3 - 5 - 7 - 9 - ``` - - !!! питання - - ``` - **Чому?** - **Прочитайте перший рядок**: оскільки «i» не присвоєно значення, тому «i=!i» означає TRUE. - **Прочитайте другий рядок**: у цьому місці "i=!i" вказує на FALSE. - І так далі, останній надрукований рядок є непарним числом. - ``` - - Вивести парні рядки: - - ```bash - Shell > seq 1 10 | awk '!(i=!i)' - # or - Shell > seq 1 10 | awk '!(i=!i) {print $0}' - 2 - 4 - 6 - 8 - 10 - ``` - - !!! note "Примітка" - - ``` - Як бачите, іноді ви можете ігнорувати синтаксис для частини "action", яка за умовчанням еквівалентна "{print $0}". - ``` + Вивести непарні рядки: + + ```bash + Shell > seq 1 10 | awk 'i=!i {print $0}' + 1 + 3 + 5 + 7 + 9 + ``` + + !!! питання + + ``` + **Чому?** + **Прочитайте перший рядок**: оскільки «i» не присвоєно значення, тому «i=!i» означає TRUE. + **Прочитайте другий рядок**: у цьому місці "i=!i" вказує на FALSE. + І так далі, останній надрукований рядок є непарним числом. + ``` + + Вивести парні рядки: + + ```bash + Shell > seq 1 10 | awk '!(i=!i)' + # or + Shell > seq 1 10 | awk '!(i=!i) {print $0}' + 2 + 4 + 6 + 8 + 10 + ``` + + !!! note "Примітка" + + ``` + Як бачите, іноді ви можете ігнорувати синтаксис для частини "action", яка за умовчанням еквівалентна "{print $0}". + ``` 2. Розворот - ```bash - Shell > cat /etc/services | awk '!/(tcp)|(udp)|(^#)|(^$)/ {print $0}' - http 80/sctp # HyperText Transfer Protocol - bgp 179/sctp - https 443/sctp # http protocol over TLS/SSL - h323hostcall 1720/sctp # H.323 Call Control - nfs 2049/sctp nfsd shilp # Network File System - rtmp 1/ddp # Routing Table Maintenance Protocol - nbp 2/ddp # Name Binding Protocol - echo 4/ddp # AppleTalk Echo Protocol - zip 6/ddp # Zone Information Protocol - discard 9/sctp # Discard - discard 9/dccp # Discard SC:DISC - ... - ``` + ```bash + Shell > cat /etc/services | awk '!/(tcp)|(udp)|(^#)|(^$)/ {print $0}' + http 80/sctp # HyperText Transfer Protocol + bgp 179/sctp + https 443/sctp # http protocol over TLS/SSL + h323hostcall 1720/sctp # H.323 Call Control + nfs 2049/sctp nfsd shilp # Network File System + rtmp 1/ddp # Routing Table Maintenance Protocol + nbp 2/ddp # Name Binding Protocol + echo 4/ddp # AppleTalk Echo Protocol + zip 6/ddp # Zone Information Protocol + discard 9/sctp # Discard + discard 9/dccp # Discard SC:DISC + ... + ``` 3. Основні операції в математиці - ```bash - Shell > echo -e "36\n40\n50" | awk '{print $0+1}' - 37 - 41 - - Shell > echo -e "30\t5\t8\n11\t20\t34" - 30 5 8 - 11 20 34 - Shell > echo -e "30\t5\t8\n11\t20\t34" | awk '{print $2*2+1}' - 11 - 41 - ``` - - Його також можна використовувати в "шаблоні": - - ```bash - Shell > cat -n /etc/services | awk '/^[1-9]*/ && $1%2==0 {print $0}' - ... - 24 tcpmux 1/udp # TCP port service multiplexer - 26 rje 5/udp # Remote Job Entry - 28 echo 7/udp - 30 discard 9/udp sink null - 32 systat 11/udp users - 34 daytime 13/udp - 36 qotd 17/udp quote - ... - - Shell > cat -n /etc/services | awk '/^[1-9]*/ && $1%2!=0 {print $0}' - ... - 23 tcpmux 1/tcp # TCP port service multiplexer - 25 rje 5/tcp # Remote Job Entry - 27 echo 7/tcp - 29 discard 9/tcp sink null - 31 systat 11/tcp users - ... - ``` + ```bash + Shell > echo -e "36\n40\n50" | awk '{print $0+1}' + 37 + 41 + + Shell > echo -e "30\t5\t8\n11\t20\t34" + 30 5 8 + 11 20 34 + Shell > echo -e "30\t5\t8\n11\t20\t34" | awk '{print $2*2+1}' + 11 + 41 + ``` + + Його також можна використовувати в "шаблоні": + + ```bash + Shell > cat -n /etc/services | awk '/^[1-9]*/ && $1%2==0 {print $0}' + ... + 24 tcpmux 1/udp # TCP port service multiplexer + 26 rje 5/udp # Remote Job Entry + 28 echo 7/udp + 30 discard 9/udp sink null + 32 systat 11/udp users + 34 daytime 13/udp + 36 qotd 17/udp quote + ... + + Shell > cat -n /etc/services | awk '/^[1-9]*/ && $1%2!=0 {print $0}' + ... + 23 tcpmux 1/tcp # TCP port service multiplexer + 25 rje 5/tcp # Remote Job Entry + 27 echo 7/tcp + 29 discard 9/tcp sink null + 31 systat 11/tcp users + ... + ``` 4. Символ Pipe - Ви можете використовувати команду bash у програмі awk, наприклад: + Ви можете використовувати команду bash у програмі awk, наприклад: - ```bash - Shell > echo -e "6\n3\n9\n8" | awk '{print $0 | "sort"}' - 3 - 6 - 8 - 9 - ``` + ```bash + Shell > echo -e "6\n3\n9\n8" | awk '{print $0 | "sort"}' + 3 + 6 + 8 + 9 + ``` - !!! info "примітка" + !!! info "примітка" - ``` - Будь ласка, зверніть увагу! Ви повинні взяти подвійні лапки, щоб включити команду. - ``` + ``` + Будь ласка, зверніть увагу! Ви повинні взяти подвійні лапки, щоб включити команду. + ``` 5. Регулярний вираз - [Тут](#RE) ми розглядаємо основні приклади регулярних виразів. Ви можете використовувати регулярні вирази для записів рядків. + [Тут](#RE) ми розглядаємо основні приклади регулярних виразів. Ви можете використовувати регулярні вирази для записів рядків. - ```bash - Shell > cat /etc/services | awk '/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ {print $0}' - - # Be equivalent to: + ```bash + Shell > cat /etc/services | awk '/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ {print $0}' - Shell > cat /etc/services | awk '$0~/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ {print $0}' - ``` + # Be equivalent to: - Якщо файл містить великий обсяг тексту, регулярні вирази також можна використовувати для полів, що допоможе підвищити ефективність обробки. Приклад використання такий: + Shell > cat /etc/services | awk '$0~/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ {print $0}' + ``` - ```bash - Shell > cat /etc/services | awk '$0~/^(ssh)/ && $2~/tcp/ {print $0}' - ssh 22/tcp # The Secure Shell (SSH) Protocol - sshell 614/tcp # SSLshell - ssh-mgmt 17235/tcp # SSH Tectia Manager + Якщо файл містить великий обсяг тексту, регулярні вирази також можна використовувати для полів, що допоможе підвищити ефективність обробки. Приклад використання такий: - Shell > cat /etc/services | grep -v -E "(^#)|(^$)" | awk '$2!~/(tcp)|(udp)/ {print $0}' - http 80/sctp # HyperText Transfer Protocol - bgp 179/sctp - https 443/sctp # http protocol over TLS/SSL - h323hostcall 1720/sctp # H.323 Call Control - nfs 2049/sctp nfsd shilp # Network File System - rtmp 1/ddp # Routing Table Maintenance Protocol - nbp 2/ddp # Name Binding Protocol - ... - ``` + ```bash + Shell > cat /etc/services | awk '$0~/^(ssh)/ && $2~/tcp/ {print $0}' + ssh 22/tcp # The Secure Shell (SSH) Protocol + sshell 614/tcp # SSLshell + ssh-mgmt 17235/tcp # SSH Tectia Manager + + Shell > cat /etc/services | grep -v -E "(^#)|(^$)" | awk '$2!~/(tcp)|(udp)/ {print $0}' + http 80/sctp # HyperText Transfer Protocol + bgp 179/sctp + https 443/sctp # http protocol over TLS/SSL + h323hostcall 1720/sctp # H.323 Call Control + nfs 2049/sctp nfsd shilp # Network File System + rtmp 1/ddp # Routing Table Maintenance Protocol + nbp 2/ddp # Name Binding Protocol + ... + ``` ## Управління потоком 1. оператор **if** - Основний формат синтаксису - `if (condition) statement [ else statement ]` - - Приклад використання однієї гілки оператора if: - - ```bash - Shell > cat /etc/services | awk '{if(NR==110) print $0}' - pop3 110/udp pop-3 - ``` - - Умова визначається як регулярний вираз: - - ```bash - Shell > cat /etc/services | awk '{if(/^(ftp)\s|^(ssh)\s/) print $0}' - ftp 21/tcp - ftp 21/udp fsp fspd - ssh 22/tcp # The Secure Shell (SSH) Protocol - ssh 22/udp # The Secure Shell (SSH) Protocol - ftp 21/sctp # FTP - ssh 22/sctp # SSH - ``` - - Подвійна гілка: - - ```bash - Shell > seq 1 10 | awk '{if($0==10) print $0 ; else print "False"}' - False - False - False - False - False - False - False - False - False - 10 - ``` - - Кілька гілок: - - ```bash - Shell > cat /etc/services | awk '{ \ - if($1~/netbios/) - {print $0} - else if($2~/175/) - {print "175"} - else if($2~/137/) - {print "137"} - else {print "no"} - }' - ``` + Основний формат синтаксису - `if (condition) statement [ else statement ]` + + Приклад використання однієї гілки оператора if: + + ```bash + Shell > cat /etc/services | awk '{if(NR==110) print $0}' + pop3 110/udp pop-3 + ``` + + Умова визначається як регулярний вираз: + + ```bash + Shell > cat /etc/services | awk '{if(/^(ftp)\s|^(ssh)\s/) print $0}' + ftp 21/tcp + ftp 21/udp fsp fspd + ssh 22/tcp # The Secure Shell (SSH) Protocol + ssh 22/udp # The Secure Shell (SSH) Protocol + ftp 21/sctp # FTP + ssh 22/sctp # SSH + ``` + + Подвійна гілка: + + ```bash + Shell > seq 1 10 | awk '{if($0==10) print $0 ; else print "False"}' + False + False + False + False + False + False + False + False + False + 10 + ``` + + Кілька гілок: + + ```bash + Shell > cat /etc/services | awk '{ \ + if($1~/netbios/) + {print $0} + else if($2~/175/) + {print "175"} + else if($2~/137/) + {print "137"} + else {print "no"} + }' + ``` 2. оператор **while** - Основний формат синтаксису - `while (condition) statement` - - Перегляньте та роздрукуйте поля всіх записів рядків. - - ```bash - Shell > tail -n 2 /etc/services - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > tail -n 2 /etc/services | awk '{ \ - i=1; - while(i<=NF){print $i;i++} - }' - - cloudcheck - 45514/tcp - # - ASSIA - CloudCheck - WiFi - Management - System - spremotetablet - 46998/tcp - # - Capture - handwritten - signatures - ``` + Основний формат синтаксису - `while (condition) statement` + + Перегляньте та роздрукуйте поля всіх записів рядків. + + ```bash + Shell > tail -n 2 /etc/services + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > tail -n 2 /etc/services | awk '{ \ + i=1; + while(i<=NF){print $i;i++} + }' + + cloudcheck + 45514/tcp + # + ASSIA + CloudCheck + WiFi + Management + System + spremotetablet + 46998/tcp + # + Capture + handwritten + signatures + ``` 3. оператор **for** - Основний формат синтаксису - `for (expr1; expr2; expr3) statement` - - Перегляньте та роздрукуйте поля всіх записів рядків. - - ```bash - Shell > tail -n 2 /etc/services | awk '{ \ - for(i=1;i<=NF;i++) print $i - }' - ``` - - Виведіть поля для кожного рядка записів у зворотному порядку. - - ```bash - Shell > tail -n 2 /etc/services | awk '{ \ - for(i=NF;i>=1;i--) print $i - }' - - System - Management - WiFi - CloudCheck - ASSIA - # - 45514/tcp - cloudcheck - signatures - handwritten - Capture - # - 46998/tcp - spremotetablet - ``` - - Друкуйте кожен рядок записів у зворотному напрямку. - - ```bash - Shell > tail -n 2 /etc/services | awk '{ \ - for(i=NF;i>=1;i--) {printf $i" "}; - print "" - }' - - System Management WiFi CloudCheck ASSIA # 45514/tcp cloudcheck - signatures handwritten Capture # 46998/tcp spremotetablet - ``` + Основний формат синтаксису - `for (expr1; expr2; expr3) statement` + + Перегляньте та роздрукуйте поля всіх записів рядків. + + ```bash + Shell > tail -n 2 /etc/services | awk '{ \ + for(i=1;i<=NF;i++) print $i + }' + ``` + + Виведіть поля для кожного рядка записів у зворотному порядку. + + ```bash + Shell > tail -n 2 /etc/services | awk '{ \ + for(i=NF;i>=1;i--) print $i + }' + + System + Management + WiFi + CloudCheck + ASSIA + # + 45514/tcp + cloudcheck + signatures + handwritten + Capture + # + 46998/tcp + spremotetablet + ``` + + Друкуйте кожен рядок записів у зворотному напрямку. + + ```bash + Shell > tail -n 2 /etc/services | awk '{ \ + for(i=NF;i>=1;i--) {printf $i" "}; + print "" + }' + + System Management WiFi CloudCheck ASSIA # 45514/tcp cloudcheck + signatures handwritten Capture # 46998/tcp spremotetablet + ``` 4. оператор **break** і оператор **continue** - Порівняння між ними виглядає наступним чином: - - ```bash - Shell > awk 'BEGIN{ \ - for(i=1;i<=10;i++) - { - if(i==3) {break}; - print i - } - }' - - 1 - 2 - ``` - - ```bash - Shell > awk 'BEGIN{ \ - for(i=1;i<=10;i++) - { - if(i==3) {continue}; - print i - } - }' - - 1 - 2 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - ``` + Порівняння між ними виглядає наступним чином: + + ```bash + Shell > awk 'BEGIN{ \ + for(i=1;i<=10;i++) + { + if(i==3) {break}; + print i + } + }' + + 1 + 2 + ``` + + ```bash + Shell > awk 'BEGIN{ \ + for(i=1;i<=10;i++) + { + if(i==3) {continue}; + print i + } + }' + + 1 + 2 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + ``` 5. оператор **exit** - Ви можете вказати значення, що повертається, у діапазоні [0,255] + Ви можете вказати значення, що повертається, у діапазоні [0,255] - Основний формат синтаксису - `exit [expression]` + Основний формат синтаксису - `exit [expression]` - ```bash - Shell > seq 1 10 | awk '{ - if($0~/5/) exit "135" - }' + ```bash + Shell > seq 1 10 | awk '{ + if($0~/5/) exit "135" + }' - Shell > echo $? - 135 - ``` + Shell > echo $? + 135 + ``` ## Масив @@ -1190,277 +1190,277 @@ False 1. Спеціальний масив - Формат - `Array_Name[Index]=Value` + Формат - `Array_Name[Index]=Value` - ```bash - Shell > awk 'BEGIN{a1[0]="test0" ; a1[1]="s1"; print a1[0]}' - test0 - ``` + ```bash + Shell > awk 'BEGIN{a1[0]="test0" ; a1[1]="s1"; print a1[0]}' + test0 + ``` - Отримати довжину масиву: + Отримати довжину масиву: - ```bash - Shell > awk 'BEGIN{name[-1]="jimcat8" ; name[3]="jack" ; print length(name)}' - 2 - ``` + ```bash + Shell > awk 'BEGIN{name[-1]="jimcat8" ; name[3]="jack" ; print length(name)}' + 2 + ``` - Зберігти всіх користувачів GNU/Linux у масиві: + Зберігти всіх користувачів GNU/Linux у масиві: - ```bash - Shell > cat /etc/passwd | awk -F ":" '{username[NR]=$1}END{print username[2]}' - bin - Shell > cat /etc/passwd | awk -F ":" '{username[NR]=$1}END{print username[1]}' - root - ``` + ```bash + Shell > cat /etc/passwd | awk -F ":" '{username[NR]=$1}END{print username[2]}' + bin + Shell > cat /etc/passwd | awk -F ":" '{username[NR]=$1}END{print username[1]}' + root + ``` - !!! info "примітка" + !!! info "примітка" - ```` - Числовий нижній індекс масиву `awk` може бути додатним цілим, від’ємним цілим числом, рядком або 0, тому числовий індекс масиву `awk` не має поняття початкового значення. Це не те саме, що масиви в bash. + ```` + Числовий нижній індекс масиву `awk` може бути додатним цілим, від’ємним цілим числом, рядком або 0, тому числовий індекс масиву `awk` не має поняття початкового значення. Це не те саме, що масиви в bash. - ```bash - Shell > arr1=(2 10 30 string1) - Shell > echo "${arr1[0]}" - 2 - Shell > unset arr1 - ``` - ```` + ```bash + Shell > arr1=(2 10 30 string1) + Shell > echo "${arr1[0]}" + 2 + Shell > unset arr1 + ``` + ```` 2. Видалити масив - Формат - `delete Array_Name` + Формат - `delete Array_Name` 3. Видалення елемента з масиву - Формат - `delete Array_Name[Index]` + Формат - `delete Array_Name[Index]` 4. Обхідний масив - Ви можете використовувати оператор **for**, який підходить для випадків, коли індекс масиву невідомий: - - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" ' \ - { - username[NR]=$1 - } - END { - for(i in username) - print username[i],i - } - ' - - root 1 - bin 2 - daemon 3 - adm 4 - lp 5 - ``` - - Якщо нижній індекс масиву звичайний, ви можете використовувати цю форму оператора **for**: - - ```bash - Shell > cat /etc/passwd | awk -F ":" ' \ - { - username[NR]=$1 - } - END{ - for(i=1;i<=NR;i++) - print username[i],i - } - ' - - root 1 - bin 2 - daemon 3 - adm 4 - lp 5 - sync 6 - shutdown 7 - halt 8 - ... - ``` + Ви можете використовувати оператор **for**, який підходить для випадків, коли індекс масиву невідомий: + + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" ' \ + { + username[NR]=$1 + } + END { + for(i in username) + print username[i],i + } + ' + + root 1 + bin 2 + daemon 3 + adm 4 + lp 5 + ``` + + Якщо нижній індекс масиву звичайний, ви можете використовувати цю форму оператора **for**: + + ```bash + Shell > cat /etc/passwd | awk -F ":" ' \ + { + username[NR]=$1 + } + END{ + for(i=1;i<=NR;i++) + print username[i],i + } + ' + + root 1 + bin 2 + daemon 3 + adm 4 + lp 5 + sync 6 + shutdown 7 + halt 8 + ... + ``` 5. Використовуйте "++" як нижній індекс масиву - ```bash - Shell > tail -n 5 /etc/group | awk -F ":" '\ - { - a[x++]=$1 - } - END{ - for(i in a) - print a[i],i - } - ' - - slocate 0 - unbound 1 - docker 2 - cgred 3 - redis 4 - ``` + ```bash + Shell > tail -n 5 /etc/group | awk -F ":" '\ + { + a[x++]=$1 + } + END{ + for(i in a) + print a[i],i + } + ' + + slocate 0 + unbound 1 + docker 2 + cgred 3 + redis 4 + ``` 6. Використовуйте поле як нижній індекс масиву - ```bash - Shell > tail -n 5 /etc/group | awk -F ":" '\ - { - a[$1]=$3 - } - END{ - for(i in a) - print a[i],i - } - ' - - 991 docker - 21 slocate - 989 redis - 992 unbound - 990 cgred - ``` + ```bash + Shell > tail -n 5 /etc/group | awk -F ":" '\ + { + a[$1]=$3 + } + END{ + for(i in a) + print a[i],i + } + ' + + 991 docker + 21 slocate + 989 redis + 992 unbound + 990 cgred + ``` 7. Підрахуйте кількість входжень одного поля - Підрахуйте кількість випадків однакової адреси IPv4. Основна ідея: - - - Спочатку скористайтеся командою `grep`, щоб відфільтрувати всі адреси IPv4 - - Потім передайте його програмі `awk` для обробки + Підрахуйте кількість випадків однакової адреси IPv4. Основна ідея: - ```bash - Shell > cat /var/log/secure | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | awk ' \ - { - a[$1]++ - } - END{ - for(v in a) print a[v],v - } - ' + - Спочатку скористайтеся командою `grep`, щоб відфільтрувати всі адреси IPv4 + - Потім передайте його програмі `awk` для обробки - 4 0.0.0.0 - 4 192.168.100.2 - ``` + ```bash + Shell > cat /var/log/secure | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | awk ' \ + { + a[$1]++ + } + END{ + for(v in a) print a[v],v + } + ' + + 4 0.0.0.0 + 4 192.168.100.2 + ``` - !!! info "примітка" + !!! info "примітка" - ``` - `a[$1]++` еквівалентно до `a[$1]+=1` - ``` + ``` + `a[$1]++` еквівалентно до `a[$1]+=1` + ``` - Підрахуйте кількість входжень слів незалежно від регістру. Основна ідея: + Підрахуйте кількість входжень слів незалежно від регістру. Основна ідея: - - Розділити всі поля на кілька рядків записів - - Потім передайте його програмі `awk` для обробки + - Розділити всі поля на кілька рядків записів + - Потім передайте його програмі `awk` для обробки - ```bash - Shell > cat /etc/services | awk -F " " '{for(i=1;i<=NF;i++) print $i}' + ```bash + Shell > cat /etc/services | awk -F " " '{for(i=1;i<=NF;i++) print $i}' - Shell > cat /etc/services | awk -F " " '{for(i=1;i<=NF;i++) print $i}' | awk '\ - BEGIN{IGNORECASE=1;OFS="\t"} /^netbios$/ || /^ftp$/ {a[$1]++} END{for(v in a) print a[v],v} - ' + Shell > cat /etc/services | awk -F " " '{for(i=1;i<=NF;i++) print $i}' | awk '\ + BEGIN{IGNORECASE=1;OFS="\t"} /^netbios$/ || /^ftp$/ {a[$1]++} END{for(v in a) print a[v],v} + ' - 3 NETBIOS - 18 FTP - 7 ftp + 3 NETBIOS + 18 FTP + 7 ftp - Shell > cat /etc/services | awk -F " " '{ for(i=1;i<=NF;i++) print $i }' | awk '\ - BEGIN{IGNORECASE=1;OFS="\t"} /^netbios$/ || /^ftp$/ {a[$1]++} END{for(v in a) \ - if(a[v]>=5) print a[v],v} - ' + Shell > cat /etc/services | awk -F " " '{ for(i=1;i<=NF;i++) print $i }' | awk '\ + BEGIN{IGNORECASE=1;OFS="\t"} /^netbios$/ || /^ftp$/ {a[$1]++} END{for(v in a) \ + if(a[v]>=5) print a[v],v} + ' - 18 FTP - 7 ftp - ``` + 18 FTP + 7 ftp + ``` - Ви можете спочатку відфільтрувати певні записи рядків, а потім виконати статистику, наприклад: + Ви можете спочатку відфільтрувати певні записи рядків, а потім виконати статистику, наприклад: - ```bash - Shell > ss -tulnp | awk -F " " '/tcp/ {a[$2]++} END{for(i in a) print a[i],i}' - 2 LISTEN - ``` + ```bash + Shell > ss -tulnp | awk -F " " '/tcp/ {a[$2]++} END{for(i in a) print a[i],i}' + 2 LISTEN + ``` 8. Вивести рядки на основі кількості входжень певного поля - ```bash - Shell > tail /etc/services - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > tail /etc/services | awk 'a[$1]++ {print $0}' - axio-disc 35100/udp # Axiomatic discovery protocol - ``` - - Зворотний: - - ```bash - Shell > tail /etc/services | awk '!a[$1]++ {print $0}' - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` + ```bash + Shell > tail /etc/services + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > tail /etc/services | awk 'a[$1]++ {print $0}' + axio-disc 35100/udp # Axiomatic discovery protocol + ``` + + Зворотний: + + ```bash + Shell > tail /etc/services | awk '!a[$1]++ {print $0}' + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` 9. Багатовимірний масив - Програма `awk` не підтримує багатовимірні масиви, але підтримку багатовимірних масивів можна досягти за допомогою моделювання. За замовчуванням "\034" є роздільником для нижнього індексу багатовимірного масиву. - - Зверніть увагу на наступні відмінності під час використання багатовимірних масивів: - - ```bash - Shell > awk 'BEGIN{ a["1,0"]=100 ; a[2,0]=200 ; a["3","0"]=300 ; for(i in a) print a[i],i }' - 200 20 - 300 30 - 100 1,0 - ``` - - Перевизначте роздільник: - - ```bash - Shell > awk 'BEGIN{ SUBSEP="----" ; a["1,0"]=100 ; a[2,0]=200 ; a["3","0"]=300 ; for(i in a) print a[i],i }' - 300 3----0 - 200 2----0 - 100 1,0 - ``` - - Перезамовлення: - - ```bash - Shell > awk 'BEGIN{ SUBSEP="----" ; a["1,0"]=100 ; a[2,0]=200 ; a["3","0"]=300 ; for(i in a) print a[i],i | "sort" }' - 100 1,0 - 200 2----0 - 300 3----0 - ``` - - Підрахуйте, скільки разів з’являється поле: - - ```bash - Shell > cat c.txt - A 192.168.1.1 HTTP - B 192.168.1.2 HTTP - B 192.168.1.2 MYSQL - C 192.168.1.1 MYSQL - C 192.168.1.1 MQ - D 192.168.1.4 NGINX - - Shell > cat c.txt | awk 'BEGIN{SUBSEP="----"} {a[$1,$2]++} END{for(i in a) print a[i],i}' - 1 A----192.168.1.1 - 2 B----192.168.1.2 - 2 C----192.168.1.1 - 1 D----192.168.1.4 - ``` + Програма `awk` не підтримує багатовимірні масиви, але підтримку багатовимірних масивів можна досягти за допомогою моделювання. За замовчуванням "\034" є роздільником для нижнього індексу багатовимірного масиву. + + Зверніть увагу на наступні відмінності під час використання багатовимірних масивів: + + ```bash + Shell > awk 'BEGIN{ a["1,0"]=100 ; a[2,0]=200 ; a["3","0"]=300 ; for(i in a) print a[i],i }' + 200 20 + 300 30 + 100 1,0 + ``` + + Перевизначте роздільник: + + ```bash + Shell > awk 'BEGIN{ SUBSEP="----" ; a["1,0"]=100 ; a[2,0]=200 ; a["3","0"]=300 ; for(i in a) print a[i],i }' + 300 3----0 + 200 2----0 + 100 1,0 + ``` + + Перезамовлення: + + ```bash + Shell > awk 'BEGIN{ SUBSEP="----" ; a["1,0"]=100 ; a[2,0]=200 ; a["3","0"]=300 ; for(i in a) print a[i],i | "sort" }' + 100 1,0 + 200 2----0 + 300 3----0 + ``` + + Підрахуйте, скільки разів з’являється поле: + + ```bash + Shell > cat c.txt + A 192.168.1.1 HTTP + B 192.168.1.2 HTTP + B 192.168.1.2 MYSQL + C 192.168.1.1 MYSQL + C 192.168.1.1 MQ + D 192.168.1.4 NGINX + + Shell > cat c.txt | awk 'BEGIN{SUBSEP="----"} {a[$1,$2]++} END{for(i in a) print a[i],i}' + 1 A----192.168.1.1 + 2 B----192.168.1.2 + 2 C----192.168.1.1 + 1 D----192.168.1.4 + ``` ## Вбудована функція @@ -1487,331 +1487,331 @@ False 1. Функція **int** - ```bash - Shell > echo -e "qwer123\n123\nabc\n123abc123\n100.55\n-155.27" - qwer123 - 123 - abc - 123abc123 - 100.55 - -155.27 - - Shell > echo -e "qwer123\n123\nabc\n123abc123\n100.55\n-155.27" | awk '{print int($1)}' - 0 - 123 - 0 - 123 - 100 - -155 - ``` - - Як бачите, функція int працює лише для чисел, а коли зустрічається рядок, вона перетворює його на 0. Зустрівши рядок, що починається з числа, скоротіть його. + ```bash + Shell > echo -e "qwer123\n123\nabc\n123abc123\n100.55\n-155.27" + qwer123 + 123 + abc + 123abc123 + 100.55 + -155.27 + + Shell > echo -e "qwer123\n123\nabc\n123abc123\n100.55\n-155.27" | awk '{print int($1)}' + 0 + 123 + 0 + 123 + 100 + -155 + ``` + + Як бачите, функція int працює лише для чисел, а коли зустрічається рядок, вона перетворює його на 0. Зустрівши рядок, що починається з числа, скоротіть його. 2. Функція **sqrt** - ```bash - Shell > awk 'BEGIN{print sqrt(9)}' - 3 - ``` + ```bash + Shell > awk 'BEGIN{print sqrt(9)}' + 3 + ``` 3. Функції **rand** та **srand** - Приклад використання функції rand такий: - - ```bash - Shell > awk 'BEGIN{print rand()}' - 0.924046 - Shell > awk 'BEGIN{print rand()}' - 0.924046 - Shell > awk 'BEGIN{print rand()}' - 0.924046 - ``` - - Приклад використання функції srand такий: - - ```bash - Shell > awk 'BEGIN{srand() ; print rand()}' - 0.975495 - Shell > awk 'BEGIN{srand() ; print rand()}' - 0.99187 - Shell > awk 'BEGIN{srand() ; print rand()}' - 0.069002 - ``` - - Згенеруйте ціле число в діапазоні (0,100): - - ```bash - Shell > awk 'BEGIN{srand() ; print int(rand()*100)}' - 56 - Shell > awk 'BEGIN{srand() ; print int(rand()*100)}' - 33 - Shell > awk 'BEGIN{srand() ; print int(rand()*100)}' - 42 - ``` + Приклад використання функції rand такий: + + ```bash + Shell > awk 'BEGIN{print rand()}' + 0.924046 + Shell > awk 'BEGIN{print rand()}' + 0.924046 + Shell > awk 'BEGIN{print rand()}' + 0.924046 + ``` + + Приклад використання функції srand такий: + + ```bash + Shell > awk 'BEGIN{srand() ; print rand()}' + 0.975495 + Shell > awk 'BEGIN{srand() ; print rand()}' + 0.99187 + Shell > awk 'BEGIN{srand() ; print rand()}' + 0.069002 + ``` + + Згенеруйте ціле число в діапазоні (0,100): + + ```bash + Shell > awk 'BEGIN{srand() ; print int(rand()*100)}' + 56 + Shell > awk 'BEGIN{srand() ; print int(rand()*100)}' + 33 + Shell > awk 'BEGIN{srand() ; print int(rand()*100)}' + 42 + ``` 4. Функції **asort** та **asorti** - ```bash - Shell > cat /etc/passwd | awk -F ":" '{a[NR]=$1} END{anu=asort(a,b) ; for(i=1;i<=anu;i++) print i,b[i]}' - 1 adm - 2 bin - 3 chrony - 4 daemon - 5 dbus - 6 ftp - 7 games - 8 halt - 9 lp - 10 mail - 11 nobody - 12 operator - 13 polkitd - 14 redis - 15 root - 16 shutdown - 17 sshd - 18 sssd - 19 sync - 20 systemd-coredump - 21 systemd-resolve - 22 tss - 23 unbound - - Shell > awk 'BEGIN{a[1]=1000 ; a[2]=200 ; a[3]=30 ; a[4]="admin" ; a[5]="Admin" ; \ - a[6]="12string" ; a[7]=-1 ; a[8]=-10 ; a[9]=-20 ; a[10]=-21 ;nu=asort(a,b) ; for(i=1;i<=nu;i++) print i,b[i]}' - 1 -21 - 2 -20 - 3 -10 - 4 -1 - 5 30 - 6 200 - 7 1000 - 8 12string - 9 Admin - 10 admin - ``` - - !!! info "примітка" - - ``` - Правила сортування: - - * Числа мають вищий пріоритет, ніж рядки, і розташовані в порядку зростання. - * Розташуйте рядки в порядку зростання словника - ``` - - Якщо ви використовуєте функцію **asorti**, приклад такий: - - ```bash - Shell > awk 'BEGIN{ a[-11]=1000 ; a[-2]=200 ; a[-10]=30 ; a[-21]="admin" ; a[41]="Admin" ; \ - a[30]="12string" ; a["root"]="rootstr" ; a["Root"]="r1" ; nu=asorti(a,b) ; for(i in b) print i,b[i] }' - 1 -10 - 2 -11 - 3 -2 - 4 -21 - 5 30 - 6 41 - 7 Root - 8 root - ``` - - !!! info "примітка" - - ``` - Правила сортування: - - * Числа мають пріоритет над рядками - * Якщо зустрічається від’ємне число, порівнюється перша цифра зліва. Якщо воно однакове, буде порівнюватися друга цифра і так далі - * Якщо зустрінеться додатне число, воно буде розташовано в порядку зростання - * Розташуйте рядки в порядку зростання словника - ``` + ```bash + Shell > cat /etc/passwd | awk -F ":" '{a[NR]=$1} END{anu=asort(a,b) ; for(i=1;i<=anu;i++) print i,b[i]}' + 1 adm + 2 bin + 3 chrony + 4 daemon + 5 dbus + 6 ftp + 7 games + 8 halt + 9 lp + 10 mail + 11 nobody + 12 operator + 13 polkitd + 14 redis + 15 root + 16 shutdown + 17 sshd + 18 sssd + 19 sync + 20 systemd-coredump + 21 systemd-resolve + 22 tss + 23 unbound + + Shell > awk 'BEGIN{a[1]=1000 ; a[2]=200 ; a[3]=30 ; a[4]="admin" ; a[5]="Admin" ; \ + a[6]="12string" ; a[7]=-1 ; a[8]=-10 ; a[9]=-20 ; a[10]=-21 ;nu=asort(a,b) ; for(i=1;i<=nu;i++) print i,b[i]}' + 1 -21 + 2 -20 + 3 -10 + 4 -1 + 5 30 + 6 200 + 7 1000 + 8 12string + 9 Admin + 10 admin + ``` + + !!! info "примітка" + + ``` + Правила сортування: + + * Числа мають вищий пріоритет, ніж рядки, і розташовані в порядку зростання. + * Розташуйте рядки в порядку зростання словника + ``` + + Якщо ви використовуєте функцію **asorti**, приклад такий: + + ```bash + Shell > awk 'BEGIN{ a[-11]=1000 ; a[-2]=200 ; a[-10]=30 ; a[-21]="admin" ; a[41]="Admin" ; \ + a[30]="12string" ; a["root"]="rootstr" ; a["Root"]="r1" ; nu=asorti(a,b) ; for(i in b) print i,b[i] }' + 1 -10 + 2 -11 + 3 -2 + 4 -21 + 5 30 + 6 41 + 7 Root + 8 root + ``` + + !!! info "примітка" + + ``` + Правила сортування: + + * Числа мають пріоритет над рядками + * Якщо зустрічається від’ємне число, порівнюється перша цифра зліва. Якщо воно однакове, буде порівнюватися друга цифра і так далі + * Якщо зустрінеться додатне число, воно буде розташовано в порядку зростання + * Розташуйте рядки в порядку зростання словника + ``` 5. Функції **sub** та **gsub** - ```bash - Shell > cat /etc/services | awk '/netbios/ {sub(/tcp/,"test") ; print $0 }' - netbios-ns 137/test # NETBIOS Name Service - netbios-ns 137/udp - netbios-dgm 138/test # NETBIOS Datagram Service - netbios-dgm 138/udp - netbios-ssn 139/test # NETBIOS session service - netbios-ssn 139/udp - - Shell > cat /etc/services | awk '/^ftp/ && /21\/tcp/ {print $0}' - ftp 21/tcp - ↑ ↑ - Shell > cat /etc/services | awk 'BEGIN{OFS="\t"} /^ftp/ && /21\/tcp/ {gsub(/p/,"P",$2) ; print $0}' - ftp 21/tcP - ↑ - Shell > cat /etc/services | awk 'BEGIN{OFS="\t"} /^ftp/ && /21\/tcp/ {gsub(/p/,"P") ; print $0}' - ftP 21/tcP - ↑ ↑ - ``` - - Подібно до команди `sed`, ви також можете використовувати символ "&" для посилання на вже збігені рядки. - - ```bash - Shell > vim /tmp/tmp-file1.txt - A 192.168.1.1 HTTP - B 192.168.1.2 HTTP - B 192.168.1.2 MYSQL - C 192.168.1.1 MYSQL - C 192.168.1.1 MQ - D 192.168.1.4 NGINX - - # Add a line of text before the second line - Shell > cat /tmp/tmp-file1.txt | awk 'NR==2 {gsub(/.*/,"add a line\n&")} {print $0}' - A 192.168.1.1 HTTP - add a line - B 192.168.1.2 HTTP - B 192.168.1.2 MYSQL - C 192.168.1.1 MYSQL - C 192.168.1.1 MQ - D 192.168.1.4 NGINX - - # Add a string after the IP address in the second line - Shell > cat /tmp/tmp-file1.txt | awk 'NR==2 {gsub(/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/,"&\tSTRING")} {print $0}' - A 192.168.1.1 HTTP - B 192.168.1.2 STRING HTTP - B 192.168.1.2 MYSQL - C 192.168.1.1 MYSQL - C 192.168.1.1 MQ - D 192.168.1.4 NGINX - ``` + ```bash + Shell > cat /etc/services | awk '/netbios/ {sub(/tcp/,"test") ; print $0 }' + netbios-ns 137/test # NETBIOS Name Service + netbios-ns 137/udp + netbios-dgm 138/test # NETBIOS Datagram Service + netbios-dgm 138/udp + netbios-ssn 139/test # NETBIOS session service + netbios-ssn 139/udp + + Shell > cat /etc/services | awk '/^ftp/ && /21\/tcp/ {print $0}' + ftp 21/tcp + ↑ ↑ + Shell > cat /etc/services | awk 'BEGIN{OFS="\t"} /^ftp/ && /21\/tcp/ {gsub(/p/,"P",$2) ; print $0}' + ftp 21/tcP + ↑ + Shell > cat /etc/services | awk 'BEGIN{OFS="\t"} /^ftp/ && /21\/tcp/ {gsub(/p/,"P") ; print $0}' + ftP 21/tcP + ↑ ↑ + ``` + + Подібно до команди `sed`, ви також можете використовувати символ "&" для посилання на вже збігені рядки. + + ```bash + Shell > vim /tmp/tmp-file1.txt + A 192.168.1.1 HTTP + B 192.168.1.2 HTTP + B 192.168.1.2 MYSQL + C 192.168.1.1 MYSQL + C 192.168.1.1 MQ + D 192.168.1.4 NGINX + + # Add a line of text before the second line + Shell > cat /tmp/tmp-file1.txt | awk 'NR==2 {gsub(/.*/,"add a line\n&")} {print $0}' + A 192.168.1.1 HTTP + add a line + B 192.168.1.2 HTTP + B 192.168.1.2 MYSQL + C 192.168.1.1 MYSQL + C 192.168.1.1 MQ + D 192.168.1.4 NGINX + + # Add a string after the IP address in the second line + Shell > cat /tmp/tmp-file1.txt | awk 'NR==2 {gsub(/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/,"&\tSTRING")} {print $0}' + A 192.168.1.1 HTTP + B 192.168.1.2 STRING HTTP + B 192.168.1.2 MYSQL + C 192.168.1.1 MYSQL + C 192.168.1.1 MQ + D 192.168.1.4 NGINX + ``` 6. Функція **index** - ```bash - Shell > tail -n 5 /etc/services - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > tail -n 5 /etc/services | awk '{print index($2,"tcp")}' - 0 - 7 - 0 - 7 - 7 - ``` + ```bash + Shell > tail -n 5 /etc/services + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > tail -n 5 /etc/services | awk '{print index($2,"tcp")}' + 0 + 7 + 0 + 7 + 7 + ``` 7. Функція **length** - ```bash - # The length of the output field - Shell > tail -n 5 /etc/services | awk '{print length($1)}' - 9 - 8 - 15 - 10 - 14 - - # The length of the output array - Shell > cat /etc/passwd | awk -F ":" 'a[NR]=$1 END{print length(a)}' - 22 - ``` + ```bash + # The length of the output field + Shell > tail -n 5 /etc/services | awk '{print length($1)}' + 9 + 8 + 15 + 10 + 14 + + # The length of the output array + Shell > cat /etc/passwd | awk -F ":" 'a[NR]=$1 END{print length(a)}' + 22 + ``` 8. Функція **match** - ```bash - Shell > echo -e "1592abc144qszd\n144bc\nbn" - 1592abc144qszd - 144bc - bn - - Shell > echo -e "1592abc144qszd\n144bc\nbn" | awk '{print match($1,144)}' - 8 - 1 - 0 - ``` + ```bash + Shell > echo -e "1592abc144qszd\n144bc\nbn" + 1592abc144qszd + 144bc + bn + + Shell > echo -e "1592abc144qszd\n144bc\nbn" | awk '{print match($1,144)}' + 8 + 1 + 0 + ``` 9. Функція **split** - ```bash - Shell > echo "365%tmp%dir%number" | awk '{split($1,a1,"%") ; for(i in a1) print i,a1[i]}' - 1 365 - 2 tmp - 3 dir - 4 number - ``` + ```bash + Shell > echo "365%tmp%dir%number" | awk '{split($1,a1,"%") ; for(i in a1) print i,a1[i]}' + 1 365 + 2 tmp + 3 dir + 4 number + ``` 10. Функція **substr** - ```bash - Shell > head -n 5 /etc/passwd - root:x:0:0:root:/root:/bin/bash - bin:x:1:1:bin:/bin:/sbin/nologin - daemon:x:2:2:daemon:/sbin:/sbin/nologin - adm:x:3:4:adm:/var/adm:/sbin/nologin - lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin - - # I need this part of the content - "emon:/sbin:/sbin/nologin" - Shell > head -n 5 /etc/passwd | awk '/daemon/ {print substr($0,16)}' - emon:/sbin:/sbin/nologin - - Shell > tail -n 5 /etc/services - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - # I need this part of the content - "tablet" - Shell > tail -n 5 /etc/services | awk '/^sp/ {print substr($1,9)}' - tablet - ``` + ```bash + Shell > head -n 5 /etc/passwd + root:x:0:0:root:/root:/bin/bash + bin:x:1:1:bin:/bin:/sbin/nologin + daemon:x:2:2:daemon:/sbin:/sbin/nologin + adm:x:3:4:adm:/var/adm:/sbin/nologin + lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin + + # I need this part of the content - "emon:/sbin:/sbin/nologin" + Shell > head -n 5 /etc/passwd | awk '/daemon/ {print substr($0,16)}' + emon:/sbin:/sbin/nologin + + Shell > tail -n 5 /etc/services + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + # I need this part of the content - "tablet" + Shell > tail -n 5 /etc/services | awk '/^sp/ {print substr($1,9)}' + tablet + ``` 11. Функції **tolower** та **toupper** - ```bash - Shell > echo -e "AbcD123\nqweR" | awk '{print tolower($0)}' - abcd123 - qwer + ```bash + Shell > echo -e "AbcD123\nqweR" | awk '{print tolower($0)}' + abcd123 + qwer - Shell > tail -n 5 /etc/services | awk '{print toupper($0)}' - AXIO-DISC 35100/UDP # AXIOMATIC DISCOVERY PROTOCOL - PMWEBAPI 44323/TCP # PERFORMANCE CO-PILOT CLIENT HTTP API - CLOUDCHECK-PING 45514/UDP # ASSIA CLOUDCHECK WIFI MANAGEMENT KEEPALIVE - CLOUDCHECK 45514/TCP # ASSIA CLOUDCHECK WIFI MANAGEMENT SYSTEM - SPREMOTETABLET 46998/TCP # CAPTURE HANDWRITTEN SIGNATURES - ``` + Shell > tail -n 5 /etc/services | awk '{print toupper($0)}' + AXIO-DISC 35100/UDP # AXIOMATIC DISCOVERY PROTOCOL + PMWEBAPI 44323/TCP # PERFORMANCE CO-PILOT CLIENT HTTP API + CLOUDCHECK-PING 45514/UDP # ASSIA CLOUDCHECK WIFI MANAGEMENT KEEPALIVE + CLOUDCHECK 45514/TCP # ASSIA CLOUDCHECK WIFI MANAGEMENT SYSTEM + SPREMOTETABLET 46998/TCP # CAPTURE HANDWRITTEN SIGNATURES + ``` 12. Функції, що працюють з часом і датою - **Що таке мітка часу UNIX?** - Згідно з історією розвитку GNU/Linux, UNIX V1 народилася в 1971 році, а книга «Посібник програміста UNIX» була опублікована 3 листопада того ж року, в якій 1970-01-01 є датою початку початку UNIX. + **Що таке мітка часу UNIX?** + Згідно з історією розвитку GNU/Linux, UNIX V1 народилася в 1971 році, а книга «Посібник програміста UNIX» була опублікована 3 листопада того ж року, в якій 1970-01-01 є датою початку початку UNIX. - Перетворення між міткою часу та природною датою та часом у днях: + Перетворення між міткою часу та природною датою та часом у днях: - ```bash - Shell > echo "$(( $(date --date="2024/01/06" +%s)/86400 + 1 ))" - 19728 + ```bash + Shell > echo "$(( $(date --date="2024/01/06" +%s)/86400 + 1 ))" + 19728 - Shell > date -d "1970-01-01 19728days" - Sat Jan 6 00:00:00 CST 2024 - ``` + Shell > date -d "1970-01-01 19728days" + Sat Jan 6 00:00:00 CST 2024 + ``` - Перетворення між міткою часу та природною датою та часом у секундах: + Перетворення між міткою часу та природною датою та часом у секундах: - ```bash - Shell > echo "$(date --date="2024/01/06 17:12:00" +%s)" - 1704532320 + ```bash + Shell > echo "$(date --date="2024/01/06 17:12:00" +%s)" + 1704532320 - Shell > echo "$(date --date='@1704532320')" - Sat Jan 6 17:12:00 CST 2024 - ``` + Shell > echo "$(date --date='@1704532320')" + Sat Jan 6 17:12:00 CST 2024 + ``` - Перетворення між природною датою та часом UNIX у програмі `awk`: + Перетворення між природною датою та часом UNIX у програмі `awk`: - ```bash - Shell > awk 'BEGIN{print systime()}' - 1704532597 + ```bash + Shell > awk 'BEGIN{print systime()}' + 1704532597 - Shell > echo "1704532597" | awk '{print strftime("%Y-%m-%d %H:%M:%S",$0)}' - 2024-01-06 17:16:37 - ``` + Shell > echo "1704532597" | awk '{print strftime("%Y-%m-%d %H:%M:%S",$0)}' + 2024-01-06 17:16:37 + ``` ## Оператор введення/виведення @@ -1829,205 +1829,205 @@ False 1. getline - ```bash - Shell > seq 1 10 | awk '/3/ || /6/ {getline ; print $0}' - 4 - 7 - - Shell > seq 1 10 | awk '/3/ || /6/ {print $0 ; getline ; print $0}' - 3 - 4 - 6 - 7 - ``` - - Використовуючи вивчені раніше функції та символ «&», ми можемо: - - ```bash - Shell > tail -n 5 /etc/services | awk '/45514\/tcp/ {getline ; gsub(/.*/ , "&\tSTRING1") ; print $0}' - spremotetablet 46998/tcp # Capture handwritten signatures STRING1 - - Shell > tail -n 5 /etc/services | awk '/45514\/tcp/ {print $0 ; getline; gsub(/.*/,"&\tSTRING2") } {print $0}' - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures STRING2 - ``` - - Вивести парні та непарні рядки: - - ```bash - Shell > tail -n 10 /etc/services | cat -n | awk '{ if( (getline) <= 1) print $0}' - 2 ka-kdp 31016/udp # Kollective Agent Kollective Delivery - 4 edi_service 34567/udp # dhanalakshmi.org EDI Service - 6 axio-disc 35100/udp # Axiomatic discovery protocol - 8 cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - 10 spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > tail -n 10 /etc/services | cat -n | awk '{if(NR==1) print $0} { if(NR%2==0) {if(getline > 0) print $0} }' - 1 aigairserver 21221/tcp # Services for Air Server - 3 ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - 5 axio-disc 35100/tcp # Axiomatic discovery protocol - 7 pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - 9 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - ``` + ```bash + Shell > seq 1 10 | awk '/3/ || /6/ {getline ; print $0}' + 4 + 7 + + Shell > seq 1 10 | awk '/3/ || /6/ {print $0 ; getline ; print $0}' + 3 + 4 + 6 + 7 + ``` + + Використовуючи вивчені раніше функції та символ «&», ми можемо: + + ```bash + Shell > tail -n 5 /etc/services | awk '/45514\/tcp/ {getline ; gsub(/.*/ , "&\tSTRING1") ; print $0}' + spremotetablet 46998/tcp # Capture handwritten signatures STRING1 + + Shell > tail -n 5 /etc/services | awk '/45514\/tcp/ {print $0 ; getline; gsub(/.*/,"&\tSTRING2") } {print $0}' + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures STRING2 + ``` + + Вивести парні та непарні рядки: + + ```bash + Shell > tail -n 10 /etc/services | cat -n | awk '{ if( (getline) <= 1) print $0}' + 2 ka-kdp 31016/udp # Kollective Agent Kollective Delivery + 4 edi_service 34567/udp # dhanalakshmi.org EDI Service + 6 axio-disc 35100/udp # Axiomatic discovery protocol + 8 cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + 10 spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > tail -n 10 /etc/services | cat -n | awk '{if(NR==1) print $0} { if(NR%2==0) {if(getline > 0) print $0} }' + 1 aigairserver 21221/tcp # Services for Air Server + 3 ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + 5 axio-disc 35100/tcp # Axiomatic discovery protocol + 7 pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + 9 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + ``` 2. getline var - Додайте кожен рядок b-файлу в кінець кожного рядка C-файлу: - - ```bash - Shell > cat /tmp/b.txt - b1 - b2 - b3 - b4 - b5 - b6 - - Shell > cat /tmp/c.txt - A 192.168.1.1 HTTP - B 192.168.1.2 HTTP - B 192.168.1.2 MYSQL - C 192.168.1.1 MYSQL - C 192.168.1.1 MQ - D 192.168.1.4 NGINX - - Shell > awk '{getline var1 <"/tmp/b.txt" ; print $0 , var1}' /tmp/c.txt - A 192.168.1.1 HTTP b1 - B 192.168.1.2 HTTP b2 - B 192.168.1.2 MYSQL b3 - C 192.168.1.1 MYSQL b4 - C 192.168.1.1 MQ b5 - D 192.168.1.4 NGINX b6 - ``` - - Замініть вказане поле файлу c на рядок вмісту файлу b: - - ```bash - Shell > awk '{ getline var2 < "/tmp/b.txt" ; gsub($2 , var2 , $2) ; print $0 }' /tmp/c.txt - A b1 HTTP - B b2 HTTP - B b3 MYSQL - C b4 MYSQL - C b5 MQ - D b6 NGINX - ``` + Додайте кожен рядок b-файлу в кінець кожного рядка C-файлу: + + ```bash + Shell > cat /tmp/b.txt + b1 + b2 + b3 + b4 + b5 + b6 + + Shell > cat /tmp/c.txt + A 192.168.1.1 HTTP + B 192.168.1.2 HTTP + B 192.168.1.2 MYSQL + C 192.168.1.1 MYSQL + C 192.168.1.1 MQ + D 192.168.1.4 NGINX + + Shell > awk '{getline var1 <"/tmp/b.txt" ; print $0 , var1}' /tmp/c.txt + A 192.168.1.1 HTTP b1 + B 192.168.1.2 HTTP b2 + B 192.168.1.2 MYSQL b3 + C 192.168.1.1 MYSQL b4 + C 192.168.1.1 MQ b5 + D 192.168.1.4 NGINX b6 + ``` + + Замініть вказане поле файлу c на рядок вмісту файлу b: + + ```bash + Shell > awk '{ getline var2 < "/tmp/b.txt" ; gsub($2 , var2 , $2) ; print $0 }' /tmp/c.txt + A b1 HTTP + B b2 HTTP + B b3 MYSQL + C b4 MYSQL + C b5 MQ + D b6 NGINX + ``` 3. command | getline [var] - ```bash - Shell > awk 'BEGIN{ "date +%Y%m%d" | getline datenow ; print datenow}' - 20240107 - ``` + ```bash + Shell > awk 'BEGIN{ "date +%Y%m%d" | getline datenow ; print datenow}' + 20240107 + ``` - !!! tip "Підказка" + !!! tip "Підказка" - ``` - Використовуйте подвійні лапки, щоб включити команду Shell. - ``` + ``` + Використовуйте подвійні лапки, щоб включити команду Shell. + ``` 4. next - Раніше ми представили оператори **break** і **continue**, перший використовувався для завершення циклу, а другий використовувався для виходу з поточного циклу. Дивись [тут](#bc). Для **наступного**, коли умови виконуються, він зупиняє вхідний запис, який відповідає умовам, і продовжить наступні дії. + Раніше ми представили оператори **break** і **continue**, перший використовувався для завершення циклу, а другий використовувався для виходу з поточного циклу. Дивись [тут](#bc). Для **наступного**, коли умови виконуються, він зупиняє вхідний запис, який відповідає умовам, і продовжить наступні дії. - ```bash - Shell > seq 1 5 | awk '{if(NR==3) {next} print $0}' - 1 - 2 - 4 - 5 - - # equivalent to - Shell > seq 1 5 | awk '{if($1!=3) print $0}' - ``` + ```bash + Shell > seq 1 5 | awk '{if(NR==3) {next} print $0}' + 1 + 2 + 4 + 5 - Пропустити придатні записи рядків: + # equivalent to + Shell > seq 1 5 | awk '{if($1!=3) print $0}' + ``` - ```bash - Shell > cat /etc/passwd | awk -F ":" 'NR>5 {next} {print $0}' - root:x:0:0:root:/root:/bin/bash - bin:x:1:1:bin:/bin:/sbin/nologin - daemon:x:2:2:daemon:/sbin:/sbin/nologin - adm:x:3:4:adm:/var/adm:/sbin/nologin - lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin + Пропустити придатні записи рядків: - # equivalent to - Shell > cat /etc/passwd | awk -F ":" 'NR>=1 && NR<=5 {print $0}' - ``` + ```bash + Shell > cat /etc/passwd | awk -F ":" 'NR>5 {next} {print $0}' + root:x:0:0:root:/root:/bin/bash + bin:x:1:1:bin:/bin:/sbin/nologin + daemon:x:2:2:daemon:/sbin:/sbin/nologin + adm:x:3:4:adm:/var/adm:/sbin/nologin + lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin + + # equivalent to + Shell > cat /etc/passwd | awk -F ":" 'NR>=1 && NR<=5 {print $0}' + ``` - !!! tip "Підказка" + !!! tip "Підказка" - ``` - "**next**" не можна використовувати в "BEGIN{}" і "END{}". - ``` + ``` + "**next**" не можна використовувати в "BEGIN{}" і "END{}". + ``` 5. Функція **system** - Ви можете використовувати цю функцію для виклику команд в Shell, наприклад: + Ви можете використовувати цю функцію для виклику команд в Shell, наприклад: - ```bash - Shell > awk 'BEGIN{ system("echo nginx http") }' - nginx http - ``` + ```bash + Shell > awk 'BEGIN{ system("echo nginx http") }' + nginx http + ``` - !!! tip "Підказка" + !!! tip "Підказка" - ```` - Під час використання функції **system** слід додавати подвійні лапки. Якщо не додати, програма `awk` вважатиме його змінною програми `awk`. + ```` + Під час використання функції **system** слід додавати подвійні лапки. Якщо не додати, програма `awk` вважатиме його змінною програми `awk`. - ```bash - Shell > awk 'BEGIN{ cmd1="date +%Y" ; system(cmd1)}' - 2024 - ``` - ```` + ```bash + Shell > awk 'BEGIN{ cmd1="date +%Y" ; system(cmd1)}' + 2024 + ``` + ```` - **Що робити, якщо сама команда Shell містить подвійні лапки?** - Використовувати символи екранування - "\\", такі як: + **Що робити, якщо сама команда Shell містить подвійні лапки?** + Використовувати символи екранування - "\\", такі як: - ```bash - Shell > egrep "^root|^nobody" /etc/passwd - Shell > awk 'BEGIN{ system("egrep \"^root|^nobody\" /etc/passwd") }' - root:x:0:0:root:/root:/bin/bash - nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin - ``` + ```bash + Shell > egrep "^root|^nobody" /etc/passwd + Shell > awk 'BEGIN{ system("egrep \"^root|^nobody\" /etc/passwd") }' + root:x:0:0:root:/root:/bin/bash + nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin + ``` - Інший приклад: + Інший приклад: - ```bash - Shell > awk 'BEGIN{ if ( system("xmind &> /dev/null") == 0 ) print "True"; else print "False" }' - False - ``` + ```bash + Shell > awk 'BEGIN{ if ( system("xmind &> /dev/null") == 0 ) print "True"; else print "False" }' + False + ``` 6. Запишіть вихідні дані програми `awk` у файл - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{OFS="\t"} {print $1,$2 > "/tmp/user.txt"}' - Shell > cat /tmp/user.txt - root x - bin x - daemon x - adm x - lp x - ``` + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{OFS="\t"} {print $1,$2 > "/tmp/user.txt"}' + Shell > cat /tmp/user.txt + root x + bin x + daemon x + adm x + lp x + ``` - !!! tip "Підказка" + !!! tip "Підказка" - ``` - "**>**" вказує на запис у файл як накладання. Якщо ви хочете писати у файл як додаток, використовуйте "**>>**". Ще раз нагадуємо, що шлях до файлу слід взяти в подвійні лапки. - ``` + ``` + "**>**" вказує на запис у файл як накладання. Якщо ви хочете писати у файл як додаток, використовуйте "**>>**". Ще раз нагадуємо, що шлях до файлу слід взяти в подвійні лапки. + ``` 7. pipe символ 8. Спеціальні функції - синтаксис - `function NAME(parameter list) { function body }`. Як от: + синтаксис - `function NAME(parameter list) { function body }`. Як от: - ```bash - Shell > awk 'function mysum(a,b) {return a+b} BEGIN{print mysum(1,6)}' - 7 - ``` + ```bash + Shell > awk 'function mysum(a,b) {return a+b} BEGIN{print mysum(1,6)}' + 7 + ``` ## Заключні зауваження From 6b25c7839bddd848ccabac4daa115943b83e47d7 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:26 -0400 Subject: [PATCH 011/167] New translations lab8-system_and_process_monitoring-i.md (Ukrainian) --- ...lab8-system_and_process_monitoring-I.uk.md | 984 +++++++++--------- 1 file changed, 492 insertions(+), 492 deletions(-) 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 04a559cdc9..4402ab40c1 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 @@ -43,57 +43,57 @@ tags: 2. Знайдіть назву процесу з ідентифікатором процесу 1 за допомогою /proc. - ```bash - cat /proc/1/comm - ``` + ```bash + cat /proc/1/comm + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Як називається процес з PID 1? - ``` + ``` + Як називається процес з PID 1? + ``` 3. Перегляньте ім’я та шлях до виконуваного файлу процесу з PID 1. - ```bash - ls -l /proc/1/exe - ``` + ```bash + ls -l /proc/1/exe + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Який шлях до виконуваного файлу за PID 1? - ``` + ``` + Який шлях до виконуваного файлу за PID 1? + ``` 4. Використовуйте команду `ps`, щоб дізнатися назву процесу або програми, що стоїть за PID 1. - ```bash - ps -p 1 -o comm= - ``` + ```bash + ps -p 1 -o comm= + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Чи підтверджує команда `ps` назву процесу? - ``` + ``` + Чи підтверджує команда `ps` назву процесу? + ``` 5. Використовуйте команду `ps`, щоб переглянути повний шлях і будь-які аргументи командного рядка процесу або програми за PID 1. - ```bash - ps -p 1 -o args= - ``` + ```bash + ps -p 1 -o args= + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Який повний шлях і аргументи командного рядка для процесу з PID 1? - ``` + ``` + Який повний шлях і аргументи командного рядка для процесу з PID 1? + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Чому процес із PID 1 важливий у системі Linux? - ``` + ``` + Чому процес із PID 1 важливий у системі Linux? + ``` #### Щоб відобразити детальну інформацію про процес за допомогою `ps` @@ -101,47 +101,47 @@ tags: 1. Використовуйте команду `ps`, щоб відобразити список усіх процесів у структурі дерева. - ```bash - ps auxf - ``` + ```bash + ps auxf + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Яка структура списку процесів і яка інформація відображається? - ``` + ``` + Яка структура списку процесів і яка інформація відображається? + ``` 2. Відфільтруйте список лише для відображення процесів, пов’язаних із певним користувачем, наприклад, користувачем «root». - ```bash - ps -U root - ``` + ```bash + ps -U root + ``` - Переконайтеся, що відображаються лише процеси для користувача root. + Переконайтеся, що відображаються лише процеси для користувача root. 3. Показуйте процеси в детальному форматі, включаючи дерево процесів і потоки. Впишіть: - ```bash - ps -eH - ``` + ```bash + ps -eH + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Які додаткові деталі відображаються в цьому форматі? - ``` + ``` + Які додаткові деталі відображаються в цьому форматі? + ``` 4. Відображати процеси, відсортовані за використанням ЦП у порядку спадання. - ```bash - ps aux --sort=-%cpu - ``` + ```bash + ps aux --sort=-%cpu + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Який процес споживає найбільше ЦП? - ``` + ``` + Який процес споживає найбільше ЦП? + ``` ## Завдання 2 @@ -151,91 +151,91 @@ tags: 1. Запустіть тривалий процес сну у фоновому режимі та відобразіть PID на своєму терміналі. Впишіть: - ```bash - (sleep 3600 & MYPROC1=$! && echo PID is: $MYPROC1) 2>/dev/null - ``` + ```bash + (sleep 3600 & MYPROC1=$! && echo PID is: $MYPROC1) 2>/dev/null + ``` - Вихід: + Вихід: - ```bash - PID is: 1331933 - ``` + ```bash + PID is: 1331933 + ``` - Занотуйте PID для нового процесу у вашій системі. PID також зберігається в змінній $MYPROC1. + Занотуйте PID для нового процесу у вашій системі. PID також зберігається в змінній $MYPROC1. 2. Надішліть сигнал завершення (SIGTERM) процесу «сплячого режиму». - ```bash - kill $MYPROC1 - ``` + ```bash + kill $MYPROC1 + ``` - Замініть $MYPROC1 фактичним PID з кроку 1. + Замініть $MYPROC1 фактичним PID з кроку 1. 3. Перевірте, чи було завершено процес за допомогою `ps` і `ps aux`. - ```bash - ps aux | grep -v grep | grep sleep - ``` + ```bash + ps aux | grep -v grep | grep sleep + ``` #### Для завершення процесів за допомогою сигналів `kill` 1. Почніть новий процес сну та запишіть його PID. Впишіть: - ```bash - (sleep 3600 & MYPROC2=$! && echo PID is: $MYPROC2) 2>/dev/null - ``` + ```bash + (sleep 3600 & MYPROC2=$! && echo PID is: $MYPROC2) 2>/dev/null + ``` - Вихід: + Вихід: - ```bash - PID is: 1333258 - ``` + ```bash + PID is: 1333258 + ``` 2. Надішліть інший сигнал (наприклад, SIGHUP) до нового процесу сну. Впишіть: - ```bash - kill -1 $MYPROC2 - ``` + ```bash + kill -1 $MYPROC2 + ``` - Переконайтеся, що $MYPROC2 більше не міститься в таблиці процесів. + Переконайтеся, що $MYPROC2 більше не міститься в таблиці процесів. 3. Почніть новий процес ping і запишіть його PID. Впишіть: - ```bash - { ping localhost > /dev/null 2>&1 & MYPROC3=$!; } \ - 2>/dev/null; echo "PID is: $MYPROC3" - ``` + ```bash + { ping localhost > /dev/null 2>&1 & MYPROC3=$!; } \ + 2>/dev/null; echo "PID is: $MYPROC3" + ``` 4. Використовуйте команду `kill`, щоб надіслати сигнал `SIGTERM` процесу ping. Впишіть: - ```bash - kill -15 $MYPROC3 - ``` + ```bash + kill -15 $MYPROC3 + ``` - Замініть MYPROC3 фактичним PID процесу у вашій системі. + Замініть MYPROC3 фактичним PID процесу у вашій системі. 5. Запустіть тривалий процес за допомогою команди `cat`. Впишіть: - ```bash - { cat /dev/random > /dev/null 2>&1 & MYPROC4=$!; } \ - 2>/dev/null; echo PID is: $MYPROC4 - ``` + ```bash + { cat /dev/random > /dev/null 2>&1 & MYPROC4=$!; } \ + 2>/dev/null; echo PID is: $MYPROC4 + ``` - Занотуйте PID для процесу у вашій системі. + Занотуйте PID для процесу у вашій системі. 6. Використовуйте `kill`, щоб примусово завершити процес, надіславши сигнал SIGKILL. - ```bash - kill -9 $MYPROC4 - ``` + ```bash + kill -9 $MYPROC4 + ``` - Підтвердьте, що процес завершено. + Підтвердьте, що процес завершено. - !!! question "Питання" + !!! question "Питання" - ``` - Поясніть мету надсилання сигналів процесам за допомогою команди `kill` і значення різних типів сигналів. - ``` + ``` + Поясніть мету надсилання сигналів процесам за допомогою команди `kill` і значення різних типів сигналів. + ``` ## Завдання 3 @@ -245,67 +245,67 @@ tags: 1. Запустіть верхню команду, щоб переглянути системну статистику в реальному часі. - ```bash - top - ``` + ```bash + top + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Яка інформація відображається у верхньому інтерфейсі? - ``` + ``` + Яка інформація відображається у верхньому інтерфейсі? + ``` 2. Спостерігайте за використанням процесора та пам’яті процесами у верхньому інтерфейсі. - !!! question "Питання" + !!! question "Питання" - ``` - Які процеси споживають найбільше процесора та пам’яті? - ``` + ``` + Які процеси споживають найбільше процесора та пам’яті? + ``` 3. Відсортуйте процеси вгорі за використанням ЦП (натисніть P) і використанням пам’яті (натисніть M). - !!! question "Питання" + !!! question "Питання" - ``` - Які процеси найбільше споживають процесор і пам’ять після сортування? - ``` + ``` + Які процеси найбільше споживають процесор і пам’ять після сортування? + ``` #### Щоб контролювати використання процесора та пам’яті певними процесами, використовуючи `top` 1. Створіть довільно великий файл розміром 512 МБ, який містить випадкові дані. - ```bash - sudo fallocate -l 512M ~/large-file.data - ``` + ```bash + sudo fallocate -l 512M ~/large-file.data + ``` 2. Почніть ресурсомісткий процес, наприклад значне стиснення файлу. - ```bash - tar -czf archive.tar.gz /path/to/large/directory - ``` + ```bash + tar -czf archive.tar.gz /path/to/large/directory + ``` 3. Відкрийте команду `top`, щоб контролювати використання ЦП і пам'яті. - ```bash - top - ``` + ```bash + top + ``` 4. У верхньому інтерфейсі знайдіть і виберіть ресурсомісткий процес. - !!! question "Питання" + !!! question "Питання" - ``` - Який ідентифікатор процесу та використання ресурсів інтенсивного процесу? - ``` + ``` + Який ідентифікатор процесу та використання ресурсів інтенсивного процесу? + ``` 5. Змініть порядок сортування вгорі, щоб відобразити процеси, які використовують найбільше ЦП або пам’яті (натисніть P або M). - !!! question "Питання" + !!! question "Питання" - ``` - Який процес знаходиться у верхній частині списку після сортування? - ``` + ``` + Який процес знаходиться у верхній частині списку після сортування? + ``` 6. Вийдіть із верхньої частини, натиснувши `q`. @@ -313,47 +313,47 @@ tags: 1. Запустіть команду `top` в інтерактивному режимі. - ```bash - top - ``` + ```bash + top + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Яка інформація відображається на верхньому екрані? - ``` + ``` + Яка інформація відображається на верхньому екрані? + ``` 2. Використовуйте одну клавішу, щоб відобразити підсумок використання окремого ядра ЦП. - !!! question "Питання" + !!! question "Питання" - ``` - Яка розбивка використання ядра ЦП для кожного ядра? - ``` + ``` + Яка розбивка використання ядра ЦП для кожного ядра? + ``` 3. Натисніть u, щоб відобразити процеси для певного користувача. Введіть своє ім'я користувача. - !!! question "Питання" + !!! question "Питання" - ``` - Які процеси зараз запущені для вашого користувача? - ``` + ``` + Які процеси зараз запущені для вашого користувача? + ``` 4. Відсортуйте процеси за використанням пам’яті (натисніть M) і спостерігайте за процесами, які споживають найбільше пам’яті. - !!! question "Питання" + !!! question "Питання" - ``` - Які процеси використовують найбільше пам’яті? - ``` + ``` + Які процеси використовують найбільше пам’яті? + ``` 5. Вийдіть із верхньої частини, натиснувши q. - !!! question "Питання" + !!! question "Питання" - ``` - Поясніть значення моніторингу системних ресурсів за допомогою команди top і як це може допомогти у вирішенні проблем продуктивності. - ``` + ``` + Поясніть значення моніторингу системних ресурсів за допомогою команди top і як це може допомогти у вирішенні проблем продуктивності. + ``` ## Завдання 4 @@ -363,78 +363,78 @@ tags: 1. Запустіть процес із інтенсивним використанням процесора, який виконується з пріоритетом за замовчуванням/звичайним. Впишіть: - ```bash - bash -c 'while true; do echo "Default priority: The PID is $$"; done' - ``` + ```bash + bash -c 'while true; do echo "Default priority: The PID is $$"; done' + ``` - Вихід: + Вихід: - ```bash - Default priority: The PID is 2185209 - Default priority: The PID is 2185209 - Default priority: The PID is 2185209 - ....... - ``` + ```bash + Default priority: The PID is 2185209 + Default priority: The PID is 2185209 + Default priority: The PID is 2185209 + ....... + ``` - З виведених даних значення PID у нашій системі зразка становить «2185209». + З виведених даних значення PID у нашій системі зразка становить «2185209». - Значення PID у вашій системі буде іншим. + Значення PID у вашій системі буде іншим. - Зверніть увагу на те, що значення PID постійно відображається на екрані вашої системи. + Зверніть увагу на те, що значення PID постійно відображається на екрані вашої системи. 2. В іншому терміналі, використовуючи значення PID, перевірте пріоритет процесу за замовчуванням за допомогою `ps`. Впишіть: - ```bash - ps -p -o ni - ``` + ```bash + ps -p -o ni + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Який пріоритет процесу за замовчуванням (значення `nice`) запущеного процесу? - ``` + ``` + Який пріоритет процесу за замовчуванням (значення `nice`) запущеного процесу? + ``` 3. Використовуючи надрукований PID процесу, завершіть процес за допомогою команди `kill`. 4. Використовуючи команду `nice`, перезапустіть подібний процес із нижчим значенням якості (тобто більш сприятливим для процесу АБО вищим пріоритетом). Використовуйте `nice` значення «-20». Впишіть: - ```bash - nice -n -20 bash -c 'while true; do echo "High priority: The PID is $$"; done' - ``` + ```bash + nice -n -20 bash -c 'while true; do echo "High priority: The PID is $$"; done' + ``` 5. Використовуючи ваше значення PID, перевірте пріоритет процесу за допомогою `ps.` Впишіть: - ```bash - ps -p -o ni - ``` + ```bash + ps -p -o ni + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Чи успішно встановлено пріоритет процесу? - ``` + ``` + Чи успішно встановлено пріоритет процесу? + ``` 6. Одночасно натисніть клавіші ++ctrl+c++ на клавіатурі, щоб «закрити» новий процес з високим пріоритетом. 7. Знову використовуючи команду `nice`, перезапустіть інший процес, але цього разу з вищим значенням акуратності (тобто найменш сприятливим для процесу АБО нижчим пріоритетом). Використовуйте `nice` значення `19`, впишіть: - ```bash - nice -n 19 bash -c 'while true; do echo "Low priority: The PID is $$"; done' - ``` + ```bash + nice -n 19 bash -c 'while true; do echo "Low priority: The PID is $$"; done' + ``` - Вихід: + Вихід: - ```bash - Low priority: The PID is 2180254 - Low priority: The PID is 2180254 - ...... - ``` + ```bash + Low priority: The PID is 2180254 + Low priority: The PID is 2180254 + ...... + ``` 8. Перевірте настроюваний пріоритет процесу за допомогою `ps`. Впишіть: - ```bash - ps -p -o ni - ``` + ```bash + ps -p -o ni + ``` 9. Одночасно натисніть клавіші ++ctrl+c++ на клавіатурі, щоб припинити новий процес із низьким пріоритетом. @@ -444,73 +444,73 @@ tags: 1. Розпочніть інтенсивний процес, наприклад тривалий математичний розрахунок за допомогою утиліти md5sum. Впишіть: - ```bash - find / -path '/proc/*' -prune -o -type f -exec md5sum {} \; > /dev/null - ``` + ```bash + find / -path '/proc/*' -prune -o -type f -exec md5sum {} \; > /dev/null + ``` 2. Використовуйте команду `ps`, щоб визначити PID попереднього процесу `find/md5sum`. Впишіть: - ```bash - ps -C find -o pid= - ``` + ```bash + ps -C find -o pid= + ``` - Вихід: + Вихід: - ```bash - 2577072 - ``` + ```bash + 2577072 + ``` - Вихідні дані показують, що значення PID у нашій системі зразка становить «2577072». + Вихідні дані показують, що значення PID у нашій системі зразка становить «2577072». - Значення PID у вашій системі буде іншим. + Значення PID у вашій системі буде іншим. - Занотуйте значення PID у вашій системі. + Занотуйте значення PID у вашій системі. 3. Використовуйте команду `renice`, щоб змінити пріоритет запущеного процесу `find/md5sum` на нижче значення точності (наприклад, -10, вищий пріоритет). Впишіть: - ```bash - renice -n -10 -p $(ps -C find -o pid=) - ``` + ```bash + renice -n -10 -p $(ps -C find -o pid=) + ``` - Вихід: + Вихід: - ```bash + ```bash (process ID) old priority 0, new priority -10 - ``` + ``` - Замініть "" (вище) фактичним PID запущеного процесу. + Замініть "" (вище) фактичним PID запущеного процесу. 4. Контролюйте використання ресурсів для процесу `find/md5sum` за допомогою `top` (або `htop`). Впишіть: - ```bash - top -cp $(ps -C find -o pid=) - ``` + ```bash + top -cp $(ps -C find -o pid=) + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Чи отримує процес тепер більшу частку ресурсів ЦП? - ``` + ``` + Чи отримує процес тепер більшу частку ресурсів ЦП? + ``` 5. Змініть пріоритет процесу `find/md5sum` на вище значення `nice` (наприклад, 10, нижчий пріоритет). Впишіть: - ```bash - renice -n 10 -p - ``` + ```bash + renice -n 10 -p + ``` - Вихід: + Вихід: - ```bash - 2338530 (process ID) old priority -10, new priority 10 - ``` + ```bash + 2338530 (process ID) old priority -10, new priority 10 + ``` - Замініть "" (вище) фактичним PID запущеного процесу. + Замініть "" (вище) фактичним PID запущеного процесу. - !!! question "Питання" + !!! question "Питання" - ``` - Поясніть, як команда `nice` використовується для налаштування пріоритетів процесів і як вона впливає на розподіл системних ресурсів. - ``` + ``` + Поясніть, як команда `nice` використовується для налаштування пріоритетів процесів і як вона впливає на розподіл системних ресурсів. + ``` 6. Одночасно натисніть клавіші ++ctrl+c++ на клавіатурі, щоб зупинити процес `find/md5sum`. Ви також можете використати команду `kill`, щоб виконати те ж саме. @@ -522,41 +522,41 @@ tags: 1. Використовуйте команду `pgrep`, щоб визначити всі процеси, пов’язані з певною програмою чи службою, наприклад `sshd`. - ```bash - pgrep sshd - ``` + ```bash + pgrep sshd + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Які ідентифікатори процесів `sshd`? - ``` + ``` + Які ідентифікатори процесів `sshd`? + ``` 2. Перевірте існування ідентифікованих процесів за допомогою команди `ps`. - ```bash - ps -p - ``` + ```bash + ps -p + ``` - Замініть "" ідентифікаторами процесу, отриманими на кроці 1. + Замініть "" ідентифікаторами процесу, отриманими на кроці 1. 3. Використовуйте команду `pgrep`, щоб ідентифікувати процеси з певною назвою, наприклад, "cron". - ```bash - pgrep cron - ``` + ```bash + pgrep cron + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Чи існують процеси з назвою "cron"? - ``` + ``` + Чи існують процеси з назвою "cron"? + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Поясніть різницю між використанням `ps` і `pgrep` для ідентифікації та керування процесами. - ``` + ``` + Поясніть різницю між використанням `ps` і `pgrep` для ідентифікації та керування процесами. + ``` ## Завдання 6 @@ -568,81 +568,81 @@ tags: 1. Почніть довготривалий процес на передньому плані. Наприклад, ви можете використати просту команду на зразок `sleep`. Впишіть: - ```bash - sleep 300 - ``` + ```bash + sleep 300 + ``` 2. Призупиніть процес переднього плану, натиснувши ++ctrl+z++ на клавіатурі. Це повинно повернути вас до командної оболонки. 3. Виведіть список призупинених завдань за допомогою команди `jobs`. Впишіть: - ```bash - jobs - ``` + ```bash + jobs + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Який статус призупиненої роботи? - ``` + ``` + Який статус призупиненої роботи? + ``` 4. Поверніть призупинене завдання на передній план за допомогою команди `fg`. - ```bash - fg - ``` + ```bash + fg + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Що відбувається, коли ви повертаєте роботу на перший план? - ``` + ``` + Що відбувається, коли ви повертаєте роботу на перший план? + ``` 5. Знову призупиніть роботу за допомогою ++ctrl+z++, а потім перемістіть її у фоновий режим за допомогою команди `bg`. - ```bash - bg - ``` + ```bash + bg + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Який зараз статус роботи? - ``` + ``` + Який зараз статус роботи? + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Поясніть призначення активних і фонових процесів і як ними керують за допомогою команд `fg` і `bg`. - ``` + ``` + Поясніть призначення активних і фонових процесів і як ними керують за допомогою команд `fg` і `bg`. + ``` #### Щоб розпочати процес у фоновому режимі 1. Символ `&` може запускати процес, який негайно виконується у фоновому режимі. Наприклад, щоб запустити команду `sleep` у фоновому режимі, введіть: - ```bash - sleep 300 & - ``` + ```bash + sleep 300 & + ``` - Призупиніть запущений процес за допомогою ++ctrl+z++. + Призупиніть запущений процес за допомогою ++ctrl+z++. 2. Список статусів усіх активних завдань. Впишіть: - ```bash - jobs -l - ``` + ```bash + jobs -l + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Який статус процесу `sleep 300`? - ``` + ``` + Який статус процесу `sleep 300`? + ``` 3. Поверніть фоновий процес на передній план за допомогою команди `fg`. - ```bash - fg - ``` + ```bash + fg + ``` 4. Передчасно завершити процес «сплячого режиму», надіславши йому сигнал SIGSTOP, натиснувши ++ctrl+c++. @@ -650,23 +650,23 @@ tags: 1. Запустіть інтерактивний процес, наприклад текстовий редактор `vi`, щоб створити та відредагувати зразок текстового файлу під назвою "foobar.txt". Впишіть: - ```bash - vi foobar1.txt - ``` + ```bash + vi foobar1.txt + ``` - Призупиніть запущений процес за допомогою `Ctrl` + `Z`. + Призупиніть запущений процес за допомогою `Ctrl` + `Z`. - Використовуйте команду `bg`, щоб перевести призупинений процес у фоновий режим. + Використовуйте команду `bg`, щоб перевести призупинений процес у фоновий режим. - ```bash - bg - ``` + ```bash + bg + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Процес зараз працює у фоновому режимі? - ``` + ``` + Процес зараз працює у фоновому режимі? + ``` 2. Введіть «Hello» у `foobar1.txt` у вашому редакторі `vi`. @@ -674,9 +674,9 @@ tags: 4. Запустіть ще один окремий сеанс редактора `vi`, щоб створити інший текстовий файл під назвою "foobar2.txt". Впишіть: - ```bash - vi foobar2.txt - ``` + ```bash + vi foobar2.txt + ``` 5. Введіть зразок тексту «Hi inside foobar2.txt» під час 2-го сеансу vi. @@ -684,45 +684,45 @@ tags: 7. Покажіть статус усіх «задач» на поточному терміналі. Впишіть: - ```bash - jobs -l - ``` + ```bash + jobs -l + ``` - Вихід: + Вихід: - ```bash - [1]- 2977364 Stopped vi foobar1.txt - [2]+ 2977612 Stopped vi foobar2.txt - ``` + ```bash + [1]- 2977364 Stopped vi foobar1.txt + [2]+ 2977612 Stopped vi foobar2.txt + ``` - Ви повинні мати принаймні дві роботи, перелічені у вашому виході. Число в 1-му стовпчику вихідних даних показує номери робіт - [1] і [2]. + Ви повинні мати принаймні дві роботи, перелічені у вашому виході. Число в 1-му стовпчику вихідних даних показує номери робіт - [1] і [2]. 8. Відновіть ==та виведіть на передній план== 1-й сеанс `vi`, ввівши: - ```bash - fg %1 - ``` + ```bash + fg %1 + ``` 9. Знову призупиніть перший сеанс `vi` за допомогою ++ctrl+z++. 10. Відновіть ==та виведіть на передній план== 2-й сеанс `vi`, ввівши: - ```bash - fg %2 - ``` + ```bash + fg %2 + ``` 11. Припиніть обидва сеанси редагування `vi`, надіславши сигнал KILL до обох завдань. Слідкуйте за командою `kill` з командою jobs. Впишіть: - ```bash - kill -SIGKILL %1 %2 && jobs - ``` + ```bash + kill -SIGKILL %1 %2 && jobs + ``` - Вихід: + Вихід: - ```bash - [1]- Killed vi foobar1.txt - [2]+ Killed vi foobar2.txt - ``` + ```bash + [1]- Killed vi foobar1.txt + [2]+ Killed vi foobar2.txt + ``` ## Завдання 7 @@ -734,25 +734,25 @@ tags: 2. Використовуйте команду `pidof`, щоб знайти ідентифікатор процесу `systemd`. Впишіть: - ```bash - pidof systemd - ``` + ```bash + pidof systemd + ``` - Зверніть увагу на ідентифікатор(и) процесу `systemd`. + Зверніть увагу на ідентифікатор(и) процесу `systemd`. 3. Перевірте існування ідентифікованого процесу за допомогою команди `ps`. - ```bash - ps -p - ``` + ```bash + ps -p + ``` - Замініть фактичним ідентифікатором процесу, отриманим на кроці 2. + Замініть фактичним ідентифікатором процесу, отриманим на кроці 2. - !!! question "Питання" + !!! question "Питання" - ``` - Поясніть різницю між `pgrep` і `pidof` для пошуку ідентифікатора процесу запущеної команди. - ``` + ``` + Поясніть різницю між `pgrep` і `pidof` для пошуку ідентифікатора процесу запущеної команди. + ``` ## Завдання 8 @@ -762,39 +762,39 @@ tags: 1. Виведіть вміст каталогу /sys. Впишіть: - ```bash - ls /sys - ``` + ```bash + ls /sys + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Яка інформація зберігається в каталозі /sys? - ``` + ``` + Яка інформація зберігається в каталозі /sys? + ``` 2. Перейдіть до певного запису /sys, наприклад, інформації про ЦП. - ```bash - cd /sys/devices/system/cpu - ``` + ```bash + cd /sys/devices/system/cpu + ``` 3. Виведіть список вмісту поточного каталогу, щоб переглянути інформацію, пов’язану з ЦП. - ```bash - ls - ``` + ```bash + ls + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Яка інформація про ЦП доступна у файловій системі /sys? - ``` + ``` + Яка інформація про ЦП доступна у файловій системі /sys? + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Поясніть призначення файлової системи /sys в Linux і її роль в управлінні обладнанням і конфігурацією системи. - ``` + ``` + Поясніть призначення файлової системи /sys в Linux і її роль в управлінні обладнанням і конфігурацією системи. + ``` ## Завдання 9 @@ -804,41 +804,41 @@ tags: 1. Ідентифікуйте процеси з конкретною назвою, наприклад "firefox". - ```bash - pkill firefox - ``` + ```bash + pkill firefox + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Чи всі процеси з назвою "firefox" були припинені? - ``` + ``` + Чи всі процеси з назвою "firefox" були припинені? + ``` 2. Перевірте стан процесів, які ви зупинили за допомогою `ps`. - ```bash - ps aux | grep firefox - ``` + ```bash + ps aux | grep firefox + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Чи залишилися процеси з назвою "firefox"? - ``` + ``` + Чи залишилися процеси з назвою "firefox"? + ``` - Використовуйте `pkill`, щоб примусово припинити всі процеси з певним іменем. + Використовуйте `pkill`, щоб примусово припинити всі процеси з певним іменем. - ```bash - pkill -9 firefox - ``` + ```bash + pkill -9 firefox + ``` - Переконайтеся, що всі процеси з назвою «firefox» завершено. + Переконайтеся, що всі процеси з назвою «firefox» завершено. - !!! question "Питання" + !!! question "Питання" - ``` - Яка різниця між використанням `kill` і `pkill` для завершення процесів за назвою? - ``` + ``` + Яка різниця між використанням `kill` і `pkill` для завершення процесів за назвою? + ``` ## Вправа 10 @@ -850,41 +850,41 @@ tags: 1. Розпочніть новий сеанс оболонки. Впишіть: - ```bash - bash - ``` + ```bash + bash + ``` 2. Виконайте команду, яка не завершується в новій оболонці, наприклад простий цикл while. - ```bash - while true; do echo "Running..."; done - ``` + ```bash + while true; do echo "Running..."; done + ``` 3. У поточній оболонці замініть запущену команду на іншу за допомогою `exec`. - ```bash - exec echo "This replaces the previous command." - ``` + ```bash + exec echo "This replaces the previous command." + ``` - Зауважте, що попередня команда завершується, та виконується нова команда. + Зауважте, що попередня команда завершується, та виконується нова команда. 4. Переконайтеся, що стара команда більше не виконується за допомогою `ps`. - ```bash - ps aux | grep "while true" - ``` + ```bash + ps aux | grep "while true" + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Попередня команда все ще виконується? - ``` + ``` + Попередня команда все ще виконується? + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Поясніть, як команда `exec` може замінити поточний процес оболонки на іншу команду. - ``` + ``` + Поясніть, як команда `exec` може замінити поточний процес оболонки на іншу команду. + ``` ## Вправа 11 @@ -896,41 +896,41 @@ tags: 1. Ідентифікуйте процеси за допомогою конкретної назви, наприклад «chrome». - ```bash - killall chrome - ``` + ```bash + killall chrome + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Чи всі процеси з назвою "chrome" були припинені? - ``` + ``` + Чи всі процеси з назвою "chrome" були припинені? + ``` 2. Перевірте стан процесів, які ви зупинили за допомогою `ps`. - ```bash - ps aux | grep chrome - ``` + ```bash + ps aux | grep chrome + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Чи залишилися процеси з назвою "chrome"? - ``` + ``` + Чи залишилися процеси з назвою "chrome"? + ``` 3. Використовуйте `killall`, щоб примусово припинити всі процеси з певною назвою. - ```bash - killall -9 chrome - ``` + ```bash + killall -9 chrome + ``` - Переконайтеся, що всі процеси з іменем "chrome" завершено. + Переконайтеся, що всі процеси з іменем "chrome" завершено. - !!! question "Питання" + !!! question "Питання" - ``` - Чим `killall` відрізняється від `pkill` і `kill` при завершенні процесів за назвою? - ``` + ``` + Чим `killall` відрізняється від `pkill` і `kill` при завершенні процесів за назвою? + ``` ## Вправа 12 @@ -940,47 +940,47 @@ tags: 1. Перелічіть існуючі `cgroups` у вашій системі. - ```bash - cat /proc/cgroups - ``` + ```bash + cat /proc/cgroups + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Які контролери `cgroup` доступні у вашій системі? - ``` + ``` + Які контролери `cgroup` доступні у вашій системі? + ``` 2. Створіть нову cgroup за допомогою контролера ЦП. Назвіть її «mygroup». - ```bash - sudo mkdir -p /sys/fs/cgroup/cpu/mygroup - ``` + ```bash + sudo mkdir -p /sys/fs/cgroup/cpu/mygroup + ``` 3. Перемістіть певний процес (наприклад, запущену команду сну) до «mygroup» `cgroup`. - ```bash - echo | sudo tee /sys/fs/cgroup/cpu/mygroup/cgroup.procs - ``` + ```bash + echo | sudo tee /sys/fs/cgroup/cpu/mygroup/cgroup.procs + ``` - Замініть фактичним PID процесу. + Замініть фактичним PID процесу. 4. Перевірте, чи процес перенесено до "mygroup" `cgroup`. - ```bash - cat /sys/fs/cgroup/cpu/mygroup/cgroup.procs - ``` + ```bash + cat /sys/fs/cgroup/cpu/mygroup/cgroup.procs + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Чи вказаний процес у "mygroup" cgroup? - ``` + ``` + Чи вказаний процес у "mygroup" cgroup? + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Поясніть концепцію «cgroups» у Linux і те, як вони можуть керувати та контролювати розподіл ресурсів для процесів. - ``` + ``` + Поясніть концепцію «cgroups» у Linux і те, як вони можуть керувати та контролювати розподіл ресурсів для процесів. + ``` ## Вправа 13 @@ -990,46 +990,46 @@ tags: 1. Визначте запущений процес із певним PID та пріоритетом за допомогою `ps`. - ```bash - ps -p -o ni - ``` + ```bash + ps -p -o ni + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Який поточний пріоритет (значення nice) процесу? - ``` + ``` + Який поточний пріоритет (значення nice) процесу? + ``` 2. Використовуйте команду `renice`, щоб змінити пріоритет запущеного процесу (значення nice). - ```bash - renice -p - ``` + ```bash + renice -p + ``` - Замініть на нове значення пріоритету, яке ви хочете встановити, а на фактичний PID процесу. + Замініть на нове значення пріоритету, яке ви хочете встановити, а на фактичний PID процесу. 3. Переконайтеся, що пріоритет процесу було змінено за допомогою `ps`. - ```bash - ps -p -o ni - ``` + ```bash + ps -p -o ni + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Зараз пріоритет інший? - ``` + ``` + Зараз пріоритет інший? + ``` 4. Поекспериментуйте зі зміною пріоритету на вищі та нижчі значення та спостерігайте за впливом на використання ресурсів процесу. - !!! question "Питання" + !!! question "Питання" - ``` - Що відбувається зі споживанням ресурсів процесом із різними значеннями nice? - ``` + ``` + Що відбувається зі споживанням ресурсів процесом із різними значеннями nice? + ``` - !!! question "Питання" + !!! question "Питання" - ``` - Поясніть, як команда renice використовується для налаштування пріоритету запущених процесів і її вплив на використання ресурсів процесу. - ``` + ``` + Поясніть, як команда renice використовується для налаштування пріоритету запущених процесів і її вплив на використання ресурсів процесу. + ``` From 525956b361876dd53f8f8070525204dc8d55a851 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:30 -0400 Subject: [PATCH 012/167] New translations lab4-advanced_system_process_monitoring.md (Ukrainian) --- ...4-advanced_system_process_monitoring.uk.md | 928 +++++++++--------- 1 file changed, 464 insertions(+), 464 deletions(-) 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 7904196497..8ce8eb7db9 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 @@ -47,59 +47,59 @@ tags: 1. Спочатку створіть порожній тестовий файл, до якого ми хочемо отримати доступ. Впишіть: - ```bash - touch ~/testfile.txt - ``` + ```bash + touch ~/testfile.txt + ``` 2. Створіть сценарій, який ми будемо використовувати для імітації доступу до testfile.txt. Впишіть: - ```bash - cat > ~/simulate_file_usage.sh << EOF - #!/bin/bash - tail -f ~/testfile.txt - EOF - ``` + ```bash + cat > ~/simulate_file_usage.sh << EOF + #!/bin/bash + tail -f ~/testfile.txt + EOF + ``` 3. Зробіть сценарій виконуваним. Впишіть: - ```bash - chmod +x ~/simulate_file_usage.sh - ``` + ```bash + chmod +x ~/simulate_file_usage.sh + ``` 4. Запустіть скрипт. Впишіть: - ```bash - ~/simulate_file_usage.sh & - ``` + ```bash + ~/simulate_file_usage.sh & + ``` #### Щоб ідентифікувати процеси, які звертаються до файлу 1. Визначте процеси за допомогою або доступу до `testfile.txt`, запустіть: - ```bash - fuser ~/testfile.txt - ``` + ```bash + fuser ~/testfile.txt + ``` 2. Перегляньте додаткові параметри `fuser` за допомогою параметра `-v`. Впишіть: - ```bash - fuser -v ~/testfile.txt - ``` + ```bash + fuser -v ~/testfile.txt + ``` 3. Перегляньте додаткові параметри `fuser` за допомогою параметра `-v`. Тепер ви можете видалити файли. Впишіть: - ```bash - kill %1 - rm ~/testfile.txt ~/simulate_file_usage.sh - ``` + ```bash + kill %1 + rm ~/testfile.txt ~/simulate_file_usage.sh + ``` #### Щоб ідентифікувати процес, який отримує доступ до порту TCP/UDP 1. Використовуйте команду `fuser`, щоб визначити процес доступу до TCP-порту 22 на вашому сервері. Впишіть: - ```bash - sudo fuser 22/tcp - ``` + ```bash + sudo fuser 22/tcp + ``` ## Завдання 2 @@ -111,137 +111,137 @@ tags: 1. Встановіть програму `perf`, якщо вона не встановлена на вашому сервері. Впишіть: - ```bash - sudo dnf -y install perf - ``` + ```bash + sudo dnf -y install perf + ``` 2. Програма `bc` — це точний калькулятор командного рядка. `bc` буде використовуватися в цій вправі для імітації високого навантаження ЦП. Якщо `bc` ще не встановлено на вашому сервері, встановіть його за допомогою: - ```bash - sudo dnf -y install bc - ``` + ```bash + sudo dnf -y install bc + ``` #### Щоб створити сценарій для генерації навантаження на процесор 1. Створіть сценарій завантаження ЦП і зробіть його виконуваним, виконавши: - ```bash - cat > ~/generate_cpu_load.sh << EOF - #!/bin/bash + ```bash + cat > ~/generate_cpu_load.sh << EOF + #!/bin/bash - # Check if the number of decimal places is passed as an argument - if [ "$#" -ne 1 ]; then - echo "Usage: $0 " - exit 1 - fi + # Check if the number of decimal places is passed as an argument + if [ "$#" -ne 1 ]; then + echo "Usage: $0 " + exit 1 + fi - # Calculate Pi to the specified number of decimal places - for i in {1..10}; do echo "scale=$1; 4*a(1)" | bc -l; done + # Calculate Pi to the specified number of decimal places + for i in {1..10}; do echo "scale=$1; 4*a(1)" | bc -l; done - EOF - chmod +x ~/generate_cpu_load.sh - ``` + EOF + chmod +x ~/generate_cpu_load.sh + ``` - !!! tip "Підказка" + !!! tip "Підказка" - ``` - Сценарій generate_cpu_load.sh — це простий інструмент для генерування навантаження на ЦП шляхом обчислення Пі (π) з високою точністю. Такий же розрахунок проводиться десять разів. Сценарій приймає ціле число як параметр для визначення кількості знаків після коми для обчислення Пі. - ``` + ``` + Сценарій generate_cpu_load.sh — це простий інструмент для генерування навантаження на ЦП шляхом обчислення Пі (π) з високою точністю. Такий же розрахунок проводиться десять разів. Сценарій приймає ціле число як параметр для визначення кількості знаків після коми для обчислення Пі. + ``` #### Для імітації додаткового навантаження на процесор 1. Давайте проведемо простий тест і обчислимо Пі з точністю до 50 знаків після коми. Запустіть сценарій, ввівши: - ```bash - ~/generate_cpu_load.sh 50 & - ``` + ```bash + ~/generate_cpu_load.sh 50 & + ``` 2. Повторно запустіть сценарій, але використовуйте `perf`, щоб записати продуктивність сценарію для аналізу використання ЦП та інших показників. Впишіть: - ```bash + ```bash - ./generate_cpu_load.sh 1000 & perf record -p $! sleep 5 - ``` + ./generate_cpu_load.sh 1000 & perf record -p $! sleep 5 + ``` - !!! tip "Підказка" + !!! tip "Підказка" - ``` - Параметр `sleep 5` з командою `perf record` визначає часове вікно для `perf` для збору даних про продуктивність щодо навантаження ЦП, створених сценарієм generate_cpu_load.sh. Це дозволяє `perf записувати показники продуктивності системи протягом 5 секунд перед автоматичною зупинкою. - ``` + ``` + Параметр `sleep 5` з командою `perf record` визначає часове вікно для `perf` для збору даних про продуктивність щодо навантаження ЦП, створених сценарієм generate_cpu_load.sh. Це дозволяє `perf записувати показники продуктивності системи протягом 5 секунд перед автоматичною зупинкою. + ``` #### Для аналізу даних про ефективність і моніторингу подій у реальному часі 1. Використовуйте команду `perf report`, щоб переглянути звіт про продуктивність, щоб зрозуміти шаблони використання процесора та пам’яті. Впишіть: - ```bash - sudo perf report - ``` + ```bash + sudo perf report + ``` - Ви можете використовувати різні клавіші клавіатури для подальшого вивчення звіту. - Введіть ++"q"++, щоб вийти з інтерфейсу перегляду звітів `perf`. + Ви можете використовувати різні клавіші клавіатури для подальшого вивчення звіту. + Введіть ++"q"++, щоб вийти з інтерфейсу перегляду звітів `perf`. 2. Спостерігайте/фіксуйте події кешу процесора в режимі реального часу протягом 40 секунд, щоб виявити потенційні вузькі місця продуктивності. Впишіть: - ```bash - sudo perf stat -e cache-references,cache-misses sleep 40 - ``` + ```bash + sudo perf stat -e cache-references,cache-misses sleep 40 + ``` #### Щоб записати повну продуктивність системи 1. Збирайте дані про продуктивність усієї системи, які можна використовувати для додаткового аналізу. Впишіть: - ```bash - sudo perf record -a sleep 10 - ``` + ```bash + sudo perf record -a sleep 10 + ``` 2. Досліджуйте лічильники конкретних подій. Підраховуйте конкретні події, як-от цикли процесора, щоб оцінити продуктивність певного сценарію чи програми. Давайте перевіримо за допомогою простої команди `find`, введіть: - ```bash - sudo perf stat -e cycles find /proc - ``` + ```bash + sudo perf stat -e cycles find /proc + ``` 3. Зробіть те саме, але зі сценарієм ./generate_cpu_load.sh. Підраховуйте певні події, як-от цикли ЦП, щоб оцінити продуктивність сценарію ./generate_cpu_load.sh. Впишіть: - ```bash - sudo perf stat -e cycles ./generate_cpu_load.sh 500 - ``` + ```bash + sudo perf stat -e cycles ./generate_cpu_load.sh 500 + ``` - Вихід: + Вихід: - ```bash - ...... - 3.141592653589793238462643383279502884197169399375105820974944592307\ - 81640628620899862803482534211..... + ```bash + ...... + 3.141592653589793238462643383279502884197169399375105820974944592307\ + 81640628620899862803482534211..... - Performance counter stats for './generate_cpu_load.sh 500': + Performance counter stats for './generate_cpu_load.sh 500': - 1,670,638,886 cycles + 1,670,638,886 cycles - 0.530479014 seconds time elapsed + 0.530479014 seconds time elapsed - 0.488580000 seconds user - 0.034628000 seconds sys - ``` + 0.488580000 seconds user + 0.034628000 seconds sys + ``` - !!! note "Примітка" + !!! note "Примітка" - ``` - Ось розбивка кінцевого зразка результату команди `perf stat`: - - *1,670,638,886 cycles*: Це вказує на загальну кількість циклів процесора, споживаних під час виконання сценарію. Кожен цикл являє собою один крок у виконанні інструкцій ЦП. + ``` + Ось розбивка кінцевого зразка результату команди `perf stat`: + + *1,670,638,886 cycles*: Це вказує на загальну кількість циклів процесора, споживаних під час виконання сценарію. Кожен цикл являє собою один крок у виконанні інструкцій ЦП. - *0.530479014 seconds time elapsed*: Це загальний реальний час (або час настінного годинника), що минув від початку до кінця виконання сценарію. Ця тривалість включає всі типи очікувань (наприклад, очікування дискового вводу-виводу або системних викликів). + *0.530479014 seconds time elapsed*: Це загальний реальний час (або час настінного годинника), що минув від початку до кінця виконання сценарію. Ця тривалість включає всі типи очікувань (наприклад, очікування дискового вводу-виводу або системних викликів). - *0.488580000 seconds user*: Це час роботи процесора в режимі користувача. Цей час явно виключає час, витрачений на виконання завдань системного рівня. + *0.488580000 seconds user*: Це час роботи процесора в режимі користувача. Цей час явно виключає час, витрачений на виконання завдань системного рівня. - *0.034628000 seconds sys*: Це час роботи процесора в режимі ядра або системи. Це включає час, який ЦП витрачає на виконання системних викликів або виконання інших завдань системного рівня від імені сценарію. - ``` + *0.034628000 seconds sys*: Це час роботи процесора в режимі ядра або системи. Це включає час, який ЦП витрачає на виконання системних викликів або виконання інших завдань системного рівня від імені сценарію. + ``` 4. Усе зроблено за допомогою інструмента `perf`. Переконайтеся, що фонові сценарії призначені для чистого робочого середовища. - ```bash - kill %1 - ``` + ```bash + kill %1 + ``` ## Завдання 3 @@ -253,92 +253,92 @@ tags: 1. Створіть простий сценарій під назвою `strace_script.sh` і зробіть його виконуваним. Впишіть: - ```bash - cat > ~/strace_script.sh << EOF - #!/bin/bash - while true; do - date - sleep 1 - done - EOF - chmod +x ~/strace_script.sh - ``` + ```bash + cat > ~/strace_script.sh << EOF + #!/bin/bash + while true; do + date + sleep 1 + done + EOF + chmod +x ~/strace_script.sh + ``` #### Щоб використовувати `strace` для запущених процесів 1. Запустіть сценарій і прикріпіть `strace`. Впишіть: - ```bash - ~/strace_script.sh & - ``` + ```bash + ~/strace_script.sh & + ``` 2. Знайдіть PID для процесу `strace_script.sh` в окремому терміналі. Зберігайте PID у змінній з іменем MYPID. Для цього ми використаємо команду `pgrep`, виконавши: - ```bash - export MYPID=$(pgrep strace_script) ; echo $MYPID - ``` + ```bash + export MYPID=$(pgrep strace_script) ; echo $MYPID + ``` - Вихід: + Вихід: - ```bash - 4006301 - ``` + ```bash + 4006301 + ``` 3. Почніть відстежувати системні виклики сценарію, щоб зрозуміти, як він взаємодіє з ядром. Приєднайте `strace` до запущеного процесу сценарію, ввівши: - ```bash - sudo strace -p $MYPID - ``` + ```bash + sudo strace -p $MYPID + ``` 4. Від’єднайте або зупиніть процес `strace`, ввівши ++ctrl+c++ 5. Вихід `strace` можна відфільтрувати, зосередившись на певних системних викликах, таких як `open` і `read`, щоб проаналізувати їх поведінку. Спробуйте зробити це для системних викликів `open` і `read`. Впишіть: - ```bash - sudo strace -e trace=open,read -p $MYPID - ``` + ```bash + sudo strace -e trace=open,read -p $MYPID + ``` - Коли ви завершите спробу розшифрувати вихідні дані `strace`, зупиніть процес `strace`, ввівши ++ctrl+c++ + Коли ви завершите спробу розшифрувати вихідні дані `strace`, зупиніть процес `strace`, ввівши ++ctrl+c++ 6. Перенаправте вихідні дані у файл для подальшого аналізу, який може допомогти діагностувати проблеми. Збережіть вивід `strace` у файл, виконавши: - ```bash - sudo strace -o strace_output.txt -p $MYPID - ``` + ```bash + sudo strace -o strace_output.txt -p $MYPID + ``` #### Для аналізу частоти системних викликів 1. Узагальніть кількість системних викликів, щоб визначити системні виклики, які найчастіше використовуються процесом. Зробіть це лише на 10 секунд, додавши команду `timeout`. Впишіть: - ```bash - sudo timeout 10 strace -c -p $MYPID - ``` - - Наша зразкова система показує підсумковий звіт таким чином: - - Вихід: - - ```bash - strace: Process 4006301 attached - strace: Process 4006301 detached - % time seconds usecs/call calls errors syscall - ------ ----------- ----------- --------- --------- ---------------- - 89.59 0.042553 1182 36 18 wait4 - 7.68 0.003648 202 18 clone - 1.67 0.000794 5 144 rt_sigprocmask - 0.45 0.000215 5 36 rt_sigaction - 0.36 0.000169 9 18 ioctl - 0.25 0.000119 6 18 rt_sigreturn - ------ ----------- ----------- --------- --------- ---------------- - 100.00 0.047498 175 270 18 total - ``` + ```bash + sudo timeout 10 strace -c -p $MYPID + ``` + + Наша зразкова система показує підсумковий звіт таким чином: + + Вихід: + + ```bash + strace: Process 4006301 attached + strace: Process 4006301 detached + % time seconds usecs/call calls errors syscall + ------ ----------- ----------- --------- --------- ---------------- + 89.59 0.042553 1182 36 18 wait4 + 7.68 0.003648 202 18 clone + 1.67 0.000794 5 144 rt_sigprocmask + 0.45 0.000215 5 36 rt_sigaction + 0.36 0.000169 9 18 ioctl + 0.25 0.000119 6 18 rt_sigreturn + ------ ----------- ----------- --------- --------- ---------------- + 100.00 0.047498 175 270 18 total + ``` 2. Припиніть виконання сценарію та видаліть усі створені файли. - ```bash - kill $MYPID - rm ~/strace_script.sh ~/strace_output.txt - ``` + ```bash + kill $MYPID + rm ~/strace_script.sh ~/strace_output.txt + ``` ## Завдання 4 @@ -350,45 +350,45 @@ tags: 1. Встановіть програму `atop`, якщо вона не встановлена на вашому сервері. Впишіть: - ```bash - sudo dnf -y install atop - ``` + ```bash + sudo dnf -y install atop + ``` 2. Запустіть `atop`, ввівши: - ```bash - sudo atop - ``` + ```bash + sudo atop + ``` 3. В інтерфейсі `atop` ви можете досліджувати різні показники `atop`, натискаючи певні клавіші на клавіатурі. - Використовуйте 'm', 'd' або 'n' для перемикання між переглядами пам'яті, диска або мережі. Спостерігайте, як використовуються ресурси в реальному часі. + Використовуйте 'm', 'd' або 'n' для перемикання між переглядами пам'яті, диска або мережі. Спостерігайте, як використовуються ресурси в реальному часі. 4. Відстежуйте продуктивність системи з користувацьким інтервалом у 2 секунди, що дозволяє більш детально переглядати діяльність системи. Впишіть: - ```bash - sudo atop 2 - ``` + ```bash + sudo atop 2 + ``` 5. Перемикайтеся між різними видами ресурсів, щоб зосередитися на конкретних аспектах продуктивності системи. 6. Створіть звіт із файлу журналу про діяльність системи, збираючи дані кожні 60 секунд, тричі. Впишіть: - ```bash - sudo atop -w /tmp/atop_log 60 3 - ``` + ```bash + sudo atop -w /tmp/atop_log 60 3 + ``` 7. Після виконання попередньої команди ви можете не поспішати та переглянути двійковий файл, у якому було збережено журнали. Щоб прочитати збережений файл журналу, введіть: - ```bash - sudo atop -r /tmp/atop_log - ``` + ```bash + sudo atop -r /tmp/atop_log + ``` 8. Очистіть, видаливши всі створені журнали або файли. - ```bash - sudo rm /tmp/atop_log - ``` + ```bash + sudo rm /tmp/atop_log + ``` ## Завдання 5 @@ -403,54 +403,54 @@ NUMA означає "нерівномірний доступ до пам'яті" 1. Встановіть програму `numactl`, якщо вона не встановлена на вашому сервері. Впишіть: - ```bash - sudo dnf -y install numactl - ``` + ```bash + sudo dnf -y install numactl + ``` #### Для створення сценарію, що потребує великої кількості пам’яті 1. Створіть простий сценарій, який допоможе імітувати робоче навантаження з інтенсивним використанням пам’яті на вашому сервері. Впишіть: - ```bash - cat > ~/memory_intensive.sh << EOF - #!/bin/bash + ```bash + cat > ~/memory_intensive.sh << EOF + #!/bin/bash - awk 'BEGIN{for(i=0;i<1000000;i++)for(j=0;j<1000;j++);}{}' - EOF - chmod +x ~/memory_intensive.sh - ``` + awk 'BEGIN{for(i=0;i<1000000;i++)for(j=0;j<1000;j++);}{}' + EOF + chmod +x ~/memory_intensive.sh + ``` #### Щоб використовувати `numactl` 1. Запустіть сценарій за допомогою `numactl`, введіть: - ```bash - numactl --membind=0 ~/memory_intensive.sh - ``` + ```bash + numactl --membind=0 ~/memory_intensive.sh + ``` 2. Якщо ваша система має більше ніж один доступний вузол NUMA, ви можете запустити сценарій на кількох вузлах NUMA за допомогою: - ```bash - numactl --cpunodebind=0,1 --membind=0,1 ~/memory_intensive.sh - ``` + ```bash + numactl --cpunodebind=0,1 --membind=0,1 ~/memory_intensive.sh + ``` 3. Покажіть розподіл пам'яті на вузлах NUMA - ```bash - numactl --show - ``` + ```bash + numactl --show + ``` 4. Прив’яжіть пам’ять до певного вузла, виконавши: - ```bash - numactl --membind=0 ~/memory_intensive.sh - ``` + ```bash + numactl --membind=0 ~/memory_intensive.sh + ``` 5. Очистіть своє робоче середовище, видаливши сценарій. - ```bash - rm ~/memory_intensive.sh - ``` + ```bash + rm ~/memory_intensive.sh + ``` ## Завдання 6 @@ -462,19 +462,19 @@ NUMA означає "нерівномірний доступ до пам'яті" 1. Встановіть утиліту `iotop`, якщо вона не встановлена. Впишіть: - ```bash - sudo dnf -y install iotop - ``` + ```bash + sudo dnf -y install iotop + ``` #### Щоб використовувати `iotop` для моніторингу дискового введення-виведення 1. Запустіть команду `iotop` без будь-яких параметрів, щоб використовувати її в інтерактивному режимі за замовчуванням. Впишіть: - ```bash - sudo iotop - ``` + ```bash + sudo iotop + ``` - Спостерігайте за використанням живого диска вводу-виводу різними процесами. Використовуйте це для визначення процесів, які зараз читають або записують на диск. + Спостерігайте за використанням живого диска вводу-виводу різними процесами. Використовуйте це для визначення процесів, які зараз читають або записують на диск. 2. Введіть ++"q"++, щоб вийти з `iotop`. @@ -482,27 +482,27 @@ NUMA означає "нерівномірний доступ до пам'яті" 1. Запустіть `iotop` у пакетному режимі (-b), щоб отримати неінтерактивний одноразовий перегляд використання введення-виведення. Параметр `-n 10` повідомляє `iotop` взяти 10 зразків перед виходом. - ```bash - sudo iotop -b -n 10 - ``` + ```bash + sudo iotop -b -n 10 + ``` 2. `iotop` може фільтрувати введення/виведення для певних процесів. Визначте ідентифікатор процесу (PID) у вашій системі за допомогою команди ps або дисплея `iotop`. Потім відфільтруйте вихідні дані `iotop` для цього конкретного PID. Наприклад, фільтруйте PID для процесу `sshd`, виконавши: - ```bash - sudo iotop -p $(pgrep sshd | head -1) - ``` + ```bash + sudo iotop -p $(pgrep sshd | head -1) + ``` 3. Опцію -`o` з `iotop` можна використовувати для показу процесів або потоків, які виконують фактичний ввід-вивід, замість відображення всіх процесів або потоків. Відобразити лише процеси вводу-виводу, виконавши: - ```bash - sudo iotop -o - ``` + ```bash + sudo iotop -o + ``` - !!! Question "Обговорення" + !!! Question "Обговорення" - ``` - Обговоріть вплив дискового вводу-виводу на загальну продуктивність системи та як такі інструменти, як `iotop`, можуть допомогти в оптимізації системи. - ``` + ``` + Обговоріть вплив дискового вводу-виводу на загальну продуктивність системи та як такі інструменти, як `iotop`, можуть допомогти в оптимізації системи. + ``` ## Завдання 7 @@ -516,141 +516,141 @@ NUMA означає "нерівномірний доступ до пам'яті" 1. Використовуйте команду `ls`, щоб дослідити вміст і структуру файлової системи `cgroup`. Впишіть: - ```bash - ls /sys/fs/cgroup/ - ``` + ```bash + ls /sys/fs/cgroup/ + ``` 2. Знову скористайтеся командою `ls`, щоб отримати список папок \*.slice у файловій системі `cgroup`. Впишіть: - ```bash - ls -d /sys/fs/cgroup/*.slice - ``` + ```bash + ls -d /sys/fs/cgroup/*.slice + ``` - Папки з суфіксом .slice зазвичай використовуються в `systemd` для представлення фрагмента системних ресурсів. Це стандартні `cgroups`, якими керує `systemd` для організації та керування системними процесами. + Папки з суфіксом .slice зазвичай використовуються в `systemd` для представлення фрагмента системних ресурсів. Це стандартні `cgroups`, якими керує `systemd` для організації та керування системними процесами. ### Щоб створити власну `cgroup` 1. Створіть каталог під назвою "exercise_group" у файловій системі /sys/fs/cgroup. У цій новій папці будуть розміщені структури контрольних груп, необхідні для решти цієї вправи. Використовуйте команду `mkdir`, ввівши: - ```bash - sudo mkdir -p /sys/fs/cgroup/exercise_group - ``` + ```bash + sudo mkdir -p /sys/fs/cgroup/exercise_group + ``` 2. Тепер перелічіть файли та каталоги в структурі /sys/fs/cgroup/exercise_group. Впишіть: - ```bash - sudo ls /sys/fs/cgroup/exercise_group/ - ``` + ```bash + sudo ls /sys/fs/cgroup/exercise_group/ + ``` - Вихідні дані показують файли та каталоги, автоматично створені підсистемою `cgroup` для керування та моніторингу ресурсів для `cgroup`. + Вихідні дані показують файли та каталоги, автоматично створені підсистемою `cgroup` для керування та моніторингу ресурсів для `cgroup`. #### Щоб встановити новий ліміт ресурсу пам'яті 1. Давайте встановимо обмеження ресурсу пам’яті, щоб обмежити використання пам’яті до 4096 байт (4 КБ). Щоб обмежити процеси в `cgroup` використовувати максимум 4 Кб пам'яті типу: - ```bash - echo 4096 | sudo tee /sys/fs/cgroup/exercise_group/memory.max - ``` + ```bash + echo 4096 | sudo tee /sys/fs/cgroup/exercise_group/memory.max + ``` 2. Підтвердьте, що ліміт пам’яті встановлено. Впишіть: - ```bash - cat /sys/fs/cgroup/exercise_group/memory.max - ``` + ```bash + cat /sys/fs/cgroup/exercise_group/memory.max + ``` #### Щоб створити тестовий сценарій memory_stress 1. Створіть простий виконуваний сценарій за допомогою команди `dd`, щоб перевірити обмеження ресурсу пам’яті. Впишіть: - ```bash - cat > ~/memory_stress.sh << EOF - #!/bin/bash - dd if=/dev/zero of=/tmp/stress_test bs=10M count=2000 - EOF - chmod +x ~/memory_stress.sh - ``` + ```bash + cat > ~/memory_stress.sh << EOF + #!/bin/bash + dd if=/dev/zero of=/tmp/stress_test bs=10M count=2000 + EOF + chmod +x ~/memory_stress.sh + ``` #### Щоб запустити та додати процес/сценарій до `cgroup` пам'яті 1. Запустіть memory_stress.sh, запишіть його PID і додайте PID до group.procs. Впишіть: - ```bash - ~/memory_stress.sh & - echo $! | sudo tee /sys/fs/cgroup/exercise_group/cgroup.procs - ``` + ```bash + ~/memory_stress.sh & + echo $! | sudo tee /sys/fs/cgroup/exercise_group/cgroup.procs + ``` - Файл /sys/fs/cgroup/exercise_group/cgroup.procs можна використовувати для додавання або перегляду PID (ідентифікаторів процесів) процесів, які є членами даної `cgroup`. Запис PID до цього файлу призначає процес сценарію ~/memory_stress.sh групі `cgroup`. + Файл /sys/fs/cgroup/exercise_group/cgroup.procs можна використовувати для додавання або перегляду PID (ідентифікаторів процесів) процесів, які є членами даної `cgroup`. Запис PID до цього файлу призначає процес сценарію ~/memory_stress.sh групі `cgroup`. 2. Попередня команда завершиться дуже швидко, тому що вона перевищила обмеження пам’яті `cgroup`. Ви можете запустити таку команду `journalctl` в іншому терміналі, щоб переглянути помилку, як вона відбувається. Впишіть: - ```bash - journalctl -xe -f | grep -i memory - ``` + ```bash + journalctl -xe -f | grep -i memory + ``` - !!! Tip "Порада" + !!! Tip "Порада" - ```` - Ви можете швидко скористатися командою ps, щоб перевірити приблизне використання пам'яті процесом, якщо вам відомий PID процесу, запустивши: + ```` + Ви можете швидко скористатися командою ps, щоб перевірити приблизне використання пам'яті процесом, якщо вам відомий PID процесу, запустивши: - ```bash - pidof | xargs ps -o pid,comm,rss - ``` + ```bash + pidof | xargs ps -o pid,comm,rss + ``` - Цей вихід має відображати розмір резидентного набору (RSS) у КБ, що вказує на пам’ять, яку використовує вказаний процес у певний момент часу. Кожного разу, коли значення RSS процесу перевищує ліміт пам’яті, вказаний у значенні memory.max `cgroup's`, процес може підлягати політикам керування пам’яттю, які застосовуються ядром або самою `cgroup`. Залежно від конфігурації системи, система може виконувати такі дії, як обмеження використання пам’яті процесом, припинення процесу або ініціювання події браку пам’яті (OOM). - ```` + Цей вихід має відображати розмір резидентного набору (RSS) у КБ, що вказує на пам’ять, яку використовує вказаний процес у певний момент часу. Кожного разу, коли значення RSS процесу перевищує ліміт пам’яті, вказаний у значенні memory.max `cgroup's`, процес може підлягати політикам керування пам’яттю, які застосовуються ядром або самою `cgroup`. Залежно від конфігурації системи, система може виконувати такі дії, як обмеження використання пам’яті процесом, припинення процесу або ініціювання події браку пам’яті (OOM). + ```` #### Щоб установити новий ліміт ресурсу ЦП 1. Обмежте використання сценарієм лише 10% ядра ЦП. Впишіть: - ```bash - echo 10000 | sudo tee /sys/fs/cgroup/exercise_group/cpu.max - ``` + ```bash + echo 10000 | sudo tee /sys/fs/cgroup/exercise_group/cpu.max + ``` - 10000 означає обмеження пропускної здатності ЦП. Його встановлено на 10% від загальної потужності одного ядра ЦП. + 10000 означає обмеження пропускної здатності ЦП. Його встановлено на 10% від загальної потужності одного ядра ЦП. 2. Переконайтеся, що встановлено обмеження ЦП. Впишіть: - ```bash - cat /sys/fs/cgroup/exercise_group/cpu.max - ``` + ```bash + cat /sys/fs/cgroup/exercise_group/cpu.max + ``` #### Щоб створити сценарій стрес-тесту ЦП 1. Створюйте та встановлюйте дозволи на виконання для сценарію, щоб генерувати високе використання ЦП. Впишіть: - ```bash - cat > ~/cpu_stress.sh << EOF - #!/bin/bash - exec yes > /dev/null - EOF - chmod +x ~/cpu_stress.sh - ``` + ```bash + cat > ~/cpu_stress.sh << EOF + #!/bin/bash + exec yes > /dev/null + EOF + chmod +x ~/cpu_stress.sh + ``` - !!! note "Примітка" + !!! note "Примітка" - ``` - `yes > /dev/null` — це проста команда, яка створює високе навантаження на ЦП. - ``` + ``` + `yes > /dev/null` — це проста команда, яка створює високе навантаження на ЦП. + ``` #### Щоб запустити та додати процес/сценарій до CPU `cgroup` 1. Запустіть сценарій і негайно додайте його PID до `cgroup`, ввівши: - ```bash - ~/cpu_stress.sh & - echo $! | sudo tee /sys/fs/cgroup/exercise_group/cgroup.procs - ``` + ```bash + ~/cpu_stress.sh & + echo $! | sudo tee /sys/fs/cgroup/exercise_group/cgroup.procs + ``` #### Щоб підтвердити контроль використання ЦП процесу 1. Перевірте використання процесора процесом. - ```bash - pidof yes | xargs top -b -n 1 -p - ``` + ```bash + pidof yes | xargs top -b -n 1 -p + ``` - Вихідні дані мають показувати використання ЦП у реальному часі процесом yes. %CPU для так має бути обмежено конфігурацією `cgroup` (наприклад, близько 10%, якщо обмеження встановлено на 10000). + Вихідні дані мають показувати використання ЦП у реальному часі процесом yes. %CPU для так має бути обмежено конфігурацією `cgroup` (наприклад, близько 10%, якщо обмеження встановлено на 10000). 2. Встановіть та поекспериментуйте з іншими значеннями для cpu.max для `cgroup` групи виконання, а потім спостерігайте за ефектом кожного разу, коли ви повторно запускаєте сценарій ~/cpu_stress.sh у контрольній групі. @@ -660,74 +660,74 @@ NUMA означає "нерівномірний доступ до пам'яті" 1. По-перше, давайте створимо набір допоміжних змінних для визначення та збереження номера пристрою для основного пристрою зберігання на сервері. Впишіть: - ```bash - primary_device=$(lsblk | grep disk | awk '{print $1}' | head -n 1) - primary_device_num=$(ls -l /dev/$primary_device | awk '{print $5, $6}' | sed 's/,/:/') - ``` + ```bash + primary_device=$(lsblk | grep disk | awk '{print $1}' | head -n 1) + primary_device_num=$(ls -l /dev/$primary_device | awk '{print $5, $6}' | sed 's/,/:/') + ``` 2. Далі, відобразимо значення змінної $primary_device_num. Впишіть: - ```bash - echo "Primary Storage Device Number: $primary_device_num" - ``` + ```bash + echo "Primary Storage Device Number: $primary_device_num" + ``` 3. Головний і допоміжний номери пристроїв мають відповідати тому, що ви бачите в цьому виведеному файлі ls: - ```bash - ls -l /dev/$primary_device - ``` + ```bash + ls -l /dev/$primary_device + ``` #### Щоб установити нове обмеження ресурсів введення-виведення 1. Встановіть операції вводу/виводу на 1 МБ/с для процесів читання та запису в `cgroup` групи виконання. Впишіть: - ```bash - echo "$primary_device_num rbps=1048576 wbps=1048576" | \ - sudo tee /sys/fs/cgroup/exercise_group/io.max - ``` + ```bash + echo "$primary_device_num rbps=1048576 wbps=1048576" | \ + sudo tee /sys/fs/cgroup/exercise_group/io.max + ``` 2. Підтвердьте встановлені обмеження введення/виведення. Впишіть: - ```bash - cat /sys/fs/cgroup/exercise_group/io.max - ``` + ```bash + cat /sys/fs/cgroup/exercise_group/io.max + ``` #### Щоб створити процес стрес-тесту вводу-виводу 1. Запустіть процес `dd`, щоб створити великий файл з назвою `/tmp/io_stress`. Також запишіть і збережіть PID процесу dd у змінній під назвою `MYPID`. Впишіть: - ```bash - dd if=/dev/zero of=/tmp/io_stress bs=10M count=500 oflag=dsync \ - & export MYPID=$! - ``` + ```bash + dd if=/dev/zero of=/tmp/io_stress bs=10M count=500 oflag=dsync \ + & export MYPID=$! + ``` #### Щоб додати процес/сценарій до `cgroup` вводу/виводу 1. Додайте PID попереднього процесу dd до елемента керування exercise_group `cgroup`. Впишіть: - ```bash - echo $MYPID | sudo tee /sys/fs/cgroup/exercise_group/cgroup.procs - ``` + ```bash + echo $MYPID | sudo tee /sys/fs/cgroup/exercise_group/cgroup.procs + ``` #### Щоб підтвердити контроль використання ресурсів введення-виведення процесу 1. Перевірте використання вводу-виводу процесом, виконавши: - ```bash - iotop -p $MYPID - ``` + ```bash + iotop -p $MYPID + ``` - На виході буде відображено швидкість читання/запису вводу-виводу для процесу io_stress.sh, яка не повинна перевищувати 1 МБ/с відповідно до обмеження. + На виході буде відображено швидкість читання/запису вводу-виводу для процесу io_stress.sh, яка не повинна перевищувати 1 МБ/с відповідно до обмеження. #### Щоб видалити `cgroups` 1. Введіть наступні команди, щоб завершити будь-який фоновий процес, видалити непотрібну `cgroup` і видалити файл /tmp/io_stress. - ```bash - kill %1 - sudo rmdir /sys/fs/cgroup/exercise_group/ - sudo rm -rf /tmp/io_stress - ``` + ```bash + kill %1 + sudo rmdir /sys/fs/cgroup/exercise_group/ + sudo rm -rf /tmp/io_stress + ``` ## Завдання 8 @@ -739,89 +739,89 @@ CPU affinity прив’язує конкретні процеси або пот 1. Використовуйте `lscpu`, щоб отримати список доступних ЦП у вашій системі. Впишіть: - ```bash - lscpu | grep "On-line" - ``` + ```bash + lscpu | grep "On-line" + ``` 2. Створіть зразок процесу за допомогою утиліти `dd` і збережіть його PID у змінній `MYPID`. Впишіть: - ```bash - dd if=/dev/zero of=/dev/null & export MYPID="$!" - echo $MYPID - ``` + ```bash + dd if=/dev/zero of=/dev/null & export MYPID="$!" + echo $MYPID + ``` 3. Отримайте поточну спорідненість для процесу `dd`. Впишіть: - ```bash - taskset -p $MYPID - ``` + ```bash + taskset -p $MYPID + ``` - Вихід: + Вихід: - ```bash - pid 1211483's current affinity mask: f - ``` + ```bash + pid 1211483's current affinity mask: f + ``` - Вихідні дані показують маску спорідненості ЦП процесу з PID 1211483 ($MYPID), представленим у шістнадцятковому форматі. У нашому прикладі системи відображається маска спорідненості «f», що зазвичай означає, що процес може виконуватися на будь-якому ядрі ЦП. + Вихідні дані показують маску спорідненості ЦП процесу з PID 1211483 ($MYPID), представленим у шістнадцятковому форматі. У нашому прикладі системи відображається маска спорідненості «f», що зазвичай означає, що процес може виконуватися на будь-якому ядрі ЦП. - !!! note "Примітка" + !!! note "Примітка" - ``` - Маска спорідненості ЦП "f" представляє конфігурацію, у якій увімкнено всі ядра ЦП. У шістнадцятковій системі числення «f» відповідає двійковому значенню «1111». Кожен біт у двійковому представленні відповідає ядру ЦП, причому «1» означає, що ядро ввімкнено та доступне для виконання процесу. + ``` + Маска спорідненості ЦП "f" представляє конфігурацію, у якій увімкнено всі ядра ЦП. У шістнадцятковій системі числення «f» відповідає двійковому значенню «1111». Кожен біт у двійковому представленні відповідає ядру ЦП, причому «1» означає, що ядро ввімкнено та доступне для виконання процесу. - Тому на чотириядерному процесорі з маскою "f": + Тому на чотириядерному процесорі з маскою "f": - Core 0: Enabled - Core 1: Enabled - Core 2: Enabled - Core 3: Enabled - ``` + Core 0: Enabled + Core 1: Enabled + Core 2: Enabled + Core 3: Enabled + ``` ### Щоб встановити/змінити схожість ЦП 1. Встановіть афінність процесора для процесу `dd` на один процесор (процесор 0). Впишіть: - ```bash - taskset -p 0x1 $MYPID - ``` + ```bash + taskset -p 0x1 $MYPID + ``` - ВИХІД + ВИХІД - ```bash - pid 1211483's current affinity mask: f - pid 1211483's new affinity mask: 1 - ``` + ```bash + pid 1211483's current affinity mask: f + pid 1211483's new affinity mask: 1 + ``` 2. Перевірте зміни, виконавши: - ```bash - taskset -p $MYPID - ``` + ```bash + taskset -p $MYPID + ``` - Вихідні дані вказують маску афінності процесора процесу з PID `$MYPID`. Маска спорідненості дорівнює «1» у десятковій системі, що перекладається як «1» у двійковій системі. Це означає, що процес наразі прив’язаний до ядра ЦП 0. + Вихідні дані вказують маску афінності процесора процесу з PID `$MYPID`. Маска спорідненості дорівнює «1» у десятковій системі, що перекладається як «1» у двійковій системі. Це означає, що процес наразі прив’язаний до ядра ЦП 0. 3. Тепер встановіть афінність процесора для процесу `dd` на кілька процесорів (процесори 0 і 1). Впишіть: - ```bash - taskset -p 0x3 $MYPID - ``` + ```bash + taskset -p 0x3 $MYPID + ``` 4. Видайте правильну команду `tasksel`, щоб перевірити останню зміну. - ```bash - taskset -p $MYPID - ``` + ```bash + taskset -p $MYPID + ``` - На нашому демонстраційному 4-ядерному сервері ЦП результат показує, що маска спорідненості ЦП процесу дорівнює «3» (у десятковому вигляді). Це означає «11» у двійковій системі. + На нашому демонстраційному 4-ядерному сервері ЦП результат показує, що маска спорідненості ЦП процесу дорівнює «3» (у десятковому вигляді). Це означає «11» у двійковій системі. - !!! tip "Підказка" + !!! tip "Підказка" - ``` - Десятковий "3" дорівнює "11" (або 0011) у двійковій системі. - Кожна двійкова цифра відповідає ядру ЦП: ядро 0, ядро 1, ядро 2, ядро 3 (справа наліво). - Цифра «1» на четвертій і третій позиціях (справа) означає, що процес може працювати на ядрах 0 і 1. - Тому «3» означає, що процес прив’язаний до ядер ЦП 0 і 1. - ``` + ``` + Десятковий "3" дорівнює "11" (або 0011) у двійковій системі. + Кожна двійкова цифра відповідає ядру ЦП: ядро 0, ядро 1, ядро 2, ядро 3 (справа наліво). + Цифра «1» на четвертій і третій позиціях (справа) означає, що процес може працювати на ядрах 0 і 1. + Тому «3» означає, що процес прив’язаний до ядер ЦП 0 і 1. + ``` 5. Запустіть утиліту `top` або `htop` в окремому терміналі та спостерігайте, якщо ви бачите щось цікаве, експериментуючи з різними конфігураціями `taskset` для процесу. @@ -839,86 +839,86 @@ CPU affinity прив’язує конкретні процеси або пот 1. Запустіть просту команду sleep 300 як тимчасову службу `systemd` за допомогою `systemd-run`. Впишіть: - ```bash - systemd-run --unit=mytransient.service --description="Example Service" sleep 300 - ``` + ```bash + systemd-run --unit=mytransient.service --description="Example Service" sleep 300 + ``` 2. Перевірте статус тимчасової служби за допомогою `systemctl status`. Впишіть: - ```bash - systemctl status mytransient.service - ``` + ```bash + systemctl status mytransient.service + ``` #### Щоб установити обмеження ресурсу пам’яті для тимчасової служби 1. Використовуйте параметр `--property` разом із `systemd-run`, щоб обмежити максимальне використання пам’яті для тимчасового процесу до 200 Мб. Впишіть: - ```bash - systemd-run --unit=mylimited.service --property=MemoryMax=200M sleep 300 - ``` + ```bash + systemd-run --unit=mylimited.service --property=MemoryMax=200M sleep 300 + ``` 2. Подивіться у відповідній файловій системі `cgroup` процес перевірки налаштування. Впишіть: - ```bash - sudo cat /sys/fs/cgroup/system.slice/mytransient.service/memory.max - ``` + ```bash + sudo cat /sys/fs/cgroup/system.slice/mytransient.service/memory.max + ``` - !!! tip "Підказка" + !!! tip "Підказка" - ``` - `systemd.resource-control` — це конфігурація або керуюча сутність (концепція) у рамках `systemd`, призначена для керування та розподілу системних ресурсів для процесів і служб. А `systemd.exec` — це компонент `systemd`, який відповідає за визначення середовища виконання, у якому виконуються команди. Щоб переглянути різні параметри (властивості), які ви можете налаштувати під час використання systemd-run, зверніться до сторінок посібника `systemd.resource-control` і `systemd.exec`. Тут ви знайдете документацію для таких властивостей, як MemoryMax, CPUAccounting, IOWeight тощо. - ``` + ``` + `systemd.resource-control` — це конфігурація або керуюча сутність (концепція) у рамках `systemd`, призначена для керування та розподілу системних ресурсів для процесів і служб. А `systemd.exec` — це компонент `systemd`, який відповідає за визначення середовища виконання, у якому виконуються команди. Щоб переглянути різні параметри (властивості), які ви можете налаштувати під час використання systemd-run, зверніться до сторінок посібника `systemd.resource-control` і `systemd.exec`. Тут ви знайдете документацію для таких властивостей, як MemoryMax, CPUAccounting, IOWeight тощо. + ``` #### Щоб установити обмеження на ресурс ЦП для тимчасової служби 1. Давайте створимо тимчасовий блок `systemd` під назвою "myrealtime.service". Запустіть `myrealtime.service` із певною політикою планування round robin (rr) та пріоритетом. Впишіть: - ```bash - systemd-run --unit=myrealtime.service \ - --property=CPUSchedulingPolicy=rr --property=CPUSchedulingPriority=50 sleep 300 - ``` + ```bash + systemd-run --unit=myrealtime.service \ + --property=CPUSchedulingPolicy=rr --property=CPUSchedulingPriority=50 sleep 300 + ``` 2. Перевірте статус `myrealtime.service`. Крім того, захопіть/збережіть основний [sleep] PID у змінній під назвою MYPID. Впишіть: - ```bash - MYPID=$(systemctl status myrealtime.service | awk '/Main PID/ {print $3}') - ``` + ```bash + MYPID=$(systemctl status myrealtime.service | awk '/Main PID/ {print $3}') + ``` 3. Поки служба все ще працює, перевірте її політику планування ЦП. Впишіть: - ```bash - chrt -p $MYPID - pid 2553792's current scheduling policy: SCHED_RR - pid 2553792's current scheduling priority: 50 - ``` + ```bash + chrt -p $MYPID + pid 2553792's current scheduling policy: SCHED_RR + pid 2553792's current scheduling priority: 50 + ``` ### Щоб створити блок перехідного часу 1. Створіть простий таймер, який виконує просту команду echo. Параметр `--on-active=2m` встановлює таймер на спрацьовування через 2 хвилини після того, як блок таймера стане активним. Впишіть: - ```bash - systemd-run --on-active=2m --unit=mytimer.timer \ - --description="Example Timer" echo "Timer triggered" - ``` + ```bash + systemd-run --on-active=2m --unit=mytimer.timer \ + --description="Example Timer" echo "Timer triggered" + ``` - Таймер почне відлік часу з моменту активації пристрою і через 2 хвилини запустить вказану дію. + Таймер почне відлік часу з моменту активації пристрою і через 2 хвилини запустить вказану дію. 2. Переглянути деталі/статус щойно створеного таймера. Впишіть: - ```bash - systemctl status mytimer.timer - ``` + ```bash + systemctl status mytimer.timer + ``` #### Щоб зупинити та очистити тимчасові блоки `systemd` 1. Введіть наступні команди, щоб переконатися, що різні тимчасові служби/процеси, запущені для цієї вправи, належним чином зупинені та видалені з вашої системи. Впишіть: - ```bash - systemctl stop mytransient.service - systemctl stop mylimited.service - systemctl stop myrealtime.service - systemctl stop mytimer.timer - ``` + ```bash + systemctl stop mytransient.service + systemctl stop mylimited.service + systemctl stop myrealtime.service + systemctl stop mytimer.timer + ``` ## Вправа 10 @@ -930,97 +930,97 @@ CPU affinity прив’язує конкретні процеси або пот 1. Встановіть програму `schedtool`, якщо вона не встановлена на вашому сервері. Впишіть: - ```bash - sudo dnf -y install schedtool - ``` + ```bash + sudo dnf -y install schedtool + ``` #### Щоб створити імітований сценарій процесу 1. Створіть сценарій, який генерує навантаження на процесор для цілей тестування. Впишіть: - ```bash - cat > ~/cpu_load_generator.sh << EOF - #!/bin/bash - while true; do - openssl speed > /dev/null 2>&1 - openssl speed > /dev/null 2>&1 - - done - EOF - chmod +x ~/cpu_load_generator.sh - ``` + ```bash + cat > ~/cpu_load_generator.sh << EOF + #!/bin/bash + while true; do + openssl speed > /dev/null 2>&1 + openssl speed > /dev/null 2>&1 + + done + EOF + chmod +x ~/cpu_load_generator.sh + ``` 2. Запустіть сценарій у фоновому режимі. Впишіть: - ```bash - ~/cpu_load_generator.sh & echo $! - ``` + ```bash + ~/cpu_load_generator.sh & echo $! + ``` 3. Зафіксуйте PID для основного процесу `openssl`, запущеного в скрипті `cpu_load_generator.sh`. Збережіть PID у змінній з іменем `$MYPID`. Впишіть: - ```bash - export MYPID=$(pidof openssl) ; echo $MYPID - ``` + ```bash + export MYPID=$(pidof openssl) ; echo $MYPID + ``` #### Щоб використовувати `schedtool` для перевірки поточної політики планування 1. Використовуйте команду `schedtool`, щоб відобразити інформацію про планування процесу з PID `$MYPID`. Впишіть: - ```bash - schedtool $MYPID - ``` + ```bash + schedtool $MYPID + ``` - Вихід: + Вихід: - ```bash - PID 2565081: PRIO 0, POLICY N: SCHED_NORMAL , NICE 0, AFFINITY 0xf - ``` + ```bash + PID 2565081: PRIO 0, POLICY N: SCHED_NORMAL , NICE 0, AFFINITY 0xf + ``` #### Щоб використовувати `schedtool` для зміни політики планування 1. Змініть політику планування та пріоритет процесу FIFO та 10 відповідно. Впишіть: - ```bash - sudo schedtool -F -p 10 $! - ``` + ```bash + sudo schedtool -F -p 10 $! + ``` 2. Перегляньте ефект від змін. Впишіть: - ```bash - schedtool $MYPID - ``` + ```bash + schedtool $MYPID + ``` 3. Змініть політику планування та пріоритет процесу на циклічний або SCHED_RR (RR) і 50 відповідно. Впишіть: - ```bash - sudo schedtool -R -p 50 $MYPID - ``` + ```bash + sudo schedtool -R -p 50 $MYPID + ``` 4. Перегляньте ефект від змін. Впишіть: - ```bash - schedtool $MYPID - ``` + ```bash + schedtool $MYPID + ``` 5. Змініть політику планування процесу на Idle або SCHED_IDLEPRIO (D). Впишіть: - ```bash - sudo schedtool -D $MYPID - ``` + ```bash + sudo schedtool -D $MYPID + ``` 6. Перегляньте ефект від змін. 7. Нарешті, скиньте політику планування процесу назад до початкового стандартного SCHED_NORMAL (N або інше). Впишіть: - ```bash - sudo schedtool -N $MYPID - ``` + ```bash + sudo schedtool -N $MYPID + ``` #### Щоб завершити та очистити процес `cpu_load_generator.sh` 1. Все готово. Завершіть сценарій і видаліть сценарій `cpu_load_generator.sh`. - ```bash - kill $MYPID - rm ~/cpu_load_generator.sh - ``` + ```bash + kill $MYPID + rm ~/cpu_load_generator.sh + ``` From f3e103b19f7614f3884f0fb3d39532e6f6659db1 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:32 -0400 Subject: [PATCH 013/167] New translations iftop.md (Ukrainian) --- docs/gemstones/network/iftop.uk.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/gemstones/network/iftop.uk.md b/docs/gemstones/network/iftop.uk.md index cd7aebb528..f07c25d4d8 100644 --- a/docs/gemstones/network/iftop.uk.md +++ b/docs/gemstones/network/iftop.uk.md @@ -83,21 +83,21 @@ TOTAL: 60.5MB 242Mb 242Mb 242Mb 242Mb Порушення рядків нижньої панелі: -- TX - Використання даних для передачі/завантаження -- RX - Використання даних для отримання/завантаження -- TOTAL - Комбіноване використання завантаження/завантаження + - TX - Використання даних для передачі/завантаження + - RX - Використання даних для отримання/завантаження + - TOTAL - Комбіноване використання завантаження/завантаження ## Комбінації клавіш для взаємодії -- \++s++ - агрегує весь трафік для кожного джерела -- \++d++ - агрегує весь трафік для кожного пункту призначення -- \++shift+s++ - перемикає відображення вихідного порту -- \++shift+d++ - перемикає відображення порту призначення -- \++t++ - перемикається між режимами відображення: дворядковий дисплей за замовчуванням із трафіком надсилання та отримання та трирядковий дисплей надсилання, отримання та загального трафіку -- \++1++, ++2++, ++3++ - сортує за 1-м, 2-м або 3-м стовпцем -- \++l++ - вводить регулярний вираз POSIX для фільтрації імен хостів -- \++shift+p++ - призупиняє поточний дисплей -- \++o++ - заморожує загальну кількість пропускної здатності -- \++j++ - прокручується вниз -- \++k++ - прокручується вгору -- \++f++ - редагує код фільтра + - \++s++ - агрегує весь трафік для кожного джерела + - \++d++ - агрегує весь трафік для кожного пункту призначення + - \++shift+s++ - перемикає відображення вихідного порту + - \++shift+d++ - перемикає відображення порту призначення + - \++t++ - перемикається між режимами відображення: дворядковий дисплей за замовчуванням із трафіком надсилання та отримання та трирядковий дисплей надсилання, отримання та загального трафіку + - \++1++, ++2++, ++3++ - сортує за 1-м, 2-м або 3-м стовпцем + - \++l++ - вводить регулярний вираз POSIX для фільтрації імен хостів + - \++shift+p++ - призупиняє поточний дисплей + - \++o++ - заморожує загальну кількість пропускної здатності + - \++j++ - прокручується вниз + - \++k++ - прокручується вгору + - \++f++ - редагує код фільтра From d070e8cdfda22711d2dc4b07c7e7313edc59e267 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:34 -0400 Subject: [PATCH 014/167] New translations test_cpu_compat.md (Ukrainian) --- docs/gemstones/test_cpu_compat.uk.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/gemstones/test_cpu_compat.uk.md b/docs/gemstones/test_cpu_compat.uk.md index d6682240d4..db79425c85 100644 --- a/docs/gemstones/test_cpu_compat.uk.md +++ b/docs/gemstones/test_cpu_compat.uk.md @@ -18,18 +18,18 @@ tags: 3. Після завершення завантаження відкрийте вікно терміналу та виконайте цю процедуру: - ```bash - /lib64/ld-linux-x86-64.so.2 --help | grep x86-64 - ``` + ```bash + /lib64/ld-linux-x86-64.so.2 --help | grep x86-64 + ``` - Ви маєте отримати подібний результат: + Ви маєте отримати подібний результат: - ```bash - Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] - This program interpreter self-identifies as: /lib64/ld-linux-x86-64.so.2 - x86-64-v4 - x86-64-v3 - x86-64-v2 (supported, searched) - ``` + ```bash + Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] + This program interpreter self-identifies as: /lib64/ld-linux-x86-64.so.2 + x86-64-v4 + x86-64-v3 + x86-64-v2 (supported, searched) + ``` - Цей вихід вказує на мінімальну необхідну версію x86-64 (v2). У цьому випадку встановлення можна продовжити. Якщо біля запису «x86-64-v2» немає «(підтримується, шукається)», це означає, що ваш ЦП **не** сумісний із Rocky Linux 9.x. Якщо тест показує, що встановлення може продовжитися, а також відображає x86-64-v3 (обов'язкове для Rocky Linux 10) та x86-64-v4 як "(підтримується, знайдено)", ваш процесор добре підтримується для версії 9.x та наступних версій. + Цей вихід вказує на мінімальну необхідну версію x86-64 (v2). У цьому випадку встановлення можна продовжити. Якщо біля запису «x86-64-v2» немає «(підтримується, шукається)», це означає, що ваш ЦП **не** сумісний із Rocky Linux 9.x. Якщо тест показує, що встановлення може продовжитися, а також відображає x86-64-v3 (обов'язкове для Rocky Linux 10) та x86-64-v4 як "(підтримується, знайдено)", ваш процесор добре підтримується для версії 9.x та наступних версій. From f5de6a59dd7721685d082a1f566e89d3a07ad8bc Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:35 -0400 Subject: [PATCH 015/167] New translations 00-gh_cli_installation.md (Ukrainian) --- .../git/00-gh_cli_installation.uk.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/gemstones/git/00-gh_cli_installation.uk.md b/docs/gemstones/git/00-gh_cli_installation.uk.md index b7b97ea761..a1dec455f2 100644 --- a/docs/gemstones/git/00-gh_cli_installation.uk.md +++ b/docs/gemstones/git/00-gh_cli_installation.uk.md @@ -27,28 +27,28 @@ tags: ## Процедура 1. **Встановіть репозиторій GitHub CLI за допомогою curl**: - Використовуйте команду curl, щоб завантажити офіційний файл сховища для `gh`. Завантажений файл буде збережено в каталозі /etc/yum.repos.d/. Після завантаження використовуйте команду dnf, щоб установити `gh` зі сховища. Впишіть: + Використовуйте команду curl, щоб завантажити офіційний файл сховища для `gh`. Завантажений файл буде збережено в каталозі /etc/yum.repos.d/. Після завантаження використовуйте команду dnf, щоб установити `gh` зі сховища. Впишіть: - ```bash - curl -fsSL https://cli.github.com/packages/rpm/gh-cli.repo | sudo tee /etc/yum.repos.d/github-cli.repo - sudo dnf -y install gh - ``` + ```bash + curl -fsSL https://cli.github.com/packages/rpm/gh-cli.repo | sudo tee /etc/yum.repos.d/github-cli.repo + sudo dnf -y install gh + ``` 2. **Перевірте встановлення**: - Переконайтеся, що `gh` встановлено правильно. Впишіть: + Переконайтеся, що `gh` встановлено правильно. Впишіть: - ```bash - gh --version - ``` + ```bash + gh --version + ``` 3. **Автентифікація за допомогою GitHub**: - Увійдіть у свій обліковий запис GitHub. Впишіть: + Увійдіть у свій обліковий запис GitHub. Впишіть: - ```bash - gh auth login - ``` + ```bash + gh auth login + ``` - Дотримуйтеся вказівок для автентифікації. + Дотримуйтеся вказівок для автентифікації. ## Висновок From 8ba881e95db2e6184d13ec48d0d30eed010deba8 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:36 -0400 Subject: [PATCH 016/167] New translations 01-gh_cli_1st_pr.md (Ukrainian) --- docs/gemstones/git/01-gh_cli_1st_pr.uk.md | 58 +++++++++++------------ 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/gemstones/git/01-gh_cli_1st_pr.uk.md b/docs/gemstones/git/01-gh_cli_1st_pr.uk.md index 850136a294..313336b075 100644 --- a/docs/gemstones/git/01-gh_cli_1st_pr.uk.md +++ b/docs/gemstones/git/01-gh_cli_1st_pr.uk.md @@ -28,56 +28,56 @@ tags: ## Етапи рішення 1. **Розгалужте репозиторій за допомогою GitHub CLI**: - Розгалужте репозиторій вище за течією до свого облікового запису. + Розгалужте репозиторій вище за течією до свого облікового запису. - ```bash - gh repo fork https://github.com/rocky-linux/documentation --clone - ``` + ```bash + gh repo fork https://github.com/rocky-linux/documentation --clone + ``` 2. **Перейдіть до каталогу сховища**: - ```bash - cd documentation - ``` + ```bash + cd documentation + ``` 3. **Додайте репозиторій Upstream**: - ```bash - git remote add upstream https://github.com/rocky-linux/documentation.git - ``` + ```bash + git remote add upstream https://github.com/rocky-linux/documentation.git + ``` 4. **Створіть нову гілку**: - Створіть нову гілку для свого внеску. Впишіть: + Створіть нову гілку для свого внеску. Впишіть: - ```bash - git checkout -b new-gemstone - ``` + ```bash + git checkout -b new-gemstone + ``` 5. **Додайте свій новий документ**: - Використовуйте свій улюблений текстовий редактор, щоб створити та відредагувати новий файл внеску. - Для цього прикладу ми створимо новий файл під назвою `gemstome_new_pr.md` і збережемо його в каталозі `docs/gemstones/`. + Використовуйте свій улюблений текстовий редактор, щоб створити та відредагувати новий файл внеску. + Для цього прикладу ми створимо новий файл під назвою `gemstome_new_pr.md` і збережемо його в каталозі `docs/gemstones/`. 6. **Зафіксуйте свої зміни**: - Створіть і зафіксуйте новий файл. Впишіть: + Створіть і зафіксуйте новий файл. Впишіть: - ```bash - git add docs/gemstones/gemstome_new_pr.md - git commit -m "Add new Gemstone document" - ``` + ```bash + git add docs/gemstones/gemstome_new_pr.md + git commit -m "Add new Gemstone document" + ``` 7. **Натисніть на свою вилку**: - Надішліть зміни у свій форк/копію сховища документації Rocky Linux. Впишіть: + Надішліть зміни у свій форк/копію сховища документації Rocky Linux. Впишіть: - ```bash - git push origin new-gemstone - ``` + ```bash + git push origin new-gemstone + ``` 8. **Створіть запит на отримання**: - Створіть запит на отримання до репозиторію вище за течією. + Створіть запит на отримання до репозиторію вище за течією. - ```bash - gh pr create --base main --head wsoyinka:new-gemstone --title "New Gemstone: Creating PRs via CLI" --body "Guide on how to contribute to documentation using CLI" - ``` + ```bash + gh pr create --base main --head wsoyinka:new-gemstone --title "New Gemstone: Creating PRs via CLI" --body "Guide on how to contribute to documentation using CLI" + ``` ## Додаткова інформація (необов'язково) From 79ec8d83e4fe3a14815c2db054df065bfd78b973 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:38 -0400 Subject: [PATCH 017/167] New translations 02-gh_cli_edit_pr_title.md (Ukrainian) --- .../git/02-gh_cli_edit_pr_title.uk.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/gemstones/git/02-gh_cli_edit_pr_title.uk.md b/docs/gemstones/git/02-gh_cli_edit_pr_title.uk.md index 20ad797d1f..2a6995b666 100644 --- a/docs/gemstones/git/02-gh_cli_edit_pr_title.uk.md +++ b/docs/gemstones/git/02-gh_cli_edit_pr_title.uk.md @@ -27,20 +27,20 @@ tags: ### Використання GitHub CLI 1. **Перевірте відповідну гілку**: - - Переконайтеся, що ви перебуваєте у гілці, пов’язаній з PR. + - Переконайтеся, що ви перебуваєте у гілці, пов’язаній з PR. - ```bash - git checkout branch-name - ``` + ```bash + git checkout branch-name + ``` 2. **Відредагуйте PR за допомогою CLI**: - - Використовуйте наступну команду для редагування PR: + - Використовуйте наступну команду для редагування PR: - ```bash - gh pr edit PR_NUMBER --title "New PR Title" - ``` + ```bash + gh pr edit PR_NUMBER --title "New PR Title" + ``` - - Замініть `PR_NUMBER` на номер вашого запиту на отримання, а `"New PR Title"` на потрібну назву. + - Замініть `PR_NUMBER` на номер вашого запиту на отримання, а `"New PR Title"` на потрібну назву. ## Додаткова інформація (необов'язково) From eaf82d89eee59e8ed998310873e0c2a64df7b5f5 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:39 -0400 Subject: [PATCH 018/167] New translations 02_github_web_edit_pr_title.md (Ukrainian) --- docs/gemstones/git/02_github_web_edit_pr_title.uk.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/gemstones/git/02_github_web_edit_pr_title.uk.md b/docs/gemstones/git/02_github_web_edit_pr_title.uk.md index 238f419d47..4d3a5e0065 100644 --- a/docs/gemstones/git/02_github_web_edit_pr_title.uk.md +++ b/docs/gemstones/git/02_github_web_edit_pr_title.uk.md @@ -26,13 +26,13 @@ tags: ### Використання веб-інтерфейсу GitHub 1. **Перейдіть до запиту**: - - Перейдіть до сховища, де знаходиться PR. - - Натисніть «Pull requests» і виберіть PR, який потрібно змінити. + - Перейдіть до сховища, де знаходиться PR. + - Натисніть «Pull requests» і виберіть PR, який потрібно змінити. 2. **Відредагуйте назву PR**: - - Натисніть на назву PR. - - З’явиться текстове поле, яке можна редагувати. - - Змініть назву, натисніть ++enter++ або клацніть за межами текстового поля, щоб зберегти зміни. + - Натисніть на назву PR. + - З’явиться текстове поле, яке можна редагувати. + - Змініть назву, натисніть ++enter++ або клацніть за межами текстового поля, щоб зберегти зміни. ## Додаткова інформація (необов'язково) From d5fff0e285d609ec2370dde88b7f3522c177afa5 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:40 -0400 Subject: [PATCH 019/167] New translations gemstone_template.md (Ukrainian) --- docs/gemstones/gemstone_template.uk.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/gemstones/gemstone_template.uk.md b/docs/gemstones/gemstone_template.uk.md index 00e3a3443e..93bd4b7d59 100644 --- a/docs/gemstones/gemstone_template.uk.md +++ b/docs/gemstones/gemstone_template.uk.md @@ -30,15 +30,15 @@ tags: 1. **Перший крок**: - Інструкції та приклади команд. + Інструкції та приклади команд. - ```bash - Команда або фрагмент коду - ``` + ```bash + Команда або фрагмент коду + ``` 2. **Другий крок**: - Продовжуйте з докладними інструкціями. + Продовжуйте з докладними інструкціями. ## Додаткова інформація (необов'язково) From f829022b60b7366c398e59bf64bc9301e0030e59 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:41 -0400 Subject: [PATCH 020/167] New translations feature_branch_workflow.md (Ukrainian) --- .../git/feature_branch_workflow.uk.md | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/docs/gemstones/git/feature_branch_workflow.uk.md b/docs/gemstones/git/feature_branch_workflow.uk.md index 9e35839e1a..8868c8b766 100644 --- a/docs/gemstones/git/feature_branch_workflow.uk.md +++ b/docs/gemstones/git/feature_branch_workflow.uk.md @@ -31,53 +31,53 @@ tags: 1. Якщо це ще не зроблено, клонуйте вашу гілку: - ```bash - git clone https://github.com/rockstar/documentation.git - cd documentation - ``` + ```bash + git clone https://github.com/rockstar/documentation.git + cd documentation + ``` 2. Додайте дистанційне керування: - ```bash - git remote add upstream https://github.com/rocky-linux/documentation.git - ``` + ```bash + git remote add upstream https://github.com/rocky-linux/documentation.git + ``` 3. Отримайте зміни: - ```bash - git fetch upstream - ``` + ```bash + git fetch upstream + ``` 4. Створіть нову гілку функції: - ```bash - git checkout -b feature-branch-name - ``` + ```bash + git checkout -b feature-branch-name + ``` 5. Внесіть зміни, додайте нові файли та зафіксуйте їх: - ```bash - git add . - git commit -m "Implementing feature X" - ``` + ```bash + git add . + git commit -m "Implementing feature X" + ``` 6. Тримайте свою гілку оновленою. Регулярно об’єднуйте зміни з висхідного потоку, щоб уникнути конфліктів: - ```bash - git pull upstream main --rebase - ``` + ```bash + git pull upstream main --rebase + ``` 7. Запушіть вилку, введіть: - ```bash - git push origin feature-branch-name - ``` + ```bash + git push origin feature-branch-name + ``` 8. Створіть запит: - ```bash - gh pr create --base main --head rockstar:feature-branch-name --title "New Feature X" --body "Long Description of the feature" - ``` + ```bash + gh pr create --base main --head rockstar:feature-branch-name --title "New Feature X" --body "Long Description of the feature" + ``` ## Висновок From 0eef56a2932d6765fcccae74527d11146a5e4708 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:42 -0400 Subject: [PATCH 021/167] New translations fork_and_branch_workflow.md (Ukrainian) --- .../git/fork_and_branch_workflow.uk.md | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/docs/gemstones/git/fork_and_branch_workflow.uk.md b/docs/gemstones/git/fork_and_branch_workflow.uk.md index 63b02de2c9..4b65d64b8f 100644 --- a/docs/gemstones/git/fork_and_branch_workflow.uk.md +++ b/docs/gemstones/git/fork_and_branch_workflow.uk.md @@ -29,70 +29,70 @@ tags: 1. Якщо вона ще не існує, створіть гілку проекту за допомогою утиліти gh. Впишіть: - ```bash - gh repo fork rocky-linux/documentation --clone=true --remote=true - ``` + ```bash + gh repo fork rocky-linux/documentation --clone=true --remote=true + ``` - У цій команді _gh repo fork_ використовуються такі параметри: + У цій команді _gh repo fork_ використовуються такі параметри: - - `--clone=true`: Клонує розгалужене сховище на вашу локальну машину. - - `--remote=true`: Додає вихідний репозиторій як віддалений, що дозволяє синхронізувати майбутні оновлення. + - `--clone=true`: Клонує розгалужене сховище на вашу локальну машину. + - `--remote=true`: Додає вихідний репозиторій як віддалений, що дозволяє синхронізувати майбутні оновлення. 2. Перейдіть до каталогу локального сховища. Впишіть: - ```bash - cd documentation - ``` + ```bash + cd documentation + ``` 3. Переконайтеся, що всі відповідні віддалені сховища правильно налаштовано у вашому локальному сховищі, введіть: - ```bash - git remote -vv - ``` + ```bash + git remote -vv + ``` 4. Отримайте останні зміни з дистанційного керування: - ```bash - git fetch upstream - ``` + ```bash + git fetch upstream + ``` 5. Створіть і перевірте нову гілку функції під назвою your-feature-branch: - ```bash - git checkout -b your-feature-branch - ``` + ```bash + git checkout -b your-feature-branch + ``` 6. Внесіть зміни, додайте нові файли та зафіксуйте свої зміни у своєму локальному репозиторії: - ```bash - git add . - git commit -m "Your commit message" - ``` + ```bash + git add . + git commit -m "Your commit message" + ``` 7. Синхронізуйте з головною гілкою віддаленого сховища під назвою `upstream`: - ```bash - git pull upstream main - ``` + ```bash + git pull upstream main + ``` 8. Надішліть зміни до своєї гілки: - ```bash - git push origin your-feature-branch - ``` + ```bash + git push origin your-feature-branch + ``` 9. Нарешті, створіть запит на вилучення (PR) за допомогою програми `gh` CLI: - ```bash - gh pr create --base main --head your-feature-branch --title "Your PR Title" --body "Description of your changes" - ``` + ```bash + gh pr create --base main --head your-feature-branch --title "Your PR Title" --body "Description of your changes" + ``` - У цій команді _gh pr create_ використовуються такі параметри: + У цій команді _gh pr create_ використовуються такі параметри: - `--base` main: Визначає базову гілку у вихідному сховищі, куди буде об’єднано зміни. - `--head` your-feature-branch: Вказує на головну гілку вашого форка, яка містить зміни. - `--title` "Your PR Title": Встановлює назву для запиту. - `--body` "Description of your changes": Надає детальний опис змін у запиті. + `--base` main: Визначає базову гілку у вихідному сховищі, куди буде об’єднано зміни. + `--head` your-feature-branch: Вказує на головну гілку вашого форка, яка містить зміни. + `--title` "Your PR Title": Встановлює назву для запиту. + `--body` "Description of your changes": Надає детальний опис змін у запиті. ## Висновок From 3278320fbd87992f21bfaf1717df340b2ab8b19b Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:44 -0400 Subject: [PATCH 022/167] New translations git_pull_vs_git_fetch.md (Ukrainian) --- .../gemstones/git/git_pull_vs_git_fetch.uk.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/gemstones/git/git_pull_vs_git_fetch.uk.md b/docs/gemstones/git/git_pull_vs_git_fetch.uk.md index 2ef4e28354..26d11f6d55 100644 --- a/docs/gemstones/git/git_pull_vs_git_fetch.uk.md +++ b/docs/gemstones/git/git_pull_vs_git_fetch.uk.md @@ -22,21 +22,21 @@ git fetch завантажує зміни з віддаленого сховищ 1. Перелічіть поточну перевірену гілку - ```bash - git branch - ``` + ```bash + git branch + ``` 2. Отримайте зміни з головної гілки віддаленого репо з іменем origin. Впишіть: - ```bash - git fetch origin main - ``` + ```bash + git fetch origin main + ``` 3. Порівняйте зміни між HEAD вашого локального репо та віддаленим вихідним/основним репо. - ```bash - git log HEAD..origin/main - ``` + ```bash + git log HEAD..origin/main + ``` ### Git Pull @@ -45,15 +45,15 @@ Git Pull завантажує зміни та об’єднує їх у вашу 1. **Витягнути та об’єднати зміни**: - ```bash - git pull origin main - ``` + ```bash + git pull origin main + ``` 2. **Перегляньте об’єднані зміни**: - ```bash - git log - ``` + ```bash + git log + ``` ## Додаткові примітки From 309a82a1cdea385603504f1a70b2d275be618a2e Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:45 -0400 Subject: [PATCH 023/167] New translations git_remote_add.md (Ukrainian) --- docs/gemstones/git/git_remote_add.uk.md | 44 ++++++++++++------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/gemstones/git/git_remote_add.uk.md b/docs/gemstones/git/git_remote_add.uk.md index 1448218a98..586f075bb2 100644 --- a/docs/gemstones/git/git_remote_add.uk.md +++ b/docs/gemstones/git/git_remote_add.uk.md @@ -23,46 +23,46 @@ tags: ## Процедура 1. Відкрийте термінал і змініть свій робочий каталог на папку, що містить ваш локальний клон проекту. - Наприклад, якщо ви клонували репозиторій github до ~/path/to/your/rl-documentation-clone, введіть + Наприклад, якщо ви клонували репозиторій github до ~/path/to/your/rl-documentation-clone, введіть - ```bash - cd ~/path/to/your/rl-documentation-clone - ``` + ```bash + cd ~/path/to/your/rl-documentation-clone + ``` 2. Перш ніж вносити будь-які зміни, перелічіть дистанційне керування, які ви зараз налаштували. Впишіть: - ```bash - git remote -vv - ``` + ```bash + git remote -vv + ``` - Якщо це щойно клоноване репо, ви, ймовірно, побачите у своїх виводах єдиний віддалений файл під назвою `origin`. + Якщо це щойно клоноване репо, ви, ймовірно, побачите у своїх виводах єдиний віддалений файл під назвою `origin`. 3. Додайте сховище документації Rocky Linux (`https://github.com/rocky-linux/documentation.git`) як новий віддалений пристрій до вашого локального сховища. Тут ми призначимо upstream як назву для цього конкретного пульта. Впишіть: - ```bash - git remote add upstream https://github.com/rocky-linux/documentation.git - ``` + ```bash + git remote add upstream https://github.com/rocky-linux/documentation.git + ``` 4. Щоб ще більше підкреслити, що імена, призначені віддаленим сховищам, є довільними, створіть ще один віддалений іменований rocky-docs, який вказує на те саме репо, виконавши: - ```bash - git remote add rocky-docs https://github.com/rocky-linux/documentation.git - ``` + ```bash + git remote add rocky-docs https://github.com/rocky-linux/documentation.git + ``` 5. Переконайтеся, що нове віддалене сховище успішно додано: - ```bash - git remote -v - ``` + ```bash + git remote -v + ``` - Ви повинні побачити `upstream` у списку разом із його URL-адресою. + Ви повинні побачити `upstream` у списку разом із його URL-адресою. 6. За бажанням, перш ніж почати вносити будь-які зміни у своє локальне сховище, ви можете отримати дані з нещодавно доданого віддаленого пристрою. - Отримайте гілки та коміти з нещодавно доданого віддаленого, виконавши: + Отримайте гілки та коміти з нещодавно доданого віддаленого, виконавши: - ```bash - git fetch upstream - ``` + ```bash + git fetch upstream + ``` ## Додаткові примітки From e289615049283b2fc23266f49c31eb4892777135 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:46 -0400 Subject: [PATCH 024/167] New translations tracking_and_nontracking_branch.md (Ukrainian) --- .../git/tracking_and_nontracking_branch.uk.md | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/gemstones/git/tracking_and_nontracking_branch.uk.md b/docs/gemstones/git/tracking_and_nontracking_branch.uk.md index 7bcad4ad81..b8595fb73f 100644 --- a/docs/gemstones/git/tracking_and_nontracking_branch.uk.md +++ b/docs/gemstones/git/tracking_and_nontracking_branch.uk.md @@ -19,17 +19,17 @@ tags: 1. Створіть нову гілку під назвою my-local-branch. Зробіть так, щоб нова локальна гілка відстежувала основну гілку віддаленого сховища з назвою origin. Впишіть: - ```bash - git checkout -b my-local-branch origin/main - ``` + ```bash + git checkout -b my-local-branch origin/main + ``` 2. Використовуйте команду `git branch -vv`, щоб переконатися, що гілка є гілкою відстеження. Впишіть: - ```bash - git branch -vv - ``` + ```bash + git branch -vv + ``` - Шукайте гілки з `[origin/main]`, що вказує, що вони відстежують `origin/main`. + Шукайте гілки з `[origin/main]`, що вказує, що вони відстежують `origin/main`. ## Non-Tracking Branch @@ -37,9 +37,9 @@ tags: 1. Створіть нову локальну гілку без відстеження під назвою my-feature-branch. Впишіть: - ```bash - git checkout -b my-feature-branch - ``` + ```bash + git checkout -b my-feature-branch + ``` 2. Гілки без відстеження не відображатимуть віддалену гілку поруч із ними у виводі git branch -vv. Перевірте, чи my-feature-branch є гілкою без відстеження. @@ -47,26 +47,26 @@ tags: 1. За бажанням, спочатку переконайтеся, що останні зміни з основної гілки об’єднано в цільову гілку. Впишіть: - ```bash - git checkout my-feature-branch - git merge main - ``` + ```bash + git checkout my-feature-branch + git merge main + ``` 2. Налаштувати відстеження до віддаленого відділення: - ```bash - git branch --set-upstream-to=origin/main my-feature-branch - ``` + ```bash + git branch --set-upstream-to=origin/main my-feature-branch + ``` - Вихід: \`Гілка 'my-feature-branch' налаштована для відстеження віддаленої гілки 'main' від 'origin'.' + Вихід: \`Гілка 'my-feature-branch' налаштована для відстеження віддаленої гілки 'main' від 'origin'.' 3. Перевірте зміну. Впишіть: - ```bash - git branch -vv - ``` + ```bash + git branch -vv + ``` - Тепер `my-feature-branch` має показувати `[origin/main]`, що вказує на відстеження. + Тепер `my-feature-branch` має показувати `[origin/main]`, що вказує на відстеження. ## Висновок From 5845278003f2a13439328da9c73c3d39e1d1c828 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:50 -0400 Subject: [PATCH 025/167] New translations gnome-tweaks.md (Ukrainian) --- docs/desktop/gnome/gnome-tweaks.uk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/desktop/gnome/gnome-tweaks.uk.md b/docs/desktop/gnome/gnome-tweaks.uk.md index 1d775fe0f2..ca468b32e4 100644 --- a/docs/desktop/gnome/gnome-tweaks.uk.md +++ b/docs/desktop/gnome/gnome-tweaks.uk.md @@ -10,7 +10,7 @@ GNOME Tweaks — це інструмент для налаштування ро ## Припущення -- Робоча станція або сервер Rocky Linux із інсталяцією GNOME. + - Робоча станція або сервер Rocky Linux із інсталяцією GNOME. ## Встановлення GNOME Tweaks From 12ef24e108d7a5158a43f123c5e9771601c18f34 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:54 -0400 Subject: [PATCH 026/167] New translations flatpak.md (Ukrainian) --- docs/desktop/gnome/flatpak.uk.md | 66 ++++++++++++++++---------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/docs/desktop/gnome/flatpak.uk.md b/docs/desktop/gnome/flatpak.uk.md index 86d9f71753..03909d12f6 100644 --- a/docs/desktop/gnome/flatpak.uk.md +++ b/docs/desktop/gnome/flatpak.uk.md @@ -166,51 +166,51 @@ Flathub — це веб-ресурс для отримання або надси 3. Натисніть стрілку вниз поруч із кнопкою «Встановити» - ![flathub_install_1](images/01_flatpak.png) + ![flathub_install_1](images/01_flatpak.png) - ![flathub_install_2](images/02_flatpak.png) + ![flathub_install_2](images/02_flatpak.png) 4. Переконайтеся, що ви виконали всі передумови встановлення для Rocky Linux (номер 1 на другому зображенні, яке вже виконано вище), а потім скопіюйте команду (номер 2 на другому зображенні) і вставте її в термінал - ```bash - flatpak install flathub com.obsproject.Studio - Looking for matches… - Required runtime for com.obsproject.Studio/x86_64/stable (runtime/org.kde.Platform/x86_64/6.6) found in remote flathub - Do you want to install it? [Y/n]: Y - ``` + ```bash + flatpak install flathub com.obsproject.Studio + Looking for matches… + Required runtime for com.obsproject.Studio/x86_64/stable (runtime/org.kde.Platform/x86_64/6.6) found in remote flathub + Do you want to install it? [Y/n]: Y + ``` 5. Коли ви відповісте «Y» і натиснете ++enter++, ви побачите таке: - ```bash - com.obsproject.Studio permissions: - ipc network pulseaudio wayland - x11 devices file access [1] dbus access [2] - system dbus access [3] - - [1] host, xdg-config/kdeglobals:ro, xdg-run/pipewire-0 - [2] com.canonical.AppMenu.Registrar, org.a11y.Bus, org.freedesktop.Flatpak, org.freedesktop.Notifications, - org.kde.KGlobalSettings, org.kde.StatusNotifierWatcher, org.kde.kconfig.notify - [3] org.freedesktop.Avahi - - ID Branch Op Remote Download - 1. com.obsproject.Studio.Locale stable i flathub < 47.0 kB (partial) - 2. org.kde.KStyle.Adwaita 6.6 i flathub < 8.0 MB - 3. org.kde.Platform.Locale 6.6 i flathub < 380.6 MB (partial) - 4. org.kde.PlatformTheme.QGnomePlatform 6.6 i flathub < 9.7 MB - 5. org.kde.WaylandDecoration.QAdwaitaDecorations 6.6 i flathub < 1.2 MB - 6. org.kde.Platform 6.6 i flathub < 325.0 MB - 7. com.obsproject.Studio stable i flathub < 207.7 MB - - Proceed with these changes to the system installation? [Y/n]: - ``` + ```bash + com.obsproject.Studio permissions: + ipc network pulseaudio wayland + x11 devices file access [1] dbus access [2] + system dbus access [3] + + [1] host, xdg-config/kdeglobals:ro, xdg-run/pipewire-0 + [2] com.canonical.AppMenu.Registrar, org.a11y.Bus, org.freedesktop.Flatpak, org.freedesktop.Notifications, + org.kde.KGlobalSettings, org.kde.StatusNotifierWatcher, org.kde.kconfig.notify + [3] org.freedesktop.Avahi + + ID Branch Op Remote Download + 1. com.obsproject.Studio.Locale stable i flathub < 47.0 kB (partial) + 2. org.kde.KStyle.Adwaita 6.6 i flathub < 8.0 MB + 3. org.kde.Platform.Locale 6.6 i flathub < 380.6 MB (partial) + 4. org.kde.PlatformTheme.QGnomePlatform 6.6 i flathub < 9.7 MB + 5. org.kde.WaylandDecoration.QAdwaitaDecorations 6.6 i flathub < 1.2 MB + 6. org.kde.Platform 6.6 i flathub < 325.0 MB + 7. com.obsproject.Studio stable i flathub < 207.7 MB + + Proceed with these changes to the system installation? [Y/n]: + ``` 6. Якщо відповісти «Y» і натиснути ++enter++, системні дозволи будуть змінені, як зазначено, і встановлено програму. 7. Якщо все піде добре, ви повинні отримати: - ```text - Installation complete. - ``` + ```text + Installation complete. + ``` 8. Тепер у меню «Activities» ви зможете шукати та запускати OBS Studio. From fbafa6d1bb4a30e6b3c7679c8a9315f791bf8a7f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:56 -0400 Subject: [PATCH 027/167] New translations migration-to-new-azure-images.md (Ukrainian) --- docs/guides/cloud/migration-to-new-azure-images.uk.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/cloud/migration-to-new-azure-images.uk.md b/docs/guides/cloud/migration-to-new-azure-images.uk.md index 858cf50ff5..edc0eb36a6 100644 --- a/docs/guides/cloud/migration-to-new-azure-images.uk.md +++ b/docs/guides/cloud/migration-to-new-azure-images.uk.md @@ -25,8 +25,8 @@ RESF надає зображення віртуальної машини Rocky L ## Перш ніж почати -- Переконайтеся, що у вас є поточна резервна копія віртуальної машини. Хоча процес міграції не повинен вплинути на ваші дані, створення резервної копії є найкращою практикою для будь-яких системних змін. -- Переконайтеся, що ви маєте необхідні дозволи для створення нових віртуальних машин і керування існуючими в обліковому записі Azure. + - Переконайтеся, що у вас є поточна резервна копія віртуальної машини. Хоча процес міграції не повинен вплинути на ваші дані, створення резервної копії є найкращою практикою для будь-яких системних змін. + - Переконайтеся, що ви маєте необхідні дозволи для створення нових віртуальних машин і керування існуючими в обліковому записі Azure. ## Крок 1. Знайдіть існуючі віртуальні машини @@ -80,8 +80,8 @@ rsync -avzh /path/to/old_VM_data/ user@new_VM_IP:/path/to/new_VM_destination/ ## Останні кроки -- Перевірте, чи всі служби на новій віртуальній машині працюють належним чином. -- Слідкуйте за продуктивністю та справністю нової віртуальної машини, щоб переконатися, що вона відповідає вашим потребам. + - Перевірте, чи всі служби на новій віртуальній машині працюють належним чином. + - Слідкуйте за продуктивністю та справністю нової віртуальної машини, щоб переконатися, що вона відповідає вашим потребам. ## Підтримка From 5b16f233378a07ebd5169cc3679edf6dc457a318 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:09:58 -0400 Subject: [PATCH 028/167] New translations lab8-samba.md (Ukrainian) --- docs/labs/networking/lab8-samba.uk.md | 204 +++++++++++++------------- 1 file changed, 102 insertions(+), 102 deletions(-) diff --git a/docs/labs/networking/lab8-samba.uk.md b/docs/labs/networking/lab8-samba.uk.md index 74e642368f..7936adf257 100644 --- a/docs/labs/networking/lab8-samba.uk.md +++ b/docs/labs/networking/lab8-samba.uk.md @@ -44,45 +44,45 @@ _nmbd_: цей демон забезпечує обслуговування ім #### Щоб встановити серверну програму Samba 0. Використовуйте утиліту dnf, щоб установити сервер Samba та пакет клієнта на вашому сервері. - Впишіть: - ```bash - sudo dnf install -y samba - ``` + Впишіть: + ```bash + sudo dnf install -y samba + ``` #### Щоб налаштувати Samba 1. Створіть каталог під назвою samba-share у папці /tmp, до якої потрібно надати спільний доступ. Впишіть: - ```bash - mkdir /tmp/samba-share - ``` + ```bash + mkdir /tmp/samba-share + ``` 2. Давайте створимо базову конфігурацію Samba для спільного використання папки /tmp/samba-share. - Зробіть це, створивши нове визначення спільного ресурсу у файлі конфігурації Samba: + Зробіть це, створивши нове визначення спільного ресурсу у файлі конфігурації Samba: - ```bash - sudo tee -a /etc/samba/smb.conf << 'EOF' - [Shared] - path = /tmp/samba-share - browsable = yes - writable = yes - EOF - ``` + ```bash + sudo tee -a /etc/samba/smb.conf << 'EOF' + [Shared] + path = /tmp/samba-share + browsable = yes + writable = yes + EOF + ``` #### Щоб запустити та включити службу Samba 1. Запустіть і ввімкніть служби Samba: - ```bash - sudo systemctl start smb nmb - sudo systemctl enable smb nmb - ``` + ```bash + sudo systemctl start smb nmb + sudo systemctl enable smb nmb + ``` 2. Переконайтеся, що демони, які використовує служба Samba, запущені: - ```bash - sudo systemctl status smb nmb - ``` + ```bash + sudo systemctl status smb nmb + ``` ## Завдання 2 @@ -96,27 +96,27 @@ _nmbd_: цей демон забезпечує обслуговування ім 1. Спочатку створіть звичайного системного користувача з іменем sambarockstar. Впишіть: - ```bash - sudo useradd sambarockstar - ``` + ```bash + sudo useradd sambarockstar + ``` 2. Переконайтеся, що користувача було створено правильно. Впишіть: - ```bash - id sambarockstar - ``` + ```bash + id sambarockstar + ``` 3. Додайте нового користувача системи sambarockstar до бази даних користувачів Samba та одночасно встановіть пароль для користувача Samba: - ```bash - sudo smbpasswd -a sambarockstar - ``` + ```bash + sudo smbpasswd -a sambarockstar + ``` - Коли буде запропоновано, введіть вибраний пароль і натисніть ENTER після кожного введення. + Коли буде запропоновано, введіть вибраний пароль і натисніть ENTER після кожного введення. 4. Перезапустіть служби Samba: - ```bash - sudo systemctl restart smb nmb - ``` + ```bash + sudo systemctl restart smb nmb + ``` ## Завдання 3 @@ -128,59 +128,59 @@ _nmbd_: цей демон забезпечує обслуговування ім 0. Встановіть клієнтські утиліти, запустивши: - ```bash - sudo dnf -y install cifs-utils - ``` + ```bash + sudo dnf -y install cifs-utils + ``` #### Щоб створити точку монтування Samba 0. Створіть точку монтування: - ```bash - mkdir ~/samba-client - ``` + ```bash + mkdir ~/samba-client + ``` #### Для локального монтування файлової системи SMB 1. Встановіть Samba Share локально: - ```bash - sudo mount -t cifs //localhost/Shared ~/samba-client -o user=sambarockstar - ``` + ```bash + sudo mount -t cifs //localhost/Shared ~/samba-client -o user=sambarockstar + ``` 2. Використовуйте команду `mount`, щоб отримати список усіх змонтованих файлових систем типу CIFS. Впишіть: - ```bash - mount -t cifs - ``` - ВИХІД - ```bash - //localhost/Shared on ~/samba-client type cifs (rw,relatime,vers=3.1.1,cache=strict,username=sambarockstar.... - ...... - ``` + ```bash + mount -t cifs + ``` + ВИХІД + ```bash + //localhost/Shared on ~/samba-client type cifs (rw,relatime,vers=3.1.1,cache=strict,username=sambarockstar.... + ...... + ``` 3. Подібним чином скористайтеся командою `df`, щоб переконатися, що змонтований спільний ресурс доступний. Впишіть: - ```bash - df -t cifs - ``` + ```bash + df -t cifs + ``` - Вихід: + Вихід: - ``` - Filesystem 1K-blocks Used Available Use% Mounted on - //localhost/Shared 73364480 17524224 55840256 24% ~/samba-client - ``` + ``` + Filesystem 1K-blocks Used Available Use% Mounted on + //localhost/Shared 73364480 17524224 55840256 24% ~/samba-client + ``` 4. Далі перелічіть вміст підключеного спільного ресурсу. Впишіть: - ```bash - ls ~/samba-client - ``` + ```bash + ls ~/samba-client + ``` 5. Створіть тестовий файл у Share: - ```bash - touch ~/samba-client/testfile.txt - ``` + ```bash + touch ~/samba-client/testfile.txt + ``` ## Завдання 4 @@ -190,21 +190,21 @@ _nmbd_: цей демон забезпечує обслуговування ім 1. Зробити визначення спільних ресурсів samba «Shared» доступним лише для читання. Це можна зробити, змінивши значення параметра writable з yes на no у файлі конфігурації smb.conf. Давайте використаємо `sed` onliner, щоб виконати це, виконавши: - ```bash - sudo sed -i'' -E \ - '/\[Shared\]/,+3 s/writable =.*$/writable = no/' /etc/samba/smb.conf - ``` + ```bash + sudo sed -i'' -E \ + '/\[Shared\]/,+3 s/writable =.*$/writable = no/' /etc/samba/smb.conf + ``` 2. Перезапустіть служби Samba: - ```bash - sudo systemctl restart smb nmb - ``` + ```bash + sudo systemctl restart smb nmb + ``` 3. Тепер перевірте запис до спільного ресурсу, спробувавши створити файл на змонтованому спільному ресурсі: - ```bash - touch ~/samba-client/testfile2.txt - ``` + ```bash + touch ~/samba-client/testfile2.txt + ``` ## Завдання 5 @@ -215,24 +215,24 @@ _nmbd_: цей демон забезпечує обслуговування ім #### Щоб створити нову групу для користувача Samba 1. Скористайтеся утилітою groupadd, щоб створити нову системну групу під назвою rockstars. Ми будемо використовувати цю групу в нашому прикладі для користувачів житлової системи, які мають доступ до певного ресурсу. Впишіть: - ```bash - sudo groupadd rockstars - ``` + ```bash + sudo groupadd rockstars + ``` 2. Додайте існуючого користувача системи/Samba до групи. Впишіть: - ```bash - sudo usermod -aG rockstars sambarockstar - ``` + ```bash + sudo usermod -aG rockstars sambarockstar + ``` #### Щоб налаштувати дійсних користувачів у конфігурації Samba 1. Скористайтеся утилітою sed, щоб додати новий дійсний параметр користувача до визначення спільного доступу у файлі конфігурації Samba. Впишіть: - ```bash - sudo sed -i '/\[Shared\]/a valid users = @sambagroup' /etc/samba/smb.conf - ``` + ```bash + sudo sed -i '/\[Shared\]/a valid users = @sambagroup' /etc/samba/smb.conf + ``` 2. Перезапустіть служби Samba: - ```bash - sudo systemctl restart smb nmb - ``` + ```bash + sudo systemctl restart smb nmb + ``` 3. Тепер протестуйте доступ до спільного ресурсу за допомогою sambarockstar і перевірте доступ. ## Завдання 6 @@ -249,17 +249,17 @@ _nmbd_: цей демон забезпечує обслуговування ім Налаштуйте свою машину (serverXY) як клієнт Samba для доступу до спільного каталогу на окремому хості (serverHQ). 1. Переконайтеся, що необхідні утиліти клієнта Samba встановлені у вашій локальній системі. - За потреби встановіть їх, виконавши: + За потреби встановіть їх, виконавши: - ```bash - sudo dnf install samba-client cifs-utils -y - ``` + ```bash + sudo dnf install samba-client cifs-utils -y + ``` 2. Створіть точку монтування на serverXY: - ```bash - mkdir ~/serverHQ-share - ``` + ```bash + mkdir ~/serverHQ-share + ``` #### Щоб підключити Samba Share із serverHQ @@ -277,15 +277,15 @@ sudo mount -t cifs //serverHQ/sharedFolder ~/serverHQ-share -o user=yourUsername 1. Перевірте, чи спільний каталог із serverHQ успішно змонтовано на вашій машині: - ```bash - ls ~/serverHQ-share - ``` + ```bash + ls ~/serverHQ-share + ``` 2. Спробуйте отримати доступ і змінити файли в підключеному спільному ресурсі. Наприклад, щоб створити новий файл: - ```bash - touch ~/serverHQ-share/newfile.txt - ``` + ```bash + touch ~/serverHQ-share/newfile.txt + ``` #### Щоб відключити віддалений спільний доступ From c777325b01bd5ad0b656eaf86d99d342972a2049 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:05 -0400 Subject: [PATCH 029/167] New translations ssh_ca_key_signing.md (Ukrainian) --- docs/guides/security/ssh_ca_key_signing.uk.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/guides/security/ssh_ca_key_signing.uk.md b/docs/guides/security/ssh_ca_key_signing.uk.md index 005d0f5d46..289a62d020 100644 --- a/docs/guides/security/ssh_ca_key_signing.uk.md +++ b/docs/guides/security/ssh_ca_key_signing.uk.md @@ -11,11 +11,11 @@ tags: ## Передумови -- Вміння використовувати засоби командного рядка -- Керування вмістом з командного рядка -- Попередній досвід створення ключів SSH корисний, але не обов’язковий -- Базове розуміння SSH та інфраструктури відкритих ключів корисне, але не обов’язкове -- Сервер, на якому працює демон sshd. + - Вміння використовувати засоби командного рядка + - Керування вмістом з командного рядка + - Попередній досвід створення ключів SSH корисний, але не обов’язковий + - Базове розуміння SSH та інфраструктури відкритих ключів корисне, але не обов’язкове + - Сервер, на якому працює демон sshd. ## Вступ @@ -25,13 +25,13 @@ tags: ## Цілі -- Покращення безпеки підключень SSH. -- Покращення процесу реєстрації та управління ключами. + - Покращення безпеки підключень SSH. + - Покращення процесу реєстрації та управління ключами. ## Примітки -- Vim є текстовим редактором за вибором автора. Допускається використання інших текстових редакторів, наприклад nano або інших. -- Використання `sudo` або `root` передбачає підвищені привілеї. + - Vim є текстовим редактором за вибором автора. Допускається використання інших текстових редакторів, наприклад nano або інших. + - Використання `sudo` або `root` передбачає підвищені привілеї. ## Початкове підключення @@ -65,9 +65,9 @@ Are you sure you want to continue connecting (yes/no/[fingerprint])? Де: -- **-b**: довжина ключа в байтах -- **-t**: тип ключа: rsa, ed25519, ecdsa... -- **-f**: вихідний файл ключа + - **-b**: довжина ключа в байтах + - **-t**: тип ключа: rsa, ed25519, ecdsa... + - **-f**: вихідний файл ключа Крім того, ви можете вказати файл `known_hosts` для всієї системи, відредагувавши файл конфігурації SSH `/etc/ssh/ssh_config`: @@ -94,11 +94,11 @@ Host * Де: -- **-s**: ключ підпису -- **-I**: ім'я, яке ідентифікує сертифікат для цілей реєстрації -- **-n**: ідентифікує ім’я (хост або користувач, один або кілька), пов’язане з сертифікатом (якщо не вказано, сертифікати дійсні для всіх користувачів або хостів) -- **-h**: визначає сертифікат як ключ хоста, на відміну від ключа клієнта -- **-V**: термін дії сертифіката + - **-s**: ключ підпису + - **-I**: ім'я, яке ідентифікує сертифікат для цілей реєстрації + - **-n**: ідентифікує ім’я (хост або користувач, один або кілька), пов’язане з сертифікатом (якщо не вказано, сертифікати дійсні для всіх користувачів або хостів) + - **-h**: визначає сертифікат як ключ хоста, на відміну від ключа клієнта + - **-V**: термін дії сертифіката ## Встановлення довіри From b10747ca43502db8c953766771e341a8f93a2e98 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:11 -0400 Subject: [PATCH 030/167] New translations gnome-extensions.md (Ukrainian) --- docs/desktop/gnome/gnome-extensions.uk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/desktop/gnome/gnome-extensions.uk.md b/docs/desktop/gnome/gnome-extensions.uk.md index a148c5b363..22f0848e06 100644 --- a/docs/desktop/gnome/gnome-extensions.uk.md +++ b/docs/desktop/gnome/gnome-extensions.uk.md @@ -56,7 +56,7 @@ gnome-shell --version 1. Перейдіть на [веб-сторінку розширення dash to dock](https://extensions.gnome.org/extension/307/dash-to-dock/){target="_blank"} 2. Перемкніть розширення з "вимкнено" на "увімкнено" - ![Увімкнути розширення](images/gnome_extensions_images/gnome-shell-extensions-toggle-btn.webp) + ![Увімкнути розширення](images/gnome_extensions_images/gnome-shell-extensions-toggle-btn.webp) 3. Коли буде запропоновано встановити розширення, натисніть "yes". ## Керування встановленими розширеннями From a4b2a44e64bf40705f64ee128763cdfa5f439ff5 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:12 -0400 Subject: [PATCH 031/167] New translations rdp-server.md (Ukrainian) --- docs/desktop/gnome/rdp-server.uk.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/desktop/gnome/rdp-server.uk.md b/docs/desktop/gnome/rdp-server.uk.md index 0b7bb8c207..54904c9ea5 100644 --- a/docs/desktop/gnome/rdp-server.uk.md +++ b/docs/desktop/gnome/rdp-server.uk.md @@ -20,11 +20,11 @@ contributors: Steven Spencer, Ganna Zhyrnova, Zhang Zhuyue Для цього посібника припускається, що ви вже налаштували наступне: -- Rocky Linux з Gnome -- Flatpak і Flathub встановлені та працюють -- Обліковий запис некореневого користувача -- Доступ адміністратора або sudo та готовність вставляти команди в термінал -- Сервер X (для спільного використання робочого столу) + - Rocky Linux з Gnome + - Flatpak і Flathub встановлені та працюють + - Обліковий запис некореневого користувача + - Доступ адміністратора або sudo та готовність вставляти команди в термінал + - Сервер X (для спільного використання робочого столу) !!! info "примітка" From 5470ccd74dc82c3e7457962c6b934c434d6cb949 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:15 -0400 Subject: [PATCH 032/167] New translations brother-all-in-one.md (Ukrainian) --- docs/desktop/printing/brother-all-in-one.uk.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/desktop/printing/brother-all-in-one.uk.md b/docs/desktop/printing/brother-all-in-one.uk.md index 6a8ceb94c4..3a0a127f0f 100644 --- a/docs/desktop/printing/brother-all-in-one.uk.md +++ b/docs/desktop/printing/brother-all-in-one.uk.md @@ -50,17 +50,17 @@ tags: 4. Введіть цю команду, щоб розпакувати завантажений файл: - ```bash - gunzip linux-brprinter-installer-*.*.*-*.gz - ``` + ```bash + gunzip linux-brprinter-installer-*.*.*-*.gz + ``` 5. Отримайте авторизацію суперкористувача за допомогою команди `su` або `sudo su`. 6. Запустіть інструмент: - ```bash - bash linux-brprinter-installer-*.*.*-* Brother machine name - ``` + ```bash + bash linux-brprinter-installer-*.*.*-* Brother machine name + ``` 7. Розпочнеться установка драйвера. Дотримуйтеся вказівок на екрані встановлення. From 604e418fc876c69d0b357036b8ef3b61b6fc3bb0 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:18 -0400 Subject: [PATCH 033/167] New translations x11vnc_plus_ssh_lan.md (Ukrainian) --- docs/desktop/gnome/x11vnc_plus_ssh_lan.uk.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/desktop/gnome/x11vnc_plus_ssh_lan.uk.md b/docs/desktop/gnome/x11vnc_plus_ssh_lan.uk.md index 637f35c1df..727963ce2a 100644 --- a/docs/desktop/gnome/x11vnc_plus_ssh_lan.uk.md +++ b/docs/desktop/gnome/x11vnc_plus_ssh_lan.uk.md @@ -20,8 +20,8 @@ x11vnc — потужна програма VNC. Те, що відрізняє x1 Для цього посібника передбачається, що у вас є: -- Робоча станція Rocky Linux -- привілеї `sudo` + - Робоча станція Rocky Linux + - привілеї `sudo` ## Налаштування сервера VNC @@ -161,8 +161,8 @@ vncviewer Поки що ця стаття показала вам, як налаштувати сервер x11vnc і підключитися до нього за допомогою VNC, що пересилається через тунель SSH. Здавалося б, очевидна, але все ж важлива деталь, про яку слід знати, полягає в тому, що цей метод працюватиме лише для комп’ютерів, підключених до мережі. Припустимо, ви хочете підключитися до комп’ютера в іншій локальній мережі. Спосіб досягти цього — налаштувати VPN. Нижче наведено кілька посібників щодо налаштування VPN: -- [OpenVPN](https://docs.rockylinux.org/guides/security/openvpn/) -- [Wireguard VPN](https://docs.rockylinux.org/guides/security/wireguard_vpn/) + - [OpenVPN](https://docs.rockylinux.org/guides/security/openvpn/) + - [Wireguard VPN](https://docs.rockylinux.org/guides/security/wireguard_vpn/) ## Висновок From 43bbaf1743ab637ecdc899e6daa5f5f2a50efc35 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:19 -0400 Subject: [PATCH 034/167] New translations 02-web-servers-intro.md (Ukrainian) --- .../web_services/02-web-servers-intro.uk.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/books/web_services/02-web-servers-intro.uk.md b/docs/books/web_services/02-web-servers-intro.uk.md index b76fc2f781..634d929860 100644 --- a/docs/books/web_services/02-web-servers-intro.uk.md +++ b/docs/books/web_services/02-web-servers-intro.uk.md @@ -23,14 +23,14 @@ HTTP — це протокол «запит-відповідь», що прац Відповідь HTTP – це набір рядків, які сервер надсилає браузеру. Це включає: -- **Рядок стану**: вказує версію протоколу та статус обробки запиту за допомогою коду та пояснювального тексту. Рядок складається з трьох елементів, розділених пробілом: - - Використана версія протоколу - - Код стану - - Значення коду + - **Рядок стану**: вказує версію протоколу та статус обробки запиту за допомогою коду та пояснювального тексту. Рядок складається з трьох елементів, розділених пробілом: + - Використана версія протоколу + - Код стану + - Значення коду -- **Поля заголовка відповіді**: це необов’язкові рядки, які надають додаткову інформацію про відповідь та/або сервер. Кожен рядок складається з назви, яка визначає тип заголовка, за якою йде двокрапка (:) і значення заголовка. + - **Поля заголовка відповіді**: це необов’язкові рядки, які надають додаткову інформацію про відповідь та/або сервер. Кожен рядок складається з назви, яка визначає тип заголовка, за якою йде двокрапка (:) і значення заголовка. -- **Тіло відповіді**: містить запитуваний документ. + - **Тіло відповіді**: містить запитуваний документ. Ось приклад відповіді HTTP: @@ -70,15 +70,15 @@ URL-адреса складається з трьох частин: ://:/ ``` -- **Назва протоколу**: це мова, яка використовується для спілкування через мережу, як-от HTTP, HTTPS, FTP тощо. Найпоширенішими протоколами є HTTP (протокол передачі гіпертексту) і його безпечна версія HTTPS, яка використовується для обміну веб-сторінками у форматі HTML. + - **Назва протоколу**: це мова, яка використовується для спілкування через мережу, як-от HTTP, HTTPS, FTP тощо. Найпоширенішими протоколами є HTTP (протокол передачі гіпертексту) і його безпечна версія HTTPS, яка використовується для обміну веб-сторінками у форматі HTML. -- **Логін** і **пароль**: дозволяє вказати параметри доступу до захищеного сервера. Цей параметр не рекомендується, оскільки пароль відображається в URL-адресі (з міркувань безпеки). + - **Логін** і **пароль**: дозволяє вказати параметри доступу до захищеного сервера. Цей параметр не рекомендується, оскільки пароль відображається в URL-адресі (з міркувань безпеки). -- **Хост**: це ім’я комп’ютера, на якому розміщено запитуваний ресурс. Зауважте, що можливе використання IP-адреси сервера, що робить URL-адресу менш читабельною. + - **Хост**: це ім’я комп’ютера, на якому розміщено запитуваний ресурс. Зауважте, що можливе використання IP-адреси сервера, що робить URL-адресу менш читабельною. -- **Номер порту**: це пов’язано зі службою, яка дозволяє серверу знати запитуваний тип ресурсу. Порт протоколу HTTP за замовчуванням — порт 80 і 443 із HTTPS. Отже, номер порту необов’язковий, якщо протокол HTTP або HTTPS. + - **Номер порту**: це пов’язано зі службою, яка дозволяє серверу знати запитуваний тип ресурсу. Порт протоколу HTTP за замовчуванням — порт 80 і 443 із HTTPS. Отже, номер порту необов’язковий, якщо протокол HTTP або HTTPS. -- **Шлях ресурсу**: ця частина дозволяє серверу знати розташування ресурсу. Як правило, це розташування (каталог) і ім’я запитуваного файлу. Якщо в адресі нічого не вказано місце розташування, це вказує на першу сторінку хоста. В іншому випадку він вказує шлях до сторінки для відображення. + - **Шлях ресурсу**: ця частина дозволяє серверу знати розташування ресурсу. Як правило, це розташування (каталог) і ім’я запитуваного файлу. Якщо в адресі нічого не вказано місце розташування, це вказує на першу сторінку хоста. В іншому випадку він вказує шлях до сторінки для відображення. ### Порти From 810b4516aec0e46fec4919fa5c4e0e72e5e2d203 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:22 -0400 Subject: [PATCH 035/167] New translations 022-web-servers-nginx.md (Ukrainian) --- .../web_services/022-web-servers-nginx.uk.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/books/web_services/022-web-servers-nginx.uk.md b/docs/books/web_services/022-web-servers-nginx.uk.md index ab3b47c027..8dbf966a76 100644 --- a/docs/books/web_services/022-web-servers-nginx.uk.md +++ b/docs/books/web_services/022-web-servers-nginx.uk.md @@ -43,24 +43,24 @@ Nginx має значну частку ринку в 28% на найбільш Nginx пропонує такі основні функції: -- Хостинг статичних веб-сторінок -- Автоматичне створення індексної сторінки -- Прискорений зворотний проксі з кешем -- Балансування навантаження -- Відмовостійкість -- Кешована підтримка для кеш-сервера FastCGI, uWSGI, SCGI та Memcached -- Різні фільтри для gzip, xslt, ssi, трансформації зображень тощо -- Підтримка SSL/TLS і SNI -- Підтримка HTTP/2 + - Хостинг статичних веб-сторінок + - Автоматичне створення індексної сторінки + - Прискорений зворотний проксі з кешем + - Балансування навантаження + - Відмовостійкість + - Кешована підтримка для кеш-сервера FastCGI, uWSGI, SCGI та Memcached + - Різні фільтри для gzip, xslt, ssi, трансформації зображень тощо + - Підтримка SSL/TLS і SNI + - Підтримка HTTP/2 Інші особливості: -- Хостинг по імені або IP-адресі -- Keepalive керування підключеннями клієнтів -- Керування журналами: syslog, ротація, буфер -- Перезапис URI -- Контроль доступу: за IP, паролем та ін -- Потокове передавання FLV і MP4 + - Хостинг по імені або IP-адресі + - Keepalive керування підключеннями клієнтів + - Керування журналами: syslog, ротація, буфер + - Перезапис URI + - Контроль доступу: за IP, паролем та ін + - Потокове передавання FLV і MP4 ### Встановлення @@ -277,5 +277,5 @@ access_log syslog:server=192.168.1.100:5514,tag=nginx debug; Директива сервера приймає багато аргументів: -- `max_fails=numberofattempts`: встановлює кількість спроб з’єднання, які мають бути невдалими протягом періоду часу, визначеного параметром `fail_timeout`, щоб сервер вважався недоступним. Значення за замовчуванням 1; 0 вимикає функціональність. -- `fail_timeout=time`: встановлює час, протягом якого певна кількість підключень призведе до того, що сервер буде недоступний, і встановлює період часу, протягом якого сервер вважатиметься недоступним. Значення за замовчуванням становить 10 секунд. + - `max_fails=numberofattempts`: встановлює кількість спроб з’єднання, які мають бути невдалими протягом періоду часу, визначеного параметром `fail_timeout`, щоб сервер вважався недоступним. Значення за замовчуванням 1; 0 вимикає функціональність. + - `fail_timeout=time`: встановлює час, протягом якого певна кількість підключень призведе до того, що сервер буде недоступний, і встановлює період часу, протягом якого сервер вважатиметься недоступним. Значення за замовчуванням становить 10 секунд. From ad12cffaf96a7d8d8c6479c922835a805a43b55f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:27 -0400 Subject: [PATCH 036/167] New translations firewallgui.md (Ukrainian) --- docs/desktop/tools/firewallgui.uk.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/tools/firewallgui.uk.md b/docs/desktop/tools/firewallgui.uk.md index ee8bf0262a..07ee131f39 100644 --- a/docs/desktop/tools/firewallgui.uk.md +++ b/docs/desktop/tools/firewallgui.uk.md @@ -14,9 +14,9 @@ contributors: Steven Spencer, Ganna Zhyrnova Для цього посібника ми припускаємо, що у вас є: -- Інсталяція Rocky Linux з будь-яким графічним середовищем робочого столу -- `sudo` або доступ адміністратора -- Фундаментальне розуміння того, як працює `firewalld` + - Інсталяція Rocky Linux з будь-яким графічним середовищем робочого столу + - `sudo` або доступ адміністратора + - Фундаментальне розуміння того, як працює `firewalld` !!! note "Примітка" From e0573bf73b295476b44751478a04aee4b29e54e0 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:28 -0400 Subject: [PATCH 037/167] New translations dconf.md (Ukrainian) --- docs/desktop/gnome/dconf.uk.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/desktop/gnome/dconf.uk.md b/docs/desktop/gnome/dconf.uk.md index c9e94385f2..e5231ffb00 100644 --- a/docs/desktop/gnome/dconf.uk.md +++ b/docs/desktop/gnome/dconf.uk.md @@ -28,8 +28,8 @@ GNOME використовує дуже спрощений підхід до с Для цього посібника вам потрібно: -- Rocky Linux із встановленим GNOME. -- Повноваження на встановлення програмного забезпечення у вашій системі (права sudo). + - Rocky Linux із встановленим GNOME. + - Повноваження на встановлення програмного забезпечення у вашій системі (права sudo). ## Встановлення `dconf Editor` From fb2a0c4782f78a0bfd296a77c1bfb94f836a04a2 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:29 -0400 Subject: [PATCH 038/167] New translations businessapps.md (Ukrainian) --- docs/desktop/tools/businessapps.uk.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/tools/businessapps.uk.md b/docs/desktop/tools/businessapps.uk.md index c4960a3c8d..ca3e891321 100644 --- a/docs/desktop/tools/businessapps.uk.md +++ b/docs/desktop/tools/businessapps.uk.md @@ -14,9 +14,9 @@ contributors: Steven Spencer, Ganna Zhyrnova Цей посібник передбачає наступне: -- Rocky Linux із графічним середовищем робочого столу -- Повноваження на встановлення програмного забезпечення у вашій системі -- Flatpak і Flathub встановлені та працюють + - Rocky Linux із графічним середовищем робочого столу + - Повноваження на встановлення програмного забезпечення у вашій системі + - Flatpak і Flathub встановлені та працюють ## Як інсталювати звичайне бізнес-програмне забезпечення на Rocky Linux From 75b402af373655d868b52673c55af8d813b0fa96 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:31 -0400 Subject: [PATCH 039/167] New translations onlineaccounts.md (Ukrainian) --- docs/desktop/gnome/onlineaccounts.uk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/desktop/gnome/onlineaccounts.uk.md b/docs/desktop/gnome/onlineaccounts.uk.md index 8ce56f06ef..4d4165796c 100644 --- a/docs/desktop/gnome/onlineaccounts.uk.md +++ b/docs/desktop/gnome/onlineaccounts.uk.md @@ -14,7 +14,7 @@ contributors: Steven Spencer У цьому посібнику передбачається, що ви маєте наступне: -- Rocky Linux із встановленим робочим середовищем GNOME. + - Rocky Linux із встановленим робочим середовищем GNOME. ## Як додати облікові записи онлайн From 31cfb9a0154d45c298d542fb1d871e8c30c77fcf Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:36 -0400 Subject: [PATCH 040/167] New translations install_software_with_appimage.md (Ukrainian) --- docs/desktop/appimage/install_software_with_appimage.uk.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/desktop/appimage/install_software_with_appimage.uk.md b/docs/desktop/appimage/install_software_with_appimage.uk.md index 6508c3bd78..b7ea8b0388 100644 --- a/docs/desktop/appimage/install_software_with_appimage.uk.md +++ b/docs/desktop/appimage/install_software_with_appimage.uk.md @@ -20,8 +20,8 @@ AppImages — це зручний спосіб інсталювати прогр Для цього посібника вам потрібно: -- Rocky Linux із встановленим робочим середовищем -- привілеї `sudo` + - Rocky Linux із встановленим робочим середовищем + - привілеї `sudo` ## Завантаження AppImage програми From 268ded4e216ecfc6617f1fcbfaf28332a7c5c424 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:37 -0400 Subject: [PATCH 041/167] New translations installing_nvidia_gpu_drivers.md (Ukrainian) --- .../display/installing_nvidia_gpu_drivers.uk.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/desktop/display/installing_nvidia_gpu_drivers.uk.md b/docs/desktop/display/installing_nvidia_gpu_drivers.uk.md index 7d3e556825..cf141a8779 100644 --- a/docs/desktop/display/installing_nvidia_gpu_drivers.uk.md +++ b/docs/desktop/display/installing_nvidia_gpu_drivers.uk.md @@ -16,9 +16,9 @@ Nvidia є одним з найпопулярніших виробників GPU. Деякі інші альтернативні способи встановлення драйверів Nvidia включають: -- Nvidia's `.run` installer -- Сторонній репозиторій RPMFusion -- Сторонній драйвер ELRepo + - Nvidia's `.run` installer + - Сторонній репозиторій RPMFusion + - Сторонній драйвер ELRepo У більшості випадків найкраще встановити драйвери Nvidia з офіційного джерела. RPMFusion і ELRepo доступні для тих, хто віддає перевагу репозиторію на основі спільноти. Для старішого обладнання найкраще працює RPMFusion. Бажано уникати використання інсталятора `.run`. Хоча це зручно, використання інсталятора `.run` відоме тим, що він перезаписує системні файли та має проблеми з несумісністю. @@ -26,8 +26,8 @@ Nvidia є одним з найпопулярніших виробників GPU. Для цього посібника вам потрібно: -- Робоча станція Rocky Linux -- привілеї `sudo` + - Робоча станція Rocky Linux + - привілеї `sudo` ## Встановіть необхідні утиліти та залежності From 93bf2a84127763d7d604582d603d6d2469f35c1e Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:39 -0400 Subject: [PATCH 042/167] New translations decibels.md (Ukrainian) --- docs/desktop/gnome/decibels.uk.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/desktop/gnome/decibels.uk.md b/docs/desktop/gnome/decibels.uk.md index e2dc46cd2e..853f250240 100644 --- a/docs/desktop/gnome/decibels.uk.md +++ b/docs/desktop/gnome/decibels.uk.md @@ -12,9 +12,9 @@ Decibels — програма, яка відтворює аудіофайли. У цьому посібнику передбачається, що ви маєте наступне: -- Rocky Linux -- Flatpak -- FlatHub + - Rocky Linux + - Flatpak + - FlatHub ## Процес встановлення @@ -26,15 +26,15 @@ Decibels — програма, яка відтворює аудіофайли. 2. Скопіюйте сценарій встановлення вручну та запустіть його в терміналі: - ```bash - flatpak install flathub org.gnome.Decibels - ``` + ```bash + flatpak install flathub org.gnome.Decibels + ``` 3. Нарешті, скопіюйте команду запуску та запустіть її у своєму терміналі: - ```bash - flatpak run org.gnome.Decibels - ``` + ```bash + flatpak run org.gnome.Decibels + ``` ## Як використовувати @@ -42,11 +42,11 @@ Decibels — програма, яка відтворює аудіофайли. 1. Натисніть _Open_ - ![Screenshot of Decibels' landing page with a red rectangle surrounding the blue open button](images/02_decibels.png) + ![Screenshot of Decibels' landing page with a red rectangle surrounding the blue open button](images/02_decibels.png) 2. Виберіть потрібний файл і натисніть кнопку **Open**, яка з’явиться у верхньому правому куті екрана - ![Screenshot of Decibels file selection interface with numbered arrows indicating audio file and Open button](images/03_decibels.png) + ![Screenshot of Decibels file selection interface with numbered arrows indicating audio file and Open button](images/03_decibels.png) !!! note "Примітка" From aae598d451319b9f51e87aa0d1bcebf6e611d708 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:40 -0400 Subject: [PATCH 043/167] New translations decoder.md (Ukrainian) --- docs/desktop/gnome/decoder.uk.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/desktop/gnome/decoder.uk.md b/docs/desktop/gnome/decoder.uk.md index e50cf77c12..fd0f668e40 100644 --- a/docs/desktop/gnome/decoder.uk.md +++ b/docs/desktop/gnome/decoder.uk.md @@ -12,34 +12,34 @@ contributors: Steven Spencer, Ganna Zhyrnova У цьому посібнику передбачається, що ви маєте наступне: -- Rocky Linux -- Flatpak -- FlatHub + - Rocky Linux + - Flatpak + - FlatHub ## Процес встановлення 1. Перейдіть на [веб-сайт Flathub](https://flathub.org/), введіть «Декодер» у рядку пошуку та натисніть **Встановити**. ![Screenshot of the install button highlighted by a red rectangle](images/01_decoder.png) - ![manual install script and run script](images/decoder_install.png) + ![manual install script and run script](images/decoder_install.png) 2. Скопіюйте сценарій встановлення вручну та запустіть його в терміналі: - ```bash - flatpak install flathub com.belmoussaoui.Decoder - ``` + ```bash + flatpak install flathub com.belmoussaoui.Decoder + ``` 3. Нарешті, скопіюйте команду запуску та запустіть її у своєму терміналі: - ```bash - flatpak run com.belmoussaoui.Decoder - ``` + ```bash + flatpak run com.belmoussaoui.Decoder + ``` ## Як створити QR-код Доступні два типи QR-кодів. Виберіть варіант, який найкраще відповідає вашим потребам: -- [Text](#text) -- [Wifi](#wifi) + - [Text](#text) + - [Wifi](#wifi) ### Text @@ -51,7 +51,7 @@ contributors: Steven Spencer, Ganna Zhyrnova 3. Натисніть **Create** - ![Screenshot of the Save and Export screen with arrows](images/03_decoder-text.png) + ![Screenshot of the Save and Export screen with arrows](images/03_decoder-text.png) 4. Натисніть **Save** @@ -77,15 +77,15 @@ contributors: Steven Spencer, Ganna Zhyrnova 1. Натисніть **Scan** - ![Screenshot of the rectangular button with the words "From a Screenshot" written in white.](images/02_decoder-scan.png) + ![Screenshot of the rectangular button with the words "From a Screenshot" written in white.](images/02_decoder-scan.png) 2. Натисніть **From a Screenshot** - ![Screenshot of grey square surrounding options menu, and red square surrounding the "Take a Screenshot button"](images/03_decoder-scan.png) + ![Screenshot of grey square surrounding options menu, and red square surrounding the "Take a Screenshot button"](images/03_decoder-scan.png) 3. Виберіть потрібні ефекти та натисніть **Take a Screenshot** - ![Screenshot of a red arrow pointing at a blue button that has the word "Share" written in white](images/04_decoder-scan.png) + ![Screenshot of a red arrow pointing at a blue button that has the word "Share" written in white](images/04_decoder-scan.png) 4. Натисніть **Share** From d2f762ff507832934c25c0b3923c0cbbd48dfe4c Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:42 -0400 Subject: [PATCH 044/167] New translations valuta.md (Ukrainian) --- docs/desktop/gnome/valuta.uk.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/desktop/gnome/valuta.uk.md b/docs/desktop/gnome/valuta.uk.md index 62b5aa4f0a..42ba20a3f6 100644 --- a/docs/desktop/gnome/valuta.uk.md +++ b/docs/desktop/gnome/valuta.uk.md @@ -12,9 +12,9 @@ contributors: Steven Spencer, Ganna Zhyrnova У цьому посібнику передбачається, що ви маєте наступне: -- Rocky Linux -- Flatpak -- FlatHub + - Rocky Linux + - Flatpak + - FlatHub ## Процес встановлення @@ -22,19 +22,19 @@ contributors: Steven Spencer, Ganna Zhyrnova 1. Перейдіть на [Flathub.org](https://flathub.org), введіть «Valuta» в рядку пошуку та натисніть **Install** - ![manual install script and run script](images/valuta-install.png) + ![manual install script and run script](images/valuta-install.png) 2. Скопіюйте скрипт у свій термінал: - ```bash - flatpak install flathub io.github.idevecore.Valuta - ``` + ```bash + flatpak install flathub io.github.idevecore.Valuta + ``` 3. Нарешті, скрипт у вашому терміналі: - ```bash - flatpak run flathub io.github.idevecore.Valuta - ``` + ```bash + flatpak run flathub io.github.idevecore.Valuta + ``` ## Як використовувати @@ -42,7 +42,7 @@ contributors: Steven Spencer, Ganna Zhyrnova 1. Виберіть свою країну зі спадного меню та введіть суму готівки, яку хочете витратити. - ![Screenshot of Valuta app showing 1000 USD in the input field, with a grey arrow pointing down to a grey box showing 1000 USD](images/02_valuta.png) + ![Screenshot of Valuta app showing 1000 USD in the input field, with a grey arrow pointing down to a grey box showing 1000 USD](images/02_valuta.png) 2. Виберіть країну, до якої ви подорожуєте, зі спадного меню. Звідти автоматично з’являється конвертована сума. From 08c1ea5f0c53d32c580fa50937143d6578d26427 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:43 -0400 Subject: [PATCH 045/167] New translations file-shredder.md (Ukrainian) --- docs/desktop/gnome/file-shredder.uk.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/gnome/file-shredder.uk.md b/docs/desktop/gnome/file-shredder.uk.md index af428bf672..fb9688f1ab 100644 --- a/docs/desktop/gnome/file-shredder.uk.md +++ b/docs/desktop/gnome/file-shredder.uk.md @@ -12,9 +12,9 @@ contributors: Steven Spencer, Ganna Zhyrnova У цьому посібнику передбачається, що ви маєте наступне: -- Rocky Linux -- Flatpak -- FlatHub + - Rocky Linux + - Flatpak + - FlatHub ## Процес встановлення From 9c477f51cceb27a0072a6ca77b5f19d37b188ed8 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:45 -0400 Subject: [PATCH 046/167] New translations screenshot.md (Ukrainian) --- docs/desktop/gnome/screenshot.uk.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/desktop/gnome/screenshot.uk.md b/docs/desktop/gnome/screenshot.uk.md index b54c3ed5c8..34fce275cf 100644 --- a/docs/desktop/gnome/screenshot.uk.md +++ b/docs/desktop/gnome/screenshot.uk.md @@ -12,7 +12,7 @@ contributors: Steven Spencer, Ganna Zhyrnova У цьому посібнику передбачається, що ви маєте наступне: -- Rocky Linux + - Rocky Linux !!! note "Примітка" @@ -30,7 +30,7 @@ contributors: Steven Spencer, Ganna Zhyrnova 2. Натисніть **Take a Screenshot** - ![Screenshot of taken picture of being saved with black arrows pointing at a text box that contains the file name, "Linux.png" as well as Save and Copy buttons](images/screenshot-02.png) + ![Screenshot of taken picture of being saved with black arrows pointing at a text box that contains the file name, "Linux.png" as well as Save and Copy buttons](images/screenshot-02.png) 3. Коли ви будете задоволені знімком екрана, перейменуйте файл і натисніть **Зберегти**. From b1f79fc509b5b1bea399290648dc8d51d3112350 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:46 -0400 Subject: [PATCH 047/167] New translations proton.md (Ukrainian) --- docs/desktop/gaming/proton.uk.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/gaming/proton.uk.md b/docs/desktop/gaming/proton.uk.md index c4c16febe5..44ef1b245c 100644 --- a/docs/desktop/gaming/proton.uk.md +++ b/docs/desktop/gaming/proton.uk.md @@ -14,9 +14,9 @@ Proton — це проект Valve, спрямований на перенесе ## Припущення -- Робоча станція Rocky Linux із робочим середовищем -- Flatpak -- Акаунт Steam + - Робоча станція Rocky Linux із робочим середовищем + - Flatpak + - Акаунт Steam ## Встановлення Steam From 6cd5ab8911b70dd6341e56257cd54dd46dbe71bd Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:49 -0400 Subject: [PATCH 048/167] New translations wordpress-on-lamp.md (Ukrainian) --- docs/guides/cms/wordpress-on-lamp.uk.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/cms/wordpress-on-lamp.uk.md b/docs/guides/cms/wordpress-on-lamp.uk.md index 2ccd975b0a..dabb8a2fb7 100644 --- a/docs/guides/cms/wordpress-on-lamp.uk.md +++ b/docs/guides/cms/wordpress-on-lamp.uk.md @@ -7,8 +7,8 @@ tested_with: 9.2 ## Передумови -- Система Rocky Linux 9.x -- привілеї sudo + - Система Rocky Linux 9.x + - привілеї sudo ## Вступ From 1fcfdeb594b3a7cf711632be2ebf2ea4af2a0db8 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:54 -0400 Subject: [PATCH 049/167] New translations libvirt-rocky.md (Ukrainian) --- .../guides/virtualization/libvirt-rocky.uk.md | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/docs/guides/virtualization/libvirt-rocky.uk.md b/docs/guides/virtualization/libvirt-rocky.uk.md index 386200c95c..1123e03576 100644 --- a/docs/guides/virtualization/libvirt-rocky.uk.md +++ b/docs/guides/virtualization/libvirt-rocky.uk.md @@ -17,8 +17,8 @@ tags: ## Передумови -- 4-бітна машина під керуванням Rocky Linux 9. -- Переконайтеся, що віртуалізація включена в налаштуваннях BIOS. Якщо наступна команда повертає вихідні дані, це означає, що активацію віртуалізації завершено: + - 4-бітна машина під керуванням Rocky Linux 9. + - Переконайтеся, що віртуалізація включена в налаштуваннях BIOS. Якщо наступна команда повертає вихідні дані, це означає, що активацію віртуалізації завершено: ```bash sudo grep -e 'vmx' /proc/cpuinfo @@ -26,13 +26,13 @@ sudo grep -e 'vmx' /proc/cpuinfo ## Налаштування репозиторію та встановлення пакетів -- Увімкніть репозиторій EPEL (додаткові пакети для Enterprise Linux): + - Увімкніть репозиторій EPEL (додаткові пакети для Enterprise Linux): ```bash sudo dnf install -y epel-release ``` -- Встановіть необхідні пакунки для `libvirt` (необов’язково для `virt-manager`, якщо ви бажаєте використовувати GUI для керування своїми віртуальними машинами): + - Встановіть необхідні пакунки для `libvirt` (необов’язково для `virt-manager`, якщо ви бажаєте використовувати GUI для керування своїми віртуальними машинами): ```bash sudo dnf install -y bridge-utils virt-top libguestfs-tools bridge-utils virt-viewer qemu-kvm libvirt virt-manager virt-install @@ -40,19 +40,19 @@ sudo dnf install -y bridge-utils virt-top libguestfs-tools bridge-utils virt-vie ## налаштування користувача libvirt -- Додайте свого користувача до групи `libvirt`. Це дає змогу керувати вашими віртуальними машинами та використовувати такі команди, як `virt-install`, як не-root користувач: + - Додайте свого користувача до групи `libvirt`. Це дає змогу керувати вашими віртуальними машинами та використовувати такі команди, як `virt-install`, як не-root користувач: ```bash sudo usermod -aG libvirt $USER ``` -- Активуйте групу `libvirt` за допомогою команди `newgrp`: + - Активуйте групу `libvirt` за допомогою команди `newgrp`: ```bash sudo newgrp libvirt ``` -- Увімкніть і запустіть службу `libvirtd`: + - Увімкніть і запустіть службу `libvirtd`: ```bash sudo systemctl enable --now libvirtd @@ -60,13 +60,13 @@ sudo systemctl enable --now libvirtd ## Налаштування інтерфейсу Bridge для прямого доступу до віртуальних машин -- Перевірте поточні інтерфейси, які використовуються, і запишіть основний інтерфейс із підключенням до Інтернету: + - Перевірте поточні інтерфейси, які використовуються, і запишіть основний інтерфейс із підключенням до Інтернету: ```bash sudo nmcli connection show ``` -- Видаліть інтерфейс, підключений до Інтернету, і будь-які існуючі віртуальні мостові підключення: + - Видаліть інтерфейс, підключений до Інтернету, і будь-які існуючі віртуальні мостові підключення: ```bash sudo nmcli connection delete @@ -78,43 +78,43 @@ sudo nmcli connection delete Переконайтеся, що у вас є прямий доступ до машини. Якщо ви налаштовуєте машину через SSH, з’єднання буде розірвано після видалення з’єднання основного інтерфейсу. ``` -- Створіть нове з'єднання мосту: + - Створіть нове з'єднання мосту: ```bash sudo nmcli connection add type bridge autoconnect yes con-name ifname ``` -- Призначте статичну IP-адресу: + - Призначте статичну IP-адресу: ```bash sudo nmcli connection modify ipv4.addresses ipv4.method manual ``` -- Призначте адресу шлюзу: + - Призначте адресу шлюзу: ```bash sudo nmcli connection modify ipv4.gateway ``` -- Призначте адресу DNS: + - Призначте адресу DNS: ```bash sudo nmcli connection modify ipv4.dns ``` -- Додайте підпорядковане підключення мосту: + - Додайте підпорядковане підключення мосту: ```bash sudo nmcli connection add type bridge-slave autoconnect yes con-name ifname master ``` -- Запустіть з'єднання мостом: + - Запустіть з'єднання мостом: ```bash sudo nmcli connection up ``` -- Додайте рядок `allow all` до `bridge.conf`: + - Додайте рядок `allow all` до `bridge.conf`: ```bash sudo tee -a /etc/qemu-kvm/bridge.conf < ``` -- Щоб примусово вимкнути віртуальну машину, яка не відповідає, скористайтеся командою `destroy`: + - Щоб примусово вимкнути віртуальну машину, яка не відповідає, скористайтеся командою `destroy`: ```bash virsh destroy --domain @@ -160,14 +160,14 @@ virsh destroy --domain ## Як видалити віртуальну машину -- Використовуйте команду `undefine`: + - Використовуйте команду `undefine`: ```bash virsh undefine --domain --nvram ``` -- Щоб отримати додаткові команди `virsh`, перевірте сторінки `man` `virsh`. + - Щоб отримати додаткові команди `virsh`, перевірте сторінки `man` `virsh`. ## Висновок -- libvirt надає багато можливостей і дозволяє легко встановлювати віртуальні машини та керувати ними. Якщо у вас є додаткові доповнення або зміни до цього документа, якими ви хотіли б поділитися, автор люб’язно запрошує вас це зробити. + - libvirt надає багато можливостей і дозволяє легко встановлювати віртуальні машини та керувати ними. Якщо у вас є додаткові доповнення або зміни до цього документа, якими ви хотіли б поділитися, автор люб’язно запрошує вас це зробити. From 3430d25ccae7ed81550a5e725cd36bc54f4d329c Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:57 -0400 Subject: [PATCH 050/167] New translations tar.md (Ukrainian) --- docs/guides/backup/tar.uk.md | 192 +++++++++++++++++------------------ 1 file changed, 96 insertions(+), 96 deletions(-) diff --git a/docs/guides/backup/tar.uk.md b/docs/guides/backup/tar.uk.md index f97cbb6682..b5a5ac26e1 100644 --- a/docs/guides/backup/tar.uk.md +++ b/docs/guides/backup/tar.uk.md @@ -106,30 +106,30 @@ Shell > tar --show-defaults 1. Традиційний стиль: - - `tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]`. + - `tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]`. 2. Використання стилю короткого варіанту: - - `tar -A [OPTIONS] ARCHIVE ARCHIVE` - - `tar -c [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar -d [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...]` - - `tar -r [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar -u [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar -A [OPTIONS] ARCHIVE ARCHIVE` + - `tar -c [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar -d [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar -r [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar -u [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...]` 3. Використання стилю довгого варіанту: - - `tar {--catenate|--concatenate} [OPTIONS] ARCHIVE ARCHIVE` - - `tar --create [--file ARCHIVE] [OPTIONS] [FILE...]` - - `tar {--diff|--compare} [--file ARCHIVE] [OPTIONS] [FILE...]` - - `tar --delete [--file ARCHIVE] [OPTIONS] [MEMBER...]` - - `tar --append [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar --list [-f ARCHIVE] [OPTIONS] [MEMBER...]` - - `tar --test-label [--file ARCHIVE] [OPTIONS] [LABEL...]` - - `tar --update [--file ARCHIVE] [OPTIONS] [FILE...]` - - `tar --update [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar {--extract|--get} [-f ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar {--catenate|--concatenate} [OPTIONS] ARCHIVE ARCHIVE` + - `tar --create [--file ARCHIVE] [OPTIONS] [FILE...]` + - `tar {--diff|--compare} [--file ARCHIVE] [OPTIONS] [FILE...]` + - `tar --delete [--file ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar --append [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar --list [-f ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar --test-label [--file ARCHIVE] [OPTIONS] [LABEL...]` + - `tar --update [--file ARCHIVE] [OPTIONS] [FILE...]` + - `tar --update [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar {--extract|--get} [-f ARCHIVE] [OPTIONS] [MEMBER...]` Другий метод є більш поширеним і відповідає звичкам більшості користувачів GNU/Linux. @@ -166,98 +166,98 @@ Shell > tar --show-defaults 1. Архівуйте та стискайте **/etc/** у відносному режимі з суфіксом `.tar.gz`: - ```bash - Shell > tar -czvf /tmp/etc-20241207.tar.gz /etc/ - ``` + ```bash + Shell > tar -czvf /tmp/etc-20241207.tar.gz /etc/ + ``` - Через те, що `tar` за замовчуванням працює у відносному режимі, перший рядок виводу команди відображатиме наступне: + Через те, що `tar` за замовчуванням працює у відносному режимі, перший рядок виводу команди відображатиме наступне: - ```bash - tar: Removing leading '/' from member names - ``` + ```bash + tar: Removing leading '/' from member names + ``` 2. Архівуйте **/var/log/** і виберіть тип xz для стиснення: - ```bash - Shell > tar -cJvf /tmp/log-20241207.tar.xz /var/log/ + ```bash + Shell > tar -cJvf /tmp/log-20241207.tar.xz /var/log/ - Shell > du -sh /var/log/ ; ls -lh /tmp/log-20241207.tar.xz - 18M /var/log/ - -rw-r--r-- 1 root root 744K Dec 7 14:40 /tmp/log-20241207.tar.xz - ``` + Shell > du -sh /var/log/ ; ls -lh /tmp/log-20241207.tar.xz + 18M /var/log/ + -rw-r--r-- 1 root root 744K Dec 7 14:40 /tmp/log-20241207.tar.xz + ``` 3. Оцініть розмір файлу без створення архіву: - ```bash - Shell > tar -cJf - /etc | wc -c - tar: Removing leading `/' from member names - 3721884 - ``` + ```bash + Shell > tar -cJf - /etc | wc -c + tar: Removing leading `/' from member names + 3721884 + ``` - Одиницею виведення команди `wc -c` є байти. + Одиницею виведення команди `wc -c` є байти. 4. Виріжте великі файли `.tar.gz`: - ```bash - Shell > cd /tmp/ ; tar -czf - /etc/ | split -d -b 2M - etc-backup20241207.tar.gz. + ```bash + Shell > cd /tmp/ ; tar -czf - /etc/ | split -d -b 2M - etc-backup20241207.tar.gz. - Shell > ls -lh /tmp/ - -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.00 - -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.01 - -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.02 - -rw-r--r-- 1 root root 70K Dec 7 20:46 etc-backup20241207.tar.gz.03 - ``` + Shell > ls -lh /tmp/ + -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.00 + -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.01 + -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.02 + -rw-r--r-- 1 root root 70K Dec 7 20:46 etc-backup20241207.tar.gz.03 + ``` - Перший «-» представляє вхідні параметри `tar`, тоді як другий «-» повідомляє `tar` перенаправити вихід на `stdout`. + Перший «-» представляє вхідні параметри `tar`, тоді як другий «-» повідомляє `tar` перенаправити вихід на `stdout`. - Щоб витягнути ці вирізані невеликі файли, ви можете вказати таку операцію: + Щоб витягнути ці вирізані невеликі файли, ви можете вказати таку операцію: - ```bash - Shell > cd /tmp/ ; cat etc-backup20241207.tar.gz.* >> /tmp/etc-backup-20241207.tar.gz + ```bash + Shell > cd /tmp/ ; cat etc-backup20241207.tar.gz.* >> /tmp/etc-backup-20241207.tar.gz - Shell > cd /tmp/ ; tar -xvf etc-backup-20241207.tar.gz -C /tmp/dir1/ - ``` + Shell > cd /tmp/ ; tar -xvf etc-backup-20241207.tar.gz -C /tmp/dir1/ + ``` #### Тип `-x` 1. Завантажте вихідний код Redis і розпакуйте його в каталог `/usr/local/src/`: - ```bash - Shell > wget -c https://github.com/redis/redis/archive/refs/tags/7.4.1.tar.gz + ```bash + Shell > wget -c https://github.com/redis/redis/archive/refs/tags/7.4.1.tar.gz - Shell > tar -xvf 7.4.1.tar.gz -C /usr/local/src/ - ``` + Shell > tar -xvf 7.4.1.tar.gz -C /usr/local/src/ + ``` 2. Розпакуйте лише один файл із zip-архіву - ```bash - Shell > tar -xvf /tmp/etc-20241207.tar.gz etc/chrony.conf - ``` + ```bash + Shell > tar -xvf /tmp/etc-20241207.tar.gz etc/chrony.conf + ``` #### Тип -A або -r 1. Додайте один файл `.tar` до іншого файлу `.tar`: - ```bash - Shell > tar -cvf /tmp/etc.tar /etc/ + ```bash + Shell > tar -cvf /tmp/etc.tar /etc/ - Shell > tar -cvf /tmp/log.tar /var/log/ + Shell > tar -cvf /tmp/log.tar /var/log/ - Shell > tar -Avf /tmp/etc.tar /tmp/log.tar - ``` + Shell > tar -Avf /tmp/etc.tar /tmp/log.tar + ``` - Це означає, що всі файли в "log.tar" будуть додані в кінець "etc.tar". + Це означає, що всі файли в "log.tar" будуть додані в кінець "etc.tar". 2. Додайте файли або каталоги до файлу `.tar`: - ```bash - Shell > tar -rvf /tmp/log.tar /etc/chrony.conf - tar: Removing leading `/' from member names - /etc/chrony.conf - tar: Removing leading `/' from hard link targets + ```bash + Shell > tar -rvf /tmp/log.tar /etc/chrony.conf + tar: Removing leading `/' from member names + /etc/chrony.conf + tar: Removing leading `/' from hard link targets - Shell > tar -rvf /tmp/log.tar /tmp/dir1 - ``` + Shell > tar -rvf /tmp/log.tar /tmp/dir1 + ``` !!! warning "Важливо" @@ -275,55 +275,55 @@ Shell > tar --show-defaults 1. Перегляньте вміст архіву: - ```bash - Shell > tar -tvf /tmp/log.tar + ```bash + Shell > tar -tvf /tmp/log.tar - Shell > tar -tvf /tmp/etc-20241207.tar.gz | less - ``` + Shell > tar -tvf /tmp/etc-20241207.tar.gz | less + ``` #### тип `-d` 1. Порівняйте відмінності файлів: - ```bash - Shell > cd / ; tar -dvf /tmp/etc.tar etc/chrony.conf - etc/chrony.conf + ```bash + Shell > cd / ; tar -dvf /tmp/etc.tar etc/chrony.conf + etc/chrony.conf - Shell > cd / ; tar -dvf /tmp/etc-20241207.tar.gz etc/ - ``` + Shell > cd / ; tar -dvf /tmp/etc-20241207.tar.gz etc/ + ``` - Для методів зберігання, які використовують відносний режим, при використанні типу `-d` змініть шлях до файлу на '/'. + Для методів зберігання, які використовують відносний режим, при використанні типу `-d` змініть шлях до файлу на '/'. #### тип `-u` 1. Якщо існує кілька версій одного файлу, ви можете використовувати тип `-u`: - ```bash - Shell > touch /tmp/tmpfile1 + ```bash + Shell > touch /tmp/tmpfile1 - Shell > tar -rvf /tmp/log.tar /tmp/tmpfile1 + Shell > tar -rvf /tmp/log.tar /tmp/tmpfile1 - Shell > echo "File Name" >> /tmp/tmpfile1 + Shell > echo "File Name" >> /tmp/tmpfile1 - Shell > tar -uvf /tmp/log.tar /tmp/tmpfile1 + Shell > tar -uvf /tmp/log.tar /tmp/tmpfile1 - Shell > tar -tvf /tmp/log.tar - ... - -rw-r--r-- root/root 0 2024-12-07 18:53 tmp/tmpfile1 - -rw-r--r-- root/root 10 2024-12-07 18:54 tmp/tmpfile1 - ``` + Shell > tar -tvf /tmp/log.tar + ... + -rw-r--r-- root/root 0 2024-12-07 18:53 tmp/tmpfile1 + -rw-r--r-- root/root 10 2024-12-07 18:54 tmp/tmpfile1 + ``` #### Тип `--delete` 1. Ви також можете використовувати `--delete`, щоб видалити файли всередині `.tar` файлу. - ```bash - Shell > tar --delete -vf /tmp/log.tar tmp/tmpfile1 + ```bash + Shell > tar --delete -vf /tmp/log.tar tmp/tmpfile1 - Shell > tar --delete -vf /tmp/etc.tar etc/motd.d/ - ``` + Shell > tar --delete -vf /tmp/etc.tar etc/motd.d/ + ``` - При видаленні ви видаляєте з архіву всі файли з однаковою назвою. + При видаленні ви видаляєте з архіву всі файли з однаковою назвою. ## Загальноприйнята термінологія From 6fcbd55025a0abadee84d40fafd5d6604b28ab9f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:10:58 -0400 Subject: [PATCH 051/167] New translations dump_restore.md (Ukrainian) --- docs/guides/backup/dump_restore.uk.md | 266 +++++++++++++------------- 1 file changed, 133 insertions(+), 133 deletions(-) diff --git a/docs/guides/backup/dump_restore.uk.md b/docs/guides/backup/dump_restore.uk.md index df90450a93..04a62f38ff 100644 --- a/docs/guides/backup/dump_restore.uk.md +++ b/docs/guides/backup/dump_restore.uk.md @@ -59,133 +59,133 @@ Shell > dnf -y install dump 1. Виконайте повне резервне копіювання кореневого розділу: - ```bash - Shell > dump -0u -j3 -f /tmp/root-20241208.bak.bz2 / - DUMP: Date of this level 0 dump: Sun Dec 8 19:04:39 2024 - DUMP: Dumping /dev/nvme0n1p2 (/) to /tmp/root-20241208.bak.bz2 - DUMP: Label: none - DUMP: Writing 10 Kilobyte records - DUMP: Compressing output at transformation level 3 (bzlib) - DUMP: mapping (Pass I) [regular files] - DUMP: mapping (Pass II) [directories] - DUMP: estimated 14693111 blocks. - DUMP: Volume 1 started with block 1 at: Sun Dec 8 19:04:41 2024 - DUMP: dumping (Pass III) [directories] - DUMP: dumping (Pass IV) [regular files] - DUMP: 20.69% done at 10133 kB/s, finished in 0:19 - DUMP: 43.74% done at 10712 kB/s, finished in 0:12 - DUMP: 70.91% done at 11575 kB/s, finished in 0:06 - DUMP: 93.23% done at 11415 kB/s, finished in 0:01 - DUMP: Closing /tmp/root-20241208.bak.bz2 - DUMP: Volume 1 completed at: Sun Dec 8 19:26:08 2024 - DUMP: Volume 1 took 0:21:27 - DUMP: Volume 1 transfer rate: 5133 kB/s - DUMP: Volume 1 14722930kB uncompressed, 6607183kB compressed, 2.229:1 - DUMP: 14722930 blocks (14377.86MB) on 1 volume(s) - DUMP: finished in 1287 seconds, throughput 11439 kBytes/sec - DUMP: Date of this level 0 dump: Sun Dec 8 19:04:39 2024 - DUMP: Date this dump completed: Sun Dec 8 19:26:08 2024 - DUMP: Average transfer rate: 5133 kB/s - DUMP: Wrote 14722930kB uncompressed, 6607183kB compressed, 2.229:1 - DUMP: DUMP IS DONE - - Shell > ls -lh /tmp/root-20241208.bak.bz2 - -rw-r--r-- 1 root root 6.4G Dec 8 19:26 /tmp/root-20241208.bak.bz2 - ``` + ```bash + Shell > dump -0u -j3 -f /tmp/root-20241208.bak.bz2 / + DUMP: Date of this level 0 dump: Sun Dec 8 19:04:39 2024 + DUMP: Dumping /dev/nvme0n1p2 (/) to /tmp/root-20241208.bak.bz2 + DUMP: Label: none + DUMP: Writing 10 Kilobyte records + DUMP: Compressing output at transformation level 3 (bzlib) + DUMP: mapping (Pass I) [regular files] + DUMP: mapping (Pass II) [directories] + DUMP: estimated 14693111 blocks. + DUMP: Volume 1 started with block 1 at: Sun Dec 8 19:04:41 2024 + DUMP: dumping (Pass III) [directories] + DUMP: dumping (Pass IV) [regular files] + DUMP: 20.69% done at 10133 kB/s, finished in 0:19 + DUMP: 43.74% done at 10712 kB/s, finished in 0:12 + DUMP: 70.91% done at 11575 kB/s, finished in 0:06 + DUMP: 93.23% done at 11415 kB/s, finished in 0:01 + DUMP: Closing /tmp/root-20241208.bak.bz2 + DUMP: Volume 1 completed at: Sun Dec 8 19:26:08 2024 + DUMP: Volume 1 took 0:21:27 + DUMP: Volume 1 transfer rate: 5133 kB/s + DUMP: Volume 1 14722930kB uncompressed, 6607183kB compressed, 2.229:1 + DUMP: 14722930 blocks (14377.86MB) on 1 volume(s) + DUMP: finished in 1287 seconds, throughput 11439 kBytes/sec + DUMP: Date of this level 0 dump: Sun Dec 8 19:04:39 2024 + DUMP: Date this dump completed: Sun Dec 8 19:26:08 2024 + DUMP: Average transfer rate: 5133 kB/s + DUMP: Wrote 14722930kB uncompressed, 6607183kB compressed, 2.229:1 + DUMP: DUMP IS DONE + + Shell > ls -lh /tmp/root-20241208.bak.bz2 + -rw-r--r-- 1 root root 6.4G Dec 8 19:26 /tmp/root-20241208.bak.bz2 + ``` 2. Після успішного скидання перевірте відповідну інформацію: - ```bash - Shell > cat /etc/dumpdates - /dev/nvme0n1p2 0 Sun Dec 8 19:04:39 2024 +0800 + ```bash + Shell > cat /etc/dumpdates + /dev/nvme0n1p2 0 Sun Dec 8 19:04:39 2024 +0800 - Shell > dump -W - Last dump(s) done (Dump '>' file systems): - /dev/nvme0n1p2 ( /) Last dump: Level 0, Date Sun Dec 8 19:04:39 2024 - ``` + Shell > dump -W + Last dump(s) done (Dump '>' file systems): + /dev/nvme0n1p2 ( /) Last dump: Level 0, Date Sun Dec 8 19:04:39 2024 + ``` 3. Реалізувати інкрементне резервне копіювання на основі повного резервного копіювання: - ```bash - Shell > echo "jack" >> /tmp/tmpfile.txt - - Shell > dump -1u -j4 -f /tmp/root-20241208-LV1.bak.bz2 / - DUMP: Date of this level 1 dump: Sun Dec 8 19:38:51 2024 - DUMP: Date of last level 0 dump: Sun Dec 8 19:04:39 2024 - DUMP: Dumping /dev/nvme0n1p2 (/) to /tmp/root-20241208-LV1.bak.bz2 - DUMP: Label: none - DUMP: Writing 10 Kilobyte records - DUMP: Compressing output at transformation level 4 (bzlib) - DUMP: mapping (Pass I) [regular files] - DUMP: mapping (Pass II) [directories] - DUMP: estimated 6620898 blocks. - DUMP: Volume 1 started with block 1 at: Sun Dec 8 19:38:58 2024 - DUMP: dumping (Pass III) [directories] - DUMP: dumping (Pass IV) [regular files] - DUMP: 38.13% done at 8415 kB/s, finished in 0:08 - DUMP: 75.30% done at 8309 kB/s, finished in 0:03 - DUMP: Closing /tmp/root-20241208-LV1.bak.bz2 - DUMP: Volume 1 completed at: Sun Dec 8 19:52:03 2024 - DUMP: Volume 1 took 0:13:05 - DUMP: Volume 1 transfer rate: 8408 kB/s - DUMP: Volume 1 6620910kB uncompressed, 6600592kB compressed, 1.004:1 - DUMP: 6620910 blocks (6465.73MB) on 1 volume(s) - DUMP: finished in 785 seconds, throughput 8434 kBytes/sec - DUMP: Date of this level 1 dump: Sun Dec 8 19:38:51 2024 - DUMP: Date this dump completed: Sun Dec 8 19:52:03 2024 - DUMP: Average transfer rate: 8408 kB/s - DUMP: Wrote 6620910kB uncompressed, 6600592kB compressed, 1.004:1 - DUMP: DUMP IS DONE - - Shell > cat /etc/dumpdates - /dev/nvme0n1p2 0 Sun Dec 8 19:04:39 2024 +0800 - /dev/nvme0n1p2 1 Sun Dec 8 19:38:51 2024 +0800 - - Shell > dump -W - Last dump(s) done (Dump '>' file systems): - /dev/nvme0n1p2 ( /) Last dump: Level 1, Date Sun Dec 8 19:38:51 2024 - ``` + ```bash + Shell > echo "jack" >> /tmp/tmpfile.txt + + Shell > dump -1u -j4 -f /tmp/root-20241208-LV1.bak.bz2 / + DUMP: Date of this level 1 dump: Sun Dec 8 19:38:51 2024 + DUMP: Date of last level 0 dump: Sun Dec 8 19:04:39 2024 + DUMP: Dumping /dev/nvme0n1p2 (/) to /tmp/root-20241208-LV1.bak.bz2 + DUMP: Label: none + DUMP: Writing 10 Kilobyte records + DUMP: Compressing output at transformation level 4 (bzlib) + DUMP: mapping (Pass I) [regular files] + DUMP: mapping (Pass II) [directories] + DUMP: estimated 6620898 blocks. + DUMP: Volume 1 started with block 1 at: Sun Dec 8 19:38:58 2024 + DUMP: dumping (Pass III) [directories] + DUMP: dumping (Pass IV) [regular files] + DUMP: 38.13% done at 8415 kB/s, finished in 0:08 + DUMP: 75.30% done at 8309 kB/s, finished in 0:03 + DUMP: Closing /tmp/root-20241208-LV1.bak.bz2 + DUMP: Volume 1 completed at: Sun Dec 8 19:52:03 2024 + DUMP: Volume 1 took 0:13:05 + DUMP: Volume 1 transfer rate: 8408 kB/s + DUMP: Volume 1 6620910kB uncompressed, 6600592kB compressed, 1.004:1 + DUMP: 6620910 blocks (6465.73MB) on 1 volume(s) + DUMP: finished in 785 seconds, throughput 8434 kBytes/sec + DUMP: Date of this level 1 dump: Sun Dec 8 19:38:51 2024 + DUMP: Date this dump completed: Sun Dec 8 19:52:03 2024 + DUMP: Average transfer rate: 8408 kB/s + DUMP: Wrote 6620910kB uncompressed, 6600592kB compressed, 1.004:1 + DUMP: DUMP IS DONE + + Shell > cat /etc/dumpdates + /dev/nvme0n1p2 0 Sun Dec 8 19:04:39 2024 +0800 + /dev/nvme0n1p2 1 Sun Dec 8 19:38:51 2024 +0800 + + Shell > dump -W + Last dump(s) done (Dump '>' file systems): + /dev/nvme0n1p2 ( /) Last dump: Level 1, Date Sun Dec 8 19:38:51 2024 + ``` 4. Для нерозділеного каталогу можна використовувати лише параметр «Повна резервна копія» (`-0`), а не параметр `-u`: - ```bash - Shell > dump -0uj -f /tmp/etc-full-20241208.bak.bz2 /etc/ - DUMP: You can't update the dumpdates file when dumping a subdirectory - DUMP: The ENTIRE dump is aborted. - - Shell > dump -0j -f /tmp/etc-full-20241208.bak.bz2 /etc/ - DUMP: Date of this level 0 dump: Sun Dec 8 20:00:38 2024 - DUMP: Dumping /dev/nvme0n1p2 (/ (dir etc)) to /tmp/etc-full-20241208.bak.bz2 - DUMP: Label: none - DUMP: Writing 10 Kilobyte records - DUMP: Compressing output at transformation level 2 (bzlib) - DUMP: mapping (Pass I) [regular files] - DUMP: mapping (Pass II) [directories] - DUMP: estimated 28204 blocks. - DUMP: Volume 1 started with block 1 at: Sun Dec 8 20:00:38 2024 - DUMP: dumping (Pass III) [directories] - DUMP: dumping (Pass IV) [regular files] - DUMP: Closing /tmp/etc-full-20241208.bak.bz2 - DUMP: Volume 1 completed at: Sun Dec 8 20:00:40 2024 - DUMP: Volume 1 took 0:00:02 - DUMP: Volume 1 transfer rate: 3751 kB/s - DUMP: Volume 1 29090kB uncompressed, 7503kB compressed, 3.878:1 - DUMP: 29090 blocks (28.41MB) on 1 volume(s) - DUMP: finished in 2 seconds, throughput 14545 kBytes/sec - DUMP: Date of this level 0 dump: Sun Dec 8 20:00:38 2024 - DUMP: Date this dump completed: Sun Dec 8 20:00:40 2024 - DUMP: Average transfer rate: 3751 kB/s - DUMP: Wrote 29090kB uncompressed, 7503kB compressed, 3.878:1 - DUMP: DUMP IS DONE - ``` - - Виконання інкрементного резервного копіювання каталогу /etc/ призведе до помилки: - - ```bash - Shell > dump -1j -f /tmp/etc-incr-20241208.bak.bz2 /etc/ - DUMP: Only level 0 dumps are allowed on a subdirectory - DUMP: The ENTIRE dump is aborted. - ``` + ```bash + Shell > dump -0uj -f /tmp/etc-full-20241208.bak.bz2 /etc/ + DUMP: You can't update the dumpdates file when dumping a subdirectory + DUMP: The ENTIRE dump is aborted. + + Shell > dump -0j -f /tmp/etc-full-20241208.bak.bz2 /etc/ + DUMP: Date of this level 0 dump: Sun Dec 8 20:00:38 2024 + DUMP: Dumping /dev/nvme0n1p2 (/ (dir etc)) to /tmp/etc-full-20241208.bak.bz2 + DUMP: Label: none + DUMP: Writing 10 Kilobyte records + DUMP: Compressing output at transformation level 2 (bzlib) + DUMP: mapping (Pass I) [regular files] + DUMP: mapping (Pass II) [directories] + DUMP: estimated 28204 blocks. + DUMP: Volume 1 started with block 1 at: Sun Dec 8 20:00:38 2024 + DUMP: dumping (Pass III) [directories] + DUMP: dumping (Pass IV) [regular files] + DUMP: Closing /tmp/etc-full-20241208.bak.bz2 + DUMP: Volume 1 completed at: Sun Dec 8 20:00:40 2024 + DUMP: Volume 1 took 0:00:02 + DUMP: Volume 1 transfer rate: 3751 kB/s + DUMP: Volume 1 29090kB uncompressed, 7503kB compressed, 3.878:1 + DUMP: 29090 blocks (28.41MB) on 1 volume(s) + DUMP: finished in 2 seconds, throughput 14545 kBytes/sec + DUMP: Date of this level 0 dump: Sun Dec 8 20:00:38 2024 + DUMP: Date this dump completed: Sun Dec 8 20:00:40 2024 + DUMP: Average transfer rate: 3751 kB/s + DUMP: Wrote 29090kB uncompressed, 7503kB compressed, 3.878:1 + DUMP: DUMP IS DONE + ``` + + Виконання інкрементного резервного копіювання каталогу /etc/ призведе до помилки: + + ```bash + Shell > dump -1j -f /tmp/etc-incr-20241208.bak.bz2 /etc/ + DUMP: Only level 0 dumps are allowed on a subdirectory + DUMP: The ENTIRE dump is aborted. + ``` ### Команда `restore` @@ -203,28 +203,28 @@ Shell > dnf -y install dump 1. Відновити дані з /tmp/etc-full-20241208.bak.bz2: - ```bash - Shell > mkdir /tmp/data/ + ```bash + Shell > mkdir /tmp/data/ - Shell > restore -t -f /tmp/etc-full-20241208.bak.bz2 + Shell > restore -t -f /tmp/etc-full-20241208.bak.bz2 - Shell > cd /tmp/data/ ; restore -r -f /tmp/etc-full-20241208.bak.bz2 + Shell > cd /tmp/data/ ; restore -r -f /tmp/etc-full-20241208.bak.bz2 - Shell > ls -l /tmp/data/ - total 4992 - drwxr-xr-x. 90 root root 4096 Dec 8 17:13 etc - -rw------- 1 root root 5107632 Dec 8 20:39 restoresymtable - ``` + Shell > ls -l /tmp/data/ + total 4992 + drwxr-xr-x. 90 root root 4096 Dec 8 17:13 etc + -rw------- 1 root root 5107632 Dec 8 20:39 restoresymtable + ``` - Як бачите, після успішного відновлення з’являється файл із назвою `restoresymtable`. Цей файл важливий. Він призначений для операцій відновлення системи поетапного резервного копіювання. + Як бачите, після успішного відновлення з’являється файл із назвою `restoresymtable`. Цей файл важливий. Він призначений для операцій відновлення системи поетапного резервного копіювання. 2. Обробка резервних копій файлів в інтерактивному режимі: - ```bash - Shell > restore -i -f /tmp/etc-full-20241208.bak.bz2 - Dump tape is compressed. + ```bash + Shell > restore -i -f /tmp/etc-full-20241208.bak.bz2 + Dump tape is compressed. - restore > ? - ``` + restore > ? + ``` - Ви можете ввести ++question++, щоб переглянути доступні інтерактивні команди в цьому режимі. + Ви можете ввести ++question++, щоб переглянути доступні інтерактивні команди в цьому режимі. From 5957dcd4dca1b561f9499251f2a23fc3e9aef9ce Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:11:00 -0400 Subject: [PATCH 052/167] New translations index.md (Ukrainian) --- docs/rocky_insights/blogs/index.uk.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/rocky_insights/blogs/index.uk.md b/docs/rocky_insights/blogs/index.uk.md index 0bb418b1a0..96adcd775a 100644 --- a/docs/rocky_insights/blogs/index.uk.md +++ b/docs/rocky_insights/blogs/index.uk.md @@ -20,9 +20,9 @@ contributors: Ви повинні переконатися, що ваш документ відповідає вимогам цього розділу. Наприклад: -- Це підходить сюди? Чи варто ділитися цією інформацією? Це документ у стилі блогу? -- Чи розкриває він тему, важливу для документалістів? -- Чи підвищить подання загальну якість документації Rocky Linux? + - Це підходить сюди? Чи варто ділитися цією інформацією? Це документ у стилі блогу? + - Чи розкриває він тему, важливу для документалістів? + - Чи підвищить подання загальну якість документації Rocky Linux? ## Яка інформація? From 1ac6d7ffb825956b53f4007777e2d3d33922aac6 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:11:06 -0400 Subject: [PATCH 053/167] New translations lab4-certificate-authority.md (Ukrainian) --- .../kubernetes-the-hard-way/lab4-certificate-authority.uk.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/labs/kubernetes-the-hard-way/lab4-certificate-authority.uk.md b/docs/labs/kubernetes-the-hard-way/lab4-certificate-authority.uk.md index 057d2c7132..7ccc6c430c 100644 --- a/docs/labs/kubernetes-the-hard-way/lab4-certificate-authority.uk.md +++ b/docs/labs/kubernetes-the-hard-way/lab4-certificate-authority.uk.md @@ -55,7 +55,9 @@ ca.crt ca.key !!! Tip "Порада" + ``` Щоб переглянути деталі, закодовані у створеному файлі сертифіката (ca.crt), ви можете скористатися цією командою OpenSSL `openssl x509 -in ca.crt -text -noout | less`. + ``` ## Створення сертифікатів клієнта та сервера From e74f7344d05ab5d25fb1d8ee1736a1511b227ce2 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:11:09 -0400 Subject: [PATCH 054/167] New translations lab7-bootstrapping-etcd.md (Ukrainian) --- docs/labs/kubernetes-the-hard-way/lab7-bootstrapping-etcd.uk.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/labs/kubernetes-the-hard-way/lab7-bootstrapping-etcd.uk.md b/docs/labs/kubernetes-the-hard-way/lab7-bootstrapping-etcd.uk.md index e45ff8dcea..0e872529cf 100644 --- a/docs/labs/kubernetes-the-hard-way/lab7-bootstrapping-etcd.uk.md +++ b/docs/labs/kubernetes-the-hard-way/lab7-bootstrapping-etcd.uk.md @@ -64,9 +64,11 @@ chmod 644 /etc/systemd/system/etcd.service !!! Note "Примітка" + ``` Хоча це вважається поганою формою безпеки, вам, можливо, доведеться тимчасово або назавжди вимкнути SELinux, якщо у вас виникнуть проблеми із запуском служби `etcd` `systemd`. Правильним виправленням є дослідження та створення необхідних файлів політики за допомогою таких інструментів, як `ausearch`, `audit2allow` та інших. Команди усувають SELinux і вимикають його, виконавши наступне: + ``` ```bash sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config From 77ec08e36e03c300c8215b59ac906bff392e1f36 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:11:11 -0400 Subject: [PATCH 055/167] New translations lab9-bootstrapping-kubernetes-workers.md (Ukrainian) --- .../lab9-bootstrapping-kubernetes-workers.uk.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/labs/kubernetes-the-hard-way/lab9-bootstrapping-kubernetes-workers.uk.md b/docs/labs/kubernetes-the-hard-way/lab9-bootstrapping-kubernetes-workers.uk.md index 39ec95b499..d84cb455a5 100644 --- a/docs/labs/kubernetes-the-hard-way/lab9-bootstrapping-kubernetes-workers.uk.md +++ b/docs/labs/kubernetes-the-hard-way/lab9-bootstrapping-kubernetes-workers.uk.md @@ -160,9 +160,11 @@ mv 10-bridge.conf 99-loopback.conf /etc/cni/net.d/ !!! Примітка + ``` Хоча це вважається поганою формою безпеки, вам, можливо, доведеться тимчасово або назавжди вимкнути SELinux, якщо у вас виникнуть проблеми із запуском необхідних служб systemd. Правильним рішенням є дослідження та створення необхідних файлів політики за допомогою таких інструментів, як ausearch, audit2allow тощо. Щоб виправити SELinux із шляху та вимкнути його, запустіть наступне: + ``` ```bash sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config From 8f595085b2681b8198e11f7c3cdf8799d99709fe Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:11:16 -0400 Subject: [PATCH 056/167] New translations lab0-readme.md (Ukrainian) --- .../kubernetes-the-hard-way/lab0-README.uk.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/labs/kubernetes-the-hard-way/lab0-README.uk.md b/docs/labs/kubernetes-the-hard-way/lab0-README.uk.md index a4fa110ca4..b0bc79b964 100644 --- a/docs/labs/kubernetes-the-hard-way/lab0-README.uk.md +++ b/docs/labs/kubernetes-the-hard-way/lab0-README.uk.md @@ -30,25 +30,25 @@ Kubernetes The Hard Way проведе вас через завантаженн Версії компонентів: -- [kubernetes](https://github.com/kubernetes/kubernetes) v1.32.x -- [containerd](https://github.com/containerd/containerd) v2.0.x -- [cni](https://github.com/containernetworking/cni) v1.6.x -- [etcd](https://github.com/etcd-io/etcd) v3.4.x + - [kubernetes](https://github.com/kubernetes/kubernetes) v1.32.x + - [containerd](https://github.com/containerd/containerd) v2.0.x + - [cni](https://github.com/containernetworking/cni) v1.6.x + - [etcd](https://github.com/etcd-io/etcd) v3.4.x ## Labs Для цього посібника потрібні чотири (4) віртуальні або фізичні машини на базі x86_64, підключені до однієї мережі. Хоча підручник використовує машини на базі x86_64, ви можете застосувати отримані уроки на інших платформах. -- [Вимоги](lab1-prerequisites.md) -- [Налаштування Jumpbox](lab2-jumpbox.md) -- [Надання обчислювальних ресурсів](lab3-compute-resources.md) -- [Надання ЦС і генерація сертифікатів TLS](lab4-certificate-authority.md) -- [Створення файлів конфігурації Kubernetes для автентифікації](lab5-kubernetes-configuration-files.md) -- [Створення конфігурації та ключа шифрування даних](lab6-data-encryption-keys.md) -- [Завантаження кластера etcd](lab7-bootstrapping-etcd.md) -- [Завантаження площини керування Kubernetes](lab8-bootstrapping-kubernetes-controllers.md) -- [Завантаження робочих вузлів Kubernetes](lab9-bootstrapping-kubernetes-workers.md) -- [Налаштування kubectl для віддаленого доступу](lab10-configuring-kubectl.md) -- [Надання мережевих маршрутів Pod](lab11-pod-network-routes.md) -- [Smoke Test](lab12-smoke-test.md) -- [Очищення](lab13-cleanup.md) + - [Вимоги](lab1-prerequisites.md) + - [Налаштування Jumpbox](lab2-jumpbox.md) + - [Надання обчислювальних ресурсів](lab3-compute-resources.md) + - [Надання ЦС і генерація сертифікатів TLS](lab4-certificate-authority.md) + - [Створення файлів конфігурації Kubernetes для автентифікації](lab5-kubernetes-configuration-files.md) + - [Створення конфігурації та ключа шифрування даних](lab6-data-encryption-keys.md) + - [Завантаження кластера etcd](lab7-bootstrapping-etcd.md) + - [Завантаження площини керування Kubernetes](lab8-bootstrapping-kubernetes-controllers.md) + - [Завантаження робочих вузлів Kubernetes](lab9-bootstrapping-kubernetes-workers.md) + - [Налаштування kubectl для віддаленого доступу](lab10-configuring-kubectl.md) + - [Надання мережевих маршрутів Pod](lab11-pod-network-routes.md) + - [Smoke Test](lab12-smoke-test.md) + - [Очищення](lab13-cleanup.md) From bd70dfa20f7fd22de9e4de4a753b81bc5610ed4f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:11:18 -0400 Subject: [PATCH 057/167] New translations pulp_fetch_upload.md (Ukrainian) --- docs/guides/repositories/pulp_fetch_upload.uk.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/repositories/pulp_fetch_upload.uk.md b/docs/guides/repositories/pulp_fetch_upload.uk.md index b5fab183d2..120c9354b3 100644 --- a/docs/guides/repositories/pulp_fetch_upload.uk.md +++ b/docs/guides/repositories/pulp_fetch_upload.uk.md @@ -17,8 +17,8 @@ tags: ## Вимоги -- Система Rocky Linux -- Вміння запускати контейнери + - Система Rocky Linux + - Вміння запускати контейнери ## Налаштування - один контейнер From 8b110ea9ceb0273bb94be451f7f01e037b61ddbf Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:11:19 -0400 Subject: [PATCH 058/167] New translations 9_6.md (Ukrainian) --- docs/release_notes/9_6.uk.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/release_notes/9_6.uk.md b/docs/release_notes/9_6.uk.md index d6482e1dc3..fdd197602d 100644 --- a/docs/release_notes/9_6.uk.md +++ b/docs/release_notes/9_6.uk.md @@ -16,7 +16,9 @@ tags: !!! Note "Примітка" + ``` Rocky Linux не пропонує шлях оновлення з жодної версії Rocky Linux 8. Ми рекомендуємо виконати чисту інсталяцію ОС для оновлення до Rocky Linux 9.6. + ``` ## Зображення From 3b23f2bed54e5e7bb1345c054c91a21f398c6eb0 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:11:21 -0400 Subject: [PATCH 059/167] New translations 10_0.md (Ukrainian) --- docs/release_notes/10_0.uk.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/release_notes/10_0.uk.md b/docs/release_notes/10_0.uk.md index a207fbf18c..77ff39b92c 100644 --- a/docs/release_notes/10_0.uk.md +++ b/docs/release_notes/10_0.uk.md @@ -59,7 +59,9 @@ Rocky Linux 10 підтримується на таких архітектура !!! Note "Відмінності зображень Raspberry Pi" + ``` Ключова відмінність між образами Rocky Linux Pi для версії 10 полягає в тому, що 10 підтримує Pi 4 та Pi 5, тоді як 9 підтримує Pi 3, Pi 4, Pi 5 та Pi Zero 2W. + ``` ### Встановлення та створення зображень From ad465df911c184979e7dcc7085bc914e4b08f04e Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:11:23 -0400 Subject: [PATCH 060/167] New translations 9_6_installation.md (Ukrainian) --- docs/guides/9_6_installation.uk.md | 90 +++++++++++++++++------------- 1 file changed, 52 insertions(+), 38 deletions(-) diff --git a/docs/guides/9_6_installation.uk.md b/docs/guides/9_6_installation.uk.md index 65ddbfb7c0..6bacff4ade 100644 --- a/docs/guides/9_6_installation.uk.md +++ b/docs/guides/9_6_installation.uk.md @@ -31,7 +31,9 @@ Rocky-.--.iso !!! Note "Примітка" + ``` На вебсайті Rocky Project перелічено кілька дзеркал, розташованих по всьому світу. Виберіть дзеркало, яке географічно найближче до вас. Список офіційних дзеркал можна знайти [тут](https://mirrors.rockylinux.org/mirrormanager/mirrors). + ``` ## Перевірка файлу ISO програми встановлення @@ -41,21 +43,21 @@ Rocky-.--.iso 2. Перебуваючи в папці, яка містить завантажений ISO Rocky Linux, завантажте файл контрольної суми для ISO, введіть: - ```bash - wget -O CHECKSUM https://download.rockylinux.org/pub/rocky/9/isos/x86_64/CHECKSUM - ``` + ```bash + wget -O CHECKSUM https://download.rockylinux.org/pub/rocky/9/isos/x86_64/CHECKSUM + ``` 3. Використовуйте утиліту `sha256sum` для перевірки цілісності ISO-файлу на предмет пошкодження або несанкціонованого втручання. - ```bash - sha256sum -c CHECKSUM --ignore-missing - ``` + ```bash + sha256sum -c CHECKSUM --ignore-missing + ``` - Це перевіряє цілісність файлу ISO, завантаженого раніше, за умови, що він знаходиться в тому самому каталозі. Ви повинні побачити цей вивід: + Це перевіряє цілісність файлу ISO, завантаженого раніше, за умови, що він знаходиться в тому самому каталозі. Ви повинні побачити цей вивід: - ```text - Rocky-9.6-x86_64-minimal.iso: OK - ``` + ```text + Rocky-9.6-x86_64-minimal.iso: OK + ``` ## Встановлення @@ -69,16 +71,16 @@ Rocky-.--.iso 2. Після завантаження комп'ютера ви побачите вітальний екран Rocky Linux 9.6. - ![Rocky Linux installation splash screen](images/installation_9_6_F01.png) + ![Rocky Linux installation splash screen](images/installation_9_6_F01.png) 3. Якщо ви не натиснете жодної клавіші, програма встановлення почне зворотний відлік, після чого процес встановлення автоматично виконає виділений параметр за замовчуванням: - `Test this media & install Rocky Linux 9.6` + `Test this media & install Rocky Linux 9.6` - Ви також можете будь-коли натиснути ++enter++, щоб негайно розпочати процес. + Ви також можете будь-коли натиснути ++enter++, щоб негайно розпочати процес. 4. Відбувається швидка перевірка медіа.\ - Цей крок перевірки носія може позбавити вас клопоту з початком інсталяції, після якого ви виявляєте, що програма інсталяції має бути зупинена через несправний інсталяційний носій. + Цей крок перевірки носія може позбавити вас клопоту з початком інсталяції, після якого ви виявляєте, що програма інсталяції має бути зупинена через несправний інсталяційний носій. 5. Після завершення перевірки носія та його придатності до використання програма встановлення автоматично переходить до наступного екрана. @@ -90,10 +92,10 @@ Rocky-.--.iso Екран приблизно поділено на такі частини: -- _LOCALIZATION_ -- _SOFTWARE_ -- _SYSTEM_ -- _USER SETTINGS_ + - _LOCALIZATION_ + - _SOFTWARE_ + - _SYSTEM_ + - _USER SETTINGS_ Далі ми розглянемо кожен із цих розділів і внесемо необхідні зміни. @@ -133,14 +135,16 @@ Rocky-.--.iso !!! Tip "Порада" + ``` Розділ «Джерело інсталяції» дозволяє виконати мережеву інсталяцію (наприклад, якщо ви використовуєте завантажувальний ISO-образ Rocky Linux — Rocky-9.6-x86_64-boot.iso). Для мережевої інсталяції переконайтеся, що мережевий адаптер на цільовій системі налаштовано правильно та має доступ до Інтернету. Щоб виконати мережеву інсталяцію, натисніть ++«Джерело інсталяції»++, а потім виберіть перемикач ++«У мережі»++. Після вибору виберіть правильний протокол і введіть URI для джерела інсталяції. Натисніть ++«Готово»++. + ``` #### Вибір програмного забезпечення Натискання опції ++"Вибір програмного забезпечення"++ на головному екрані _Підсумок встановлення_ відкриє розділ встановлення, де ви можете вибрати точні пакети програмного забезпечення, встановлені в системі. Існує дві області вибору програмного забезпечення: -- **Базове середовище**: Мінімальна інсталяція та користувацька операційна система -- **Додаткове програмне забезпечення для вибраного середовища**: Вибір базового середовища ліворуч відображає різноманітне додаткове програмне забезпечення для встановлення для цього середовища праворуч. + - **Базове середовище**: Мінімальна інсталяція та користувацька операційна система + - **Додаткове програмне забезпечення для вибраного середовища**: Вибір базового середовища ліворуч відображає різноманітне додаткове програмне забезпечення для встановлення для цього середовища праворуч. Виберіть опцію _Мінімальна інсталяція_ (базова функціональність). @@ -170,27 +174,33 @@ Rocky-.--.iso !!! Note "Примітка" + ``` Після натискання опції ++"Мережа та ім'я хоста"++ все правильно виявлене обладнання мережевого інтерфейсу (наприклад, Ethernet, бездротові мережеві карти тощо) буде перераховано в лівій панелі екрана конфігурації мережі. Залежно від конкретної конфігурації обладнання, пристрої Ethernet у Linux мають назви, подібні до `eth0`, `eth1`, `ens3`, `ens4`, `em1`, `em2`, `p1p1`, `enp0s3` тощо. Ви можете налаштувати кожен інтерфейс за допомогою DHCP або вручну встановити IP-адресу. Якщо ви вирішите налаштувати вручну, переконайтеся, що у вас є вся необхідна інформація, така як IP-адреса, маска мережі та інші відповідні дані. + ``` Натискання кнопки ++"Мережа та ім'я хоста"++ на головному екрані _Підсумок встановлення_ відкриває відповідний екран конфігурації. Крім іншого, у вас є можливість налаштувати ім’я хоста системи. !!! Note "Примітка" + ``` Ви можете легко змінити ім’я хоста системи пізніше після встановлення ОС. + ``` Наступне важливе завдання конфігурації стосується мережевих інтерфейсів системи. 1. Переконайтеся, що на лівій панелі зазначено плату Ethernet (або будь-яку мережеву карту). 2. Натисніть будь-який із виявлених мережевих пристроїв на лівій панелі, щоб вибрати його.\ - Налаштовувані властивості вибраного мережевого адаптера відображаються в правій області екрана. + Налаштовувані властивості вибраного мережевого адаптера відображаються в правій області екрана. !!! Note "Примітка" + ``` У нашій зразковій системі є два пристрої Ethernet (`ens3` та `ens4`), всі з яких перебувають у підключеному стані. Тип, назва, кількість та стан мережевих пристроїв у вашій системі можуть відрізнятися від тих, що є в нашій демонстраційній системі. + ``` Переконайтеся, що перемикач пристрою, який ви хочете налаштувати, знаходиться в положенні «УВІМК.» (синій) на правій панелі. Ми приймемо всі значення за замовчуванням у цьому розділі. @@ -199,7 +209,9 @@ Rocky-.--.iso !!! Warning "Важливо" + ``` Зверніть увагу на IP-адресу сервера в цьому розділі інсталятора. Припустимо, у вас немає фізичного або легкого консольного доступу до системи. У такому разі ця інформація стане в пригоді пізніше, коли вам потрібно буде підключитися до сервера, щоб продовжити роботу на ньому після завершення встановлення ОС. + ``` ### Розділ налаштувань користувача @@ -209,11 +221,11 @@ Rocky-.--.iso 1. Клацніть поле _Пароль root_ у розділі _Налаштування користувача_, щоб розпочати екран завдання _Пароль root_. - !!! Warning "Важливо" + !!! Warning "Важливо" - ``` - Суперкористувач root — це обліковий запис із найвищими привілеями в системі. Тому, якщо ви вирішите використовувати або ввімкнути його, вам необхідно захистити цей обліковий запис надійним паролем. - ``` + ``` + Суперкористувач root — це обліковий запис із найвищими привілеями в системі. Тому, якщо ви вирішите використовувати або ввімкнути його, вам необхідно захистити цей обліковий запис надійним паролем. + ``` 2. У текстовому полі _Пароль root_ встановіть надійний пароль для користувача root. @@ -226,30 +238,30 @@ Rocky-.--.iso Щоб створити користувача: 1. Клацніть поле _Створення користувача_ у розділі _Налаштування користувача_, щоб розпочати екран завдання _Створення користувача_.\ - Ця область завдань призначена для створення привілейованого (адміністративного) або непривілейованого (неадміністративного) облікового запису користувача. + Ця область завдань призначена для створення привілейованого (адміністративного) або непривілейованого (неадміністративного) облікового запису користувача. - !!! Info "Інформація" + !!! Info "Інформація" - ``` - Створення та використання непривілейованого облікового запису для щоденних завдань у системі є найкращою практикою системного адміністрування. - ``` + ``` + Створення та використання непривілейованого облікового запису для щоденних завдань у системі є найкращою практикою системного адміністрування. + ``` - Ми створимо звичайного користувача, який за потреби може використовувати повноваження суперкористувача (адміністратора). + Ми створимо звичайного користувача, який за потреби може використовувати повноваження суперкористувача (адміністратора). 2. Заповніть поля на екрані _Створити користувача_, вказавши таку інформацію: - **Full name**: - `rockstar` + `rockstar` - **Username**: - `rockstar` + `rockstar` - **Make this user administrator**: - Checked + Checked - **Require a password to use this account**: - Checked + Checked - **Password**: - `04302021` + `04302021` - **Confirm password**: - `04302021` + `04302021` 3. Натисніть ++"done"++. @@ -266,7 +278,9 @@ Rocky-.--.iso !!! Note "Примітка" + ``` Якщо ви не бажаєте продовжувати після натискання кнопки «Почати встановлення», ви можете безпечно вийти з інсталяції без втрати даних. Щоб вийти з інсталятора, скиньте налаштування системи, натиснувши кнопку «Вийти», натиснувши Ctrl-Alt-Delete на клавіатурі або натиснувши кнопку скидання чи вимикач живлення. + ``` ### Завершення установки @@ -287,6 +301,6 @@ Rocky-.--.iso 2. У запиті пароля введіть `04302021` (пароль Rockstar) і натисніть ++enter++ (пароль _**не**_ відображатиметься на екрані, це нормально). 3. Виконайте команду `whoami` після входу в систему.\ - Ця команда показує ім'я користувача, який наразі ввійшов у систему. + Ця команда показує ім'я користувача, який наразі ввійшов у систему. ![Login Screen](images/installation_9.0_F03.png) From f53eff2c84681bead8a4957a73605bda58371f7e Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:11:24 -0400 Subject: [PATCH 061/167] New translations aqc_bridge_vlan.md (Ukrainian) --- docs/guides/hardware/aqc_bridge_vlan.uk.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/guides/hardware/aqc_bridge_vlan.uk.md b/docs/guides/hardware/aqc_bridge_vlan.uk.md index 2baaa1c4ab..f3daf1c502 100644 --- a/docs/guides/hardware/aqc_bridge_vlan.uk.md +++ b/docs/guides/hardware/aqc_bridge_vlan.uk.md @@ -22,7 +22,9 @@ tags: Ви можете вимкнути фільтрування VLAN за допомогою однієї команди: + ``` nmcli con modify enp1s0 ethtool.feature-rx-vlan-filter off + ``` Замініть `enp1s0` на назву вашої мережевої карти на базі AQC. From f9a843b8015db53a8b4cf6716c18ef4aca7c5bff Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:13:15 -0400 Subject: [PATCH 062/167] New translations rdp-server.md (German) --- docs/desktop/gnome/rdp-server.de.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/desktop/gnome/rdp-server.de.md b/docs/desktop/gnome/rdp-server.de.md index 8704e0ec8b..4863a73d6a 100644 --- a/docs/desktop/gnome/rdp-server.de.md +++ b/docs/desktop/gnome/rdp-server.de.md @@ -20,11 +20,11 @@ Standardmäßig ermöglicht Rocky Linux Ihnen, Ihren Desktop über ein anderes V Für diese Anleitung wird davon ausgegangen, dass Sie Folgendes bereits eingerichtet haben: -- Rocky Linux inklusiv GNOME -- `Flatpak` und `Flathub` sind betriebsbereit -- Ein User-Account ohne root-Rechte -- Administrator- oder `sudo`-Rechte und die Möglichkeit, Befehle in das Terminal einzufügen -- Der X-Server (zum Teilen Ihres Desktops) + - Rocky Linux inklusiv GNOME + - `Flatpak` und `Flathub` sind betriebsbereit + - Ein User-Account ohne root-Rechte + - Administrator- oder `sudo`-Rechte und die Möglichkeit, Befehle in das Terminal einzufügen + - Der X-Server (zum Teilen Ihres Desktops) !!! info "Info" From 6b60414d9910937dc2905de48704bf2476405c0f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:11 -0400 Subject: [PATCH 063/167] New translations nload.md (French) --- docs/gemstones/network/nload.fr.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/gemstones/network/nload.fr.md b/docs/gemstones/network/nload.fr.md index 1630b24360..345c05f1d5 100644 --- a/docs/gemstones/network/nload.fr.md +++ b/docs/gemstones/network/nload.fr.md @@ -70,17 +70,17 @@ Outgoing: Décorticage des lignes ci-dessus : -- Curr – utilisation actuelle de la bande passante -- Avg - utilisation moyenne de la bande passante au cours d'une période donnée -- Min - utilisation minimale de la bande passante mesurée -- Max - utilisation maximale de la bande passante mesurée -- Ttl - données transférées lors de la session `nload` + - Curr – utilisation actuelle de la bande passante + - Avg - utilisation moyenne de la bande passante au cours d'une période donnée + - Min - utilisation minimale de la bande passante mesurée + - Max - utilisation maximale de la bande passante mesurée + - Ttl - données transférées lors de la session `nload` ## Racourcis de clavier -- \++page-down++, ++down++ – Descendre d'une interface -- \++page-up++, ++up++ – Remonter d'une interface -- \++f2++ - Affiche la fenêtre des options -- \++f5++ - Enregistrer les options -- \++f6++ – Recharger les paramètres à partir du fichier de configuration -- \++q++, ++ctrl+c++ - Quitter `nload` + - \++page-down++, ++down++ – Descendre d'une interface + - \++page-up++, ++up++ – Remonter d'une interface + - \++f2++ - Affiche la fenêtre des options + - \++f5++ - Enregistrer les options + - \++f6++ – Recharger les paramètres à partir du fichier de configuration + - \++q++, ++ctrl+c++ - Quitter `nload` From 32807b78cd643b30ec65c8a21cffc65c7f69e603 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:14 -0400 Subject: [PATCH 064/167] New translations iftop.md (French) --- docs/gemstones/network/iftop.fr.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/gemstones/network/iftop.fr.md b/docs/gemstones/network/iftop.fr.md index 78fe26c2e7..dede4a240c 100644 --- a/docs/gemstones/network/iftop.fr.md +++ b/docs/gemstones/network/iftop.fr.md @@ -83,21 +83,21 @@ TOTAL: 60.5MB 242Mb 242Mb 242Mb 242Mb Analyse des lignes du volet inférieur : -- TX - Utilisation des données de transmission/téléchargement -- RX - Utilisation des données de réception/téléchargement -- TOTAL - Quantité totale de téléchargement/téléchargement + - TX - Utilisation des données de transmission/téléchargement + - RX - Utilisation des données de réception/téléchargement + - TOTAL - Quantité totale de téléchargement/téléchargement ## Racourcis de clavier -- \++s++ - regroupe tout le trafic pour chaque source -- \++d++ - regroupe tout le trafic pour chaque destination -- \++shift+s++ - bascule vers l'affichage du port source -- \++shift+d++ - bascule vers l'affichage du port de destination -- \++t++ - bascule entre les modes d'affichage : affichage par défaut sur deux lignes avec le trafic d'envoi et de réception et affichage sur trois lignes du trafic d'envoi, de réception et total -- \++1++, ++2++, ++3++ - trier par 1ère, 2ème ou 3ème colonne -- \++l++ - entre une expression régulière POSIX pour filtrer les noms d'hôtes -- \++shift+p++ - met en pause l'affichage actuel -- \++o++ - gèle le comptage total de bande passante -- \++j++ - déroulement vers le bas -- \++k++ - déroulement vers le haut -- \++f++ - édite le code du filtre + - \++s++ - regroupe tout le trafic pour chaque source + - \++d++ - regroupe tout le trafic pour chaque destination + - \++shift+s++ - bascule vers l'affichage du port source + - \++shift+d++ - bascule vers l'affichage du port de destination + - \++t++ - bascule entre les modes d'affichage : affichage par défaut sur deux lignes avec le trafic d'envoi et de réception et affichage sur trois lignes du trafic d'envoi, de réception et total + - \++1++, ++2++, ++3++ - trier par 1ère, 2ème ou 3ème colonne + - \++l++ - entre une expression régulière POSIX pour filtrer les noms d'hôtes + - \++shift+p++ - met en pause l'affichage actuel + - \++o++ - gèle le comptage total de bande passante + - \++j++ - déroulement vers le bas + - \++k++ - déroulement vers le haut + - \++f++ - édite le code du filtre From 21a2b28dfec8d6e1edc29ccbd245df317bfef729 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:17 -0400 Subject: [PATCH 065/167] New translations 00-gh_cli_installation.md (French) --- .../git/00-gh_cli_installation.fr.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/gemstones/git/00-gh_cli_installation.fr.md b/docs/gemstones/git/00-gh_cli_installation.fr.md index ce7cfff9ef..a77da72fa6 100644 --- a/docs/gemstones/git/00-gh_cli_installation.fr.md +++ b/docs/gemstones/git/00-gh_cli_installation.fr.md @@ -27,28 +27,28 @@ Les utilisateurs ont besoin d’un moyen pratique pour interagir avec GitHub san ## Procédure 1. **Installer le référentiel CLI GitHub à l'aide de curl** : - utilisez la commande curl pour télécharger le fichier du référentiel officiel pour `gh`. Le fichier téléchargé sera enregistré dans le répertoire `/etc/yum.repos.d/`. Après le téléchargement, utilisez la commande `dnf` pour installer `gh` à partir du référentiel. Tapez la commande suivante : + utilisez la commande curl pour télécharger le fichier du référentiel officiel pour `gh`. Le fichier téléchargé sera enregistré dans le répertoire `/etc/yum.repos.d/`. Après le téléchargement, utilisez la commande `dnf` pour installer `gh` à partir du référentiel. Tapez la commande suivante : - ```bash - curl -fsSL https://cli.github.com/packages/rpm/gh-cli.repo | sudo tee /etc/yum.repos.d/github-cli.repo - sudo dnf -y install gh - ``` + ```bash + curl -fsSL https://cli.github.com/packages/rpm/gh-cli.repo | sudo tee /etc/yum.repos.d/github-cli.repo + sudo dnf -y install gh + ``` 2. **Vérifier l'installation** : - Assurez-vous que `gh` est correctement installé. Tapez la commande suivante : + Assurez-vous que `gh` est correctement installé. Tapez la commande suivante : - ```bash - gh --version - ``` + ```bash + gh --version + ``` 3. **Authentification avec GitHub** : - Connectez-vous à votre compte GitHub. Tapez la commande suivante : + Connectez-vous à votre compte GitHub. Tapez la commande suivante : - ```bash - gh auth login - ``` + ```bash + gh auth login + ``` - Suivez les instructions pour vous authentifier. + Suivez les instructions pour vous authentifier. ## Conclusion From da7308eb1fa846b87e32d4c5f7d8435a3a566e87 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:18 -0400 Subject: [PATCH 066/167] New translations 01-gh_cli_1st_pr.md (French) --- docs/gemstones/git/01-gh_cli_1st_pr.fr.md | 58 +++++++++++------------ 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/gemstones/git/01-gh_cli_1st_pr.fr.md b/docs/gemstones/git/01-gh_cli_1st_pr.fr.md index da4b58108c..5b6e229023 100644 --- a/docs/gemstones/git/01-gh_cli_1st_pr.fr.md +++ b/docs/gemstones/git/01-gh_cli_1st_pr.fr.md @@ -28,56 +28,56 @@ Les contributeurs peuvent préférer ou avoir besoin d'effectuer toutes les acti ## Étapes de la Solution 1. **Fork du référentiel à l'aide de la CLI GitHub** : - Forkez le dépôt en amont sur votre compte. + Forkez le dépôt en amont sur votre compte. - ```bash - gh repo fork https://github.com/rocky-linux/documentation --clone - ``` + ```bash + gh repo fork https://github.com/rocky-linux/documentation --clone + ``` 2. **Accéder au répertoire du référentiel** : - ```bash - cd documentation - ``` + ```bash + cd documentation + ``` 3. **Ajouter le référentiel en amont** : - ```bash - git remote add upstream https://github.com/rocky-linux/documentation.git - ``` + ```bash + git remote add upstream https://github.com/rocky-linux/documentation.git + ``` 4. **Création d'une branche** : - Créez une nouvelle branche pour votre contribution. Tapez la commande suivante : + Créez une nouvelle branche pour votre contribution. Tapez la commande suivante : - ```bash - git checkout -b new-gemstone - ``` + ```bash + git checkout -b new-gemstone + ``` 5. **Ajouter un nouveau document** : - Utilisez votre éditeur de texte préféré pour créer et modifier votre nouveau fichier de contribution. - Pour cet exemple, nous allons créer `gemstome_new_pr.md` et enregistrer ce fichier sous le répertoire `docs/gemstones/`. + Utilisez votre éditeur de texte préféré pour créer et modifier votre nouveau fichier de contribution. + Pour cet exemple, nous allons créer `gemstome_new_pr.md` et enregistrer ce fichier sous le répertoire `docs/gemstones/`. 6. **Commit des modifications** : - Préparez et validez votre nouveau fichier. Tapez la commande suivante : + Préparez et validez votre nouveau fichier. Tapez la commande suivante : - ```bash - git add docs/gemstones/gemstome_new_pr.md - git commit -m "Add new Gemstone document" - ``` + ```bash + git add docs/gemstones/gemstome_new_pr.md + git commit -m "Add new Gemstone document" + ``` 7. **Push vers le fork** : - Envoyez les modifications vers votre fork/copie du dépôt de documentation Rocky Linux. Tapez la commande suivante : + Envoyez les modifications vers votre fork/copie du dépôt de documentation Rocky Linux. Tapez la commande suivante : - ```bash - git push origin new-gemstone - ``` + ```bash + git push origin new-gemstone + ``` 8. **Création d'une Pull Request** : - Créez une requête vers le référentiel en amont. + Créez une requête vers le référentiel en amont. - ```bash - gh pr create --base main --head wsoyinka:new-gemstone --title "New Gemstone: Creating PRs via CLI" --body "Guide on how to contribute to documentation using CLI" - ``` + ```bash + gh pr create --base main --head wsoyinka:new-gemstone --title "New Gemstone: Creating PRs via CLI" --body "Guide on how to contribute to documentation using CLI" + ``` ## Informations Supplémentaires (facultatif) From 37ecc3cf31e92e47dbdaaf9a9217298da40e251f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:19 -0400 Subject: [PATCH 067/167] New translations 02-gh_cli_edit_pr_title.md (French) --- .../git/02-gh_cli_edit_pr_title.fr.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/gemstones/git/02-gh_cli_edit_pr_title.fr.md b/docs/gemstones/git/02-gh_cli_edit_pr_title.fr.md index c76dc20528..d144152354 100644 --- a/docs/gemstones/git/02-gh_cli_edit_pr_title.fr.md +++ b/docs/gemstones/git/02-gh_cli_edit_pr_title.fr.md @@ -27,20 +27,20 @@ Parfois, le titre d'une PR après sa création peut devoir être modifié pour m ### Utilisation du CLI de GitHub 1. **Check Out de la branche correspondante** : - - Assurez-vous que vous êtes sur la branche associée à la PR. + - Assurez-vous que vous êtes sur la branche associée à la PR. - ```bash - git checkout branch-name - ``` + ```bash + git checkout branch-name + ``` 2. **Modifier le PR à l'aide de la CLI** : - - Utilisez la commande suivante pour modifier la PR : + - Utilisez la commande suivante pour modifier la PR : - ```bash - gh pr edit PR_NUMBER --title "New PR Title" - ``` + ```bash + gh pr edit PR_NUMBER --title "New PR Title" + ``` - - Remplacez `PR_NUMBER` par le numéro de votre pull request et `"New PR Title"` par le titre souhaité. + - Remplacez `PR_NUMBER` par le numéro de votre pull request et `"New PR Title"` par le titre souhaité. ## Informations Supplémentaires (facultatif) From bdbbc4ab0fef50d8bc59d76b00047bd1ec0dbe75 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:20 -0400 Subject: [PATCH 068/167] New translations 02_github_web_edit_pr_title.md (French) --- docs/gemstones/git/02_github_web_edit_pr_title.fr.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/gemstones/git/02_github_web_edit_pr_title.fr.md b/docs/gemstones/git/02_github_web_edit_pr_title.fr.md index dbb52a01a0..651ad18613 100644 --- a/docs/gemstones/git/02_github_web_edit_pr_title.fr.md +++ b/docs/gemstones/git/02_github_web_edit_pr_title.fr.md @@ -26,13 +26,13 @@ Parfois, il peut être nécessaire de modifier le titre d'une requête PR après ### Utilisation de l'interface Web de GitHub 1. **Accéder à la requète Pull Request**: - - Accédez au référentiel où se trouve la requête PR. - - Cliquez sur `Pull requests` et sélectionnez la requête PR que vous souhaitez modifier. + - Accédez au référentiel où se trouve la requête PR. + - Cliquez sur `Pull requests` et sélectionnez la requête PR que vous souhaitez modifier. 2. **Édition du Titre de PR**: - - Cliquez sur le titre de la Pull Request. - - Une boîte de texte modifiable apparaîtra. - - Modifiez le titre, appuyez sur ++enter++ ou cliquez en dehors de la zone de texte pour enregistrer les modifications. + - Cliquez sur le titre de la Pull Request. + - Une boîte de texte modifiable apparaîtra. + - Modifiez le titre, appuyez sur ++enter++ ou cliquez en dehors de la zone de texte pour enregistrer les modifications. ## Informations Supplémentaires (facultatif) From d811f1a6dabdb3dc36b8edc06038294bd83411c0 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:21 -0400 Subject: [PATCH 069/167] New translations gemstone_template.md (French) --- docs/gemstones/gemstone_template.fr.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/gemstones/gemstone_template.fr.md b/docs/gemstones/gemstone_template.fr.md index 2ca2da46e7..78339c0d5f 100644 --- a/docs/gemstones/gemstone_template.fr.md +++ b/docs/gemstones/gemstone_template.fr.md @@ -30,15 +30,15 @@ Décrivez la procédure ou la solution avec des étapes numérotées : 1. **Première Étape** : - Instructions et exemples de commandes. + Instructions et exemples de commandes. - ```bash - Commande ou extrait de code - ``` + ```bash + Commande ou extrait de code + ``` 2. **Étape Suivante** : - Continuez avec des instructions détaillées. + Continuez avec des instructions détaillées. ## Informations Supplémentaires (facultatif) From 0c52d2391bf9dbe981ac0f14f9a326ea8b00f5d0 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:24 -0400 Subject: [PATCH 070/167] New translations gnome-tweaks.md (French) --- docs/desktop/gnome/gnome-tweaks.fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/desktop/gnome/gnome-tweaks.fr.md b/docs/desktop/gnome/gnome-tweaks.fr.md index b60a474023..adb3fbb660 100644 --- a/docs/desktop/gnome/gnome-tweaks.fr.md +++ b/docs/desktop/gnome/gnome-tweaks.fr.md @@ -10,7 +10,7 @@ GNOME Tweaks est un outil permettant de personnaliser l'environnement de bureau, ## Prérequis -- Un poste de travail ou un serveur Rocky Linux avec une interface graphique qui utilise GNOME. + - Un poste de travail ou un serveur Rocky Linux avec une interface graphique qui utilise GNOME. ## Installation de GNOME tweaks From 104a4a54a793f6744ea0986135892f89cc5f5158 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:27 -0400 Subject: [PATCH 071/167] New translations 09-working-with-jinja-template.md (French) --- .../09-working-with-jinja-template.fr.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/books/learning_ansible/09-working-with-jinja-template.fr.md b/docs/books/learning_ansible/09-working-with-jinja-template.fr.md index 06a43a6197..7ca98ca848 100644 --- a/docs/books/learning_ansible/09-working-with-jinja-template.fr.md +++ b/docs/books/learning_ansible/09-working-with-jinja-template.fr.md @@ -108,20 +108,20 @@ Le module Ansible `template` vous permet d'utiliser des modèles Jinja pour gén ### Principales caractéristiques 1. **Rendu de modèle :** - - Le module restitue des modèles Jinja pour créer des fichiers de configuration avec un contenu dynamique. - - Les variables définies dans le playbook ou l'inventaire peuvent être injectées dans des modèles, permettant des configurations dynamiques. + - Le module restitue des modèles Jinja pour créer des fichiers de configuration avec un contenu dynamique. + - Les variables définies dans le playbook ou l'inventaire peuvent être injectées dans des modèles, permettant des configurations dynamiques. 2. **Utilisation de Jinja2 :** - - Le module `template` exploite le moteur de création de modèles Jinja2, fournissant des fonctionnalités puissantes telles que des conditions, des boucles et des filtres pour une manipulation avancée des modèles. + - Le module `template` exploite le moteur de création de modèles Jinja2, fournissant des fonctionnalités puissantes telles que des conditions, des boucles et des filtres pour une manipulation avancée des modèles. 3. **Chemins Source et de Destination :** - - Spécifie le fichier modèle Jinja source et le chemin de destination pour le fichier de configuration généré. + - Spécifie le fichier modèle Jinja source et le chemin de destination pour le fichier de configuration généré. 4. \*\* Passage de variable : \*\* - - Les variables peuvent être transmises directement dans la tâche playbook ou chargées à partir de fichiers externes, permettant une génération de configuration flexible et dynamique. + - Les variables peuvent être transmises directement dans la tâche playbook ou chargées à partir de fichiers externes, permettant une génération de configuration flexible et dynamique. 5. **Exécution Idempotente :** - - Le module `template` d'Ansible prend en charge l'exécution idempotente des modèles, garantissant que le modèle n'est appliqué que si des modifications sont détectées. + - Le module `template` d'Ansible prend en charge l'exécution idempotente des modèles, garantissant que le modèle n'est appliqué que si des modifications sont détectées. ### Exemple de playbook snippet @@ -142,24 +142,24 @@ Le module Ansible `template` vous permet d'utiliser des modèles Jinja pour gén ### Exemples d'utilisation 1. **Gestion de Configuration :** - - Idéal pour gérer les configurations de système en générant dynamiquement des fichiers en fonction de paramètres spécifiques. + - Idéal pour gérer les configurations de système en générant dynamiquement des fichiers en fonction de paramètres spécifiques. 2. **Mise en Place d'Application :** - - Utile pour créer des fichiers de configuration spécifiques à une application avec différents paramètres. + - Utile pour créer des fichiers de configuration spécifiques à une application avec différents paramètres. 3. **Infrastructure sous Forme de Code :** - - Facilite les pratiques d'infrastructure en tant que code en permettant des ajustements dynamiques des configurations en fonction de variables. + - Facilite les pratiques d'infrastructure en tant que code en permettant des ajustements dynamiques des configurations en fonction de variables. ### Les bonnes pratiques 1. **Séparation des Thèmes :** - - Confine la logique de configuration réelle dans les modèles Jinja, en la séparant de la structure principale du playbook. + - Confine la logique de configuration réelle dans les modèles Jinja, en la séparant de la structure principale du playbook. 2. **Contrôle de Version :** - - Stocke les modèles Jinja dans des référentiels contrôlés en version pour un meilleur suivi et une meilleure collaboration. + - Stocke les modèles Jinja dans des référentiels contrôlés en version pour un meilleur suivi et une meilleure collaboration. 3. **Testabilité :** - - Permet de tester les modèles de manière indépendante pour vous assurer qu’ils produisent le résultat de configuration attendu. + - Permet de tester les modèles de manière indépendante pour vous assurer qu’ils produisent le résultat de configuration attendu. En tirant parti du module `template`, les utilisateurs d'Ansible peuvent améliorer la gérabilité et la flexibilité des tâches de configuration, favorisant ainsi une approche plus rationalisée et efficace de la configuration du système et des applications. From 3ea5fae1dcd75266bae29f54f496053370a781c8 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:29 -0400 Subject: [PATCH 072/167] New translations ssh_ca_key_signing.md (French) --- docs/guides/security/ssh_ca_key_signing.fr.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/guides/security/ssh_ca_key_signing.fr.md b/docs/guides/security/ssh_ca_key_signing.fr.md index 895fc49c53..15603a1361 100644 --- a/docs/guides/security/ssh_ca_key_signing.fr.md +++ b/docs/guides/security/ssh_ca_key_signing.fr.md @@ -11,11 +11,11 @@ tags: ## Prérequis -- Savoir utiliser les outils de ligne de commande -- Gestion de contenus à partir de la ligne de commande -- Une certaine expérience des clés SSH est souhaitée mais pas indispensable -- Une connaissance de base de SSH et de l'infrastructure de clés publiques est utile mais bien facultative -- Un serveur qui exécute le daemon `sshd`. + - Savoir utiliser les outils de ligne de commande + - Gestion de contenus à partir de la ligne de commande + - Une certaine expérience des clés SSH est souhaitée mais pas indispensable + - Une connaissance de base de SSH et de l'infrastructure de clés publiques est utile mais bien facultative + - Un serveur qui exécute le daemon `sshd`. ## Introduction @@ -25,13 +25,13 @@ Les autorités de certification peuvent également être utilisées pour signer ## Objectifs -- Amélioration de la sécurité des connexions SSH. -- Consolider le processus d'intégration et la gestion des clés. + - Amélioration de la sécurité des connexions SSH. + - Consolider le processus d'intégration et la gestion des clés. ## Notes -- L'auteur de l'article favorise l'éditeur de texte `vim`. L'utilisation d'éditeurs de texte comme `nano` ou autres est tout à fait acceptable. -- L'utilisation de `sudo` ou `root` implique des privilèges supplémentaires. + - L'auteur de l'article favorise l'éditeur de texte `vim`. L'utilisation d'éditeurs de texte comme `nano` ou autres est tout à fait acceptable. + - L'utilisation de `sudo` ou `root` implique des privilèges supplémentaires. ## Connexion initiale @@ -65,9 +65,9 @@ Créer une autorité de certification (clés privées et publiques) et placer la Où : -- **-b** : bytes, longueur de clé en octets -- **-t** : type de clé ; rsa, ed25519, ecdsa... -- **-f** : fichier d'enregistrement de la clé + - **-b** : bytes, longueur de clé en octets + - **-t** : type de clé ; rsa, ed25519, ecdsa... + - **-f** : fichier d'enregistrement de la clé Vous pouvez aussi spécifier la variable `known_hosts` pour tout le système en éditant le fichier de configuration SSH `/etc/ssh/ssh_config` : @@ -94,11 +94,11 @@ Acquisition de la clé publique du serveur via `scp` et signature : Où : -- **-s** : signature de clé -- **-I** : nom identifiant le certificat à des fins de journalisation -- **-n** : identifie le nom (hôte ou utilisateur, un ou plusieurs) associé au certificat (s'il n'est pas spécifié, les certificats sont valables pour tous les utilisateurs ou hôtes) -- **-h** : définit le certificat comme clé hôte, par opposition à une clé cliente -- **-V** : durée de validité du certificat + - **-s** : signature de clé + - **-I** : nom identifiant le certificat à des fins de journalisation + - **-n** : identifie le nom (hôte ou utilisateur, un ou plusieurs) associé au certificat (s'il n'est pas spécifié, les certificats sont valables pour tous les utilisateurs ou hôtes) + - **-h** : définit le certificat comme clé hôte, par opposition à une clé cliente + - **-V** : durée de validité du certificat ## Établir la confiance From 39d8688a0dd157ecd8e8ae0f5cda0bb89cf554af Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:33 -0400 Subject: [PATCH 073/167] New translations rdp-server.md (French) --- docs/desktop/gnome/rdp-server.fr.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/desktop/gnome/rdp-server.fr.md b/docs/desktop/gnome/rdp-server.fr.md index a810f44487..c6853c4bf6 100644 --- a/docs/desktop/gnome/rdp-server.fr.md +++ b/docs/desktop/gnome/rdp-server.fr.md @@ -20,11 +20,11 @@ Par défaut, Rocky Linux vous permet de partager votre bureau via un autre proto Pour ce guide, nous partons du principe que vous disposez déjà de la configuration suivante : -- Rocky Linux et GNOME -- Flatpak et Flathub installés et opérationnels -- Un compte utilisateur non root -- Accès administrateur ou sudo et pouvoir coller des commandes dans le terminal -- Le serveur X (pour partager votre bureau) + - Rocky Linux et GNOME + - Flatpak et Flathub installés et opérationnels + - Un compte utilisateur non root + - Accès administrateur ou sudo et pouvoir coller des commandes dans le terminal + - Le serveur X (pour partager votre bureau) !!! info "Info" From 9246fc4788ce6864eea02e0eee9f19ba2c020a84 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:35 -0400 Subject: [PATCH 074/167] New translations firewallgui.md (French) --- docs/desktop/tools/firewallgui.fr.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/tools/firewallgui.fr.md b/docs/desktop/tools/firewallgui.fr.md index 4c8dec8327..bed8b33fb2 100644 --- a/docs/desktop/tools/firewallgui.fr.md +++ b/docs/desktop/tools/firewallgui.fr.md @@ -14,9 +14,9 @@ Nous n'aborderons pas tout ce que `firewalld` ou l'interface graphique peuvent a Pour ce guide, nous partons du principe que vous disposez déjà de la configuration suivante : -- Une installation Rocky Linux avec n'importe quel environnement de bureau graphique -- `sudo` ou privilèges administratifs -- Vous possédez aussi une compréhension des bases du fonctionnement de `firewalld` + - Une installation Rocky Linux avec n'importe quel environnement de bureau graphique + - `sudo` ou privilèges administratifs + - Vous possédez aussi une compréhension des bases du fonctionnement de `firewalld` !!! note "Remarque" From 93e3a72dc64066c1e29d962c5740270d65ee68fe Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:37 -0400 Subject: [PATCH 075/167] New translations dconf.md (French) --- docs/desktop/gnome/dconf.fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/desktop/gnome/dconf.fr.md b/docs/desktop/gnome/dconf.fr.md index b6b97f102b..168fffa670 100644 --- a/docs/desktop/gnome/dconf.fr.md +++ b/docs/desktop/gnome/dconf.fr.md @@ -28,8 +28,8 @@ Si vous n'êtes pas sûr de la fonction d'un paramètre particulier, faites d'ab Pour ce guide, vous aurez besoin des conditions suivantes : -- Installation de Rocky Linux, GNOME inclus. -- Les droits nécessaires pour l'installation de logiciels sur votre système (privilèges `sudo`). + - Installation de Rocky Linux, GNOME inclus. + - Les droits nécessaires pour l'installation de logiciels sur votre système (privilèges `sudo`). ## `dconf Editor` — Installation From e1decef27c72c6d7b719671ca22ad3a22b022e53 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:38 -0400 Subject: [PATCH 076/167] New translations businessapps.md (French) --- docs/desktop/tools/businessapps.fr.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/tools/businessapps.fr.md b/docs/desktop/tools/businessapps.fr.md index 598b5ce282..11bcbc83b1 100644 --- a/docs/desktop/tools/businessapps.fr.md +++ b/docs/desktop/tools/businessapps.fr.md @@ -14,9 +14,9 @@ La plupart d’entre elles sont sur Flathub. Dans ce guide, vous apprendrez à i Cet article suppose les éléments suivants : -- Une installation Rocky Linux avec un environnement de bureau graphique -- Les droits nécessaires pour l'installation de logiciels sur votre système -- Flatpak et Flathub installés et opérationnels + - Une installation Rocky Linux avec un environnement de bureau graphique + - Les droits nécessaires pour l'installation de logiciels sur votre système + - Flatpak et Flathub installés et opérationnels ## Installation des logiciels professionnels courants sur Rocky Linux From 6c12cdd1253f5d87dd181bf030856bfd54e9958c Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:39 -0400 Subject: [PATCH 077/167] New translations onlineaccounts.md (French) --- docs/desktop/gnome/onlineaccounts.fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/desktop/gnome/onlineaccounts.fr.md b/docs/desktop/gnome/onlineaccounts.fr.md index 3e18ce9461..117aab3451 100644 --- a/docs/desktop/gnome/onlineaccounts.fr.md +++ b/docs/desktop/gnome/onlineaccounts.fr.md @@ -14,7 +14,7 @@ Ce guide rapide vous montrera par où commencer. Ce guide suppose que vous disposez de la configuration suivante : -- Une installation Rocky Linux avec un environnement de bureau GNOME. + - Une installation Rocky Linux avec un environnement de bureau GNOME. ## Comment ajouter vos comptes en ligne From 2704203dcd172dac78639e46be9b73a30bc5a1a6 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:41 -0400 Subject: [PATCH 078/167] New translations install_software_with_appimage.md (French) --- docs/desktop/appimage/install_software_with_appimage.fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/desktop/appimage/install_software_with_appimage.fr.md b/docs/desktop/appimage/install_software_with_appimage.fr.md index 9ec55cec61..d9bd93eb10 100644 --- a/docs/desktop/appimage/install_software_with_appimage.fr.md +++ b/docs/desktop/appimage/install_software_with_appimage.fr.md @@ -20,8 +20,8 @@ L'exemple d'application utilisé dans ce didacticiel est Krita. Vous le téléch Pour ce guide, vous aurez besoin des conditions suivantes : -- Une installation Rocky Linux avec un environnement de bureau -- Droits d'accès `sudo` + - Une installation Rocky Linux avec un environnement de bureau + - Droits d'accès `sudo` ## Téléchargement de l'AppImage d'une application From eb587848813862dcc3442057210b49e34f8d9b63 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:42 -0400 Subject: [PATCH 079/167] New translations installing_nvidia_gpu_drivers.md (French) --- .../display/installing_nvidia_gpu_drivers.fr.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/desktop/display/installing_nvidia_gpu_drivers.fr.md b/docs/desktop/display/installing_nvidia_gpu_drivers.fr.md index 5353683d55..551c0f1e6d 100644 --- a/docs/desktop/display/installing_nvidia_gpu_drivers.fr.md +++ b/docs/desktop/display/installing_nvidia_gpu_drivers.fr.md @@ -16,9 +16,9 @@ Le lien vers les étapes de pré-installation dans le manuel officiel de NVIDIA Voici d'autres méthodes de substitution pour installer les pilotes NVIDIA : -- NVIDIA's `.run` installer -- Dépôt tiers RPMFusion -- Pilote Third-party ELRepo + - NVIDIA's `.run` installer + - Dépôt tiers RPMFusion + - Pilote Third-party ELRepo Dans la plupart des cas, il est préférable d'installer les pilotes NVIDIA à partir d'une source officielle. RPMFusion et ELRepo sont disponibles pour ceux qui préfèrent un dépôt communautaire. Pour les matériels plus anciens, RPMFusion fonctionne mieux. Il est recommandé d'éviter d'utiliser le programme d'installation `.run`. Bien que pratique, l'utilisation du programme d'installation `.run` est connue pour écraser les fichiers système et présente des problèmes d'incompatibilité. @@ -26,8 +26,8 @@ Dans la plupart des cas, il est préférable d'installer les pilotes NVIDIA à p Pour ce guide, vous aurez besoin des conditions suivantes : -- Poste de travail Rocky Linux -- Droits d'accès `sudo` + - Poste de travail Rocky Linux + - Droits d'accès `sudo` ## Installer les utilitaires et dépendances nécessaires From e86ab79881c64476b3a557b6067c6abc0726d66b Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:43 -0400 Subject: [PATCH 080/167] New translations valuta.md (French) --- docs/desktop/gnome/valuta.fr.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/desktop/gnome/valuta.fr.md b/docs/desktop/gnome/valuta.fr.md index 272204d72a..4a543f56f2 100644 --- a/docs/desktop/gnome/valuta.fr.md +++ b/docs/desktop/gnome/valuta.fr.md @@ -12,9 +12,9 @@ Si vous voyagez souvent ou déménagez à l’étranger, facilitez votre planifi Ce guide suppose que vous disposez de la configuration suivante : -- Rocky Linux -- Flatpak -- FlatHub + - Rocky Linux + - Flatpak + - FlatHub ## Processus d'Installation @@ -22,19 +22,19 @@ Ce guide suppose que vous disposez de la configuration suivante : 1. Accédez à [Flathub.org](https://flathub.org), tapez `Valuta` dans la barre de recherche et cliquez sur **Install** - ![manual install script and run script](images/valuta-install.png) + ![manual install script and run script](images/valuta-install.png) 2. Copiez le script d'installation manuelle dans un terminal : - ```bash - flatpak install flathub io.github.idevecore.Valuta - ``` + ```bash + flatpak install flathub io.github.idevecore.Valuta + ``` 3. Enfin, exécutez le script d'installation manuelle dans votre terminal : - ```bash - flatpak run flathub io.github.idevecore.Valuta - ``` + ```bash + flatpak run flathub io.github.idevecore.Valuta + ``` ## Mode d'emploi @@ -42,7 +42,7 @@ Pour utiliser le programme `Valuta`, procédez comme suit : 1. Choisissez votre pays dans le menu déroulant et saisissez le montant en espèces que vous souhaitez dépenser. - ![Screenshot of Valuta app showing 1000 USD in the input field, with a grey arrow pointing down to a grey box showing 1000 USD](images/02_valuta.png) + ![Screenshot of Valuta app showing 1000 USD in the input field, with a grey arrow pointing down to a grey box showing 1000 USD](images/02_valuta.png) 2. Choisissez le pays vers lequel vous voyagez dans le menu déroulant. À partir de là, le montant converti apparaît automatiquement. From b26dfa7b7ae7dfa7be2bb8ecdc27602b2a61d32f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:50 -0400 Subject: [PATCH 081/167] New translations proton.md (French) --- docs/desktop/gaming/proton.fr.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/gaming/proton.fr.md b/docs/desktop/gaming/proton.fr.md index 3ae9433501..b31ba35c12 100644 --- a/docs/desktop/gaming/proton.fr.md +++ b/docs/desktop/gaming/proton.fr.md @@ -14,9 +14,9 @@ Contrairement à Wine, Proton ne nécessite généralement aucune configuration ## Prérequis -- Une station de travail Rocky Linux avec un environnement de bureau -- Flatpak -- Un compte Steam + - Une station de travail Rocky Linux avec un environnement de bureau + - Flatpak + - Un compte Steam ## Installation de Steam From b785549ba9839743bce1aee6b15466fa12b37f86 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:51 -0400 Subject: [PATCH 082/167] New translations index.md (French) --- docs/rocky_insights/blogs/index.fr.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/rocky_insights/blogs/index.fr.md b/docs/rocky_insights/blogs/index.fr.md index e3e8d48eb3..6c086fa44d 100644 --- a/docs/rocky_insights/blogs/index.fr.md +++ b/docs/rocky_insights/blogs/index.fr.md @@ -20,9 +20,9 @@ Si vous n'avez pas d'identifiants GitHub et que vous souhaitez quand même écri Vous devez vous assurer que votre document répond aux exigences de cette section. Par exemple : -- Est-ce que ça convient ici ? Est-ce que cette information mérite d’être partagée ? S'agit-il d'un document de type blog ? -- Est-ce que cela traite d'un sujet important pour les documentaristes ? -- La publication améliorera-t-elle la qualité globale de toute la documentation de Rocky Linux ? + - Est-ce que ça convient ici ? Est-ce que cette information mérite d’être partagée ? S'agit-il d'un document de type blog ? + - Est-ce que cela traite d'un sujet important pour les documentaristes ? + - La publication améliorera-t-elle la qualité globale de toute la documentation de Rocky Linux ? ## Quel genre d'informations ? From ba29c38505da674f2c5b52f6f56baec3d2c26f90 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:53 -0400 Subject: [PATCH 083/167] New translations lab0-readme.md (French) --- .../kubernetes-the-hard-way/lab0-README.fr.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/labs/kubernetes-the-hard-way/lab0-README.fr.md b/docs/labs/kubernetes-the-hard-way/lab0-README.fr.md index 92cb8e367d..3cfed947c0 100644 --- a/docs/labs/kubernetes-the-hard-way/lab0-README.fr.md +++ b/docs/labs/kubernetes-the-hard-way/lab0-README.fr.md @@ -30,25 +30,25 @@ Le public cible de ce tutoriel est toute personne souhaitant comprendre les prin Version des composantes : -- [kubernetes](https://github.com/kubernetes/kubernetes) v1.32.x -- [containerd](https://github.com/containerd/containerd) v2.0.x -- [cni](https://github.com/containernetworking/cni) v1.6.x -- [etcd](https://github.com/etcd-io/etcd) v3.4.x + - [kubernetes](https://github.com/kubernetes/kubernetes) v1.32.x + - [containerd](https://github.com/containerd/containerd) v2.0.x + - [cni](https://github.com/containernetworking/cni) v1.6.x + - [etcd](https://github.com/etcd-io/etcd) v3.4.x ## Ateliers Ce tutoriel nécessite quatre (4) machines virtuelles ou physiques basées sur x86_64 connectées au même réseau. Bien que le tutoriel utilise des machines basées sur x86_64, vous pouvez appliquer les leçons apprises à d'autres plates-formes. -- [Prérequis](lab1-prerequisites.md) -- [Mise en Place de Jumpbox](lab2-jumpbox.md) -- [Provisioning Compute Resources](lab3-compute-resources.md) -- [Provisioning the CA and Generating TLS Certificates](lab4-certificate-authority.md) -- [Generating Kubernetes Configuration Files for Authentication](lab5-kubernetes-configuration-files.md) -- [Generating the Data Encryption Config and Key](lab6-data-encryption-keys.md) -- [Bootstrapping the etcd Cluster](lab7-bootstrapping-etcd.md) -- [Bootstrapping the Kubernetes Control Plane](lab8-bootstrapping-kubernetes-controllers.md) -- [Bootstrapping the Kubernetes Worker Nodes](lab9-bootstrapping-kubernetes-workers.md) -- [Configuring kubectl for Remote Access](lab10-configuring-kubectl.md) -- [Provisioning Pod Network Routes](lab11-pod-network-routes.md) -- [Smoke Test](lab12-smoke-test.md) -- [Cleaning Up](lab13-cleanup.md) + - [Prérequis](lab1-prerequisites.md) + - [Mise en Place de Jumpbox](lab2-jumpbox.md) + - [Provisioning Compute Resources](lab3-compute-resources.md) + - [Provisioning the CA and Generating TLS Certificates](lab4-certificate-authority.md) + - [Generating Kubernetes Configuration Files for Authentication](lab5-kubernetes-configuration-files.md) + - [Generating the Data Encryption Config and Key](lab6-data-encryption-keys.md) + - [Bootstrapping the etcd Cluster](lab7-bootstrapping-etcd.md) + - [Bootstrapping the Kubernetes Control Plane](lab8-bootstrapping-kubernetes-controllers.md) + - [Bootstrapping the Kubernetes Worker Nodes](lab9-bootstrapping-kubernetes-workers.md) + - [Configuring kubectl for Remote Access](lab10-configuring-kubectl.md) + - [Provisioning Pod Network Routes](lab11-pod-network-routes.md) + - [Smoke Test](lab12-smoke-test.md) + - [Cleaning Up](lab13-cleanup.md) From 1b8b81a5ae395067c2128f819f95bfd75a43bd4e Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:14:56 -0400 Subject: [PATCH 084/167] New translations aqc_bridge_vlan.md (French) --- docs/guides/hardware/aqc_bridge_vlan.fr.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/guides/hardware/aqc_bridge_vlan.fr.md b/docs/guides/hardware/aqc_bridge_vlan.fr.md index 0ad061dee0..e29fd22c1b 100644 --- a/docs/guides/hardware/aqc_bridge_vlan.fr.md +++ b/docs/guides/hardware/aqc_bridge_vlan.fr.md @@ -22,7 +22,9 @@ Les conditions suivantes sont indispensables pour utiliser cette procédure : Vous pouvez désactiver le filtrage VLAN avec une seule commande : + ``` nmcli con modify enp1s0 ethtool.feature-rx-vlan-filter off + ``` Remplacez `enp1s0` par le nom de votre adaptateur réseau basé sur AQC. From 72c4029ec0d7bf7a49751e34fa425a28b53b8ab4 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:32 -0400 Subject: [PATCH 085/167] New translations nload.md (German) --- docs/gemstones/network/nload.de.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/gemstones/network/nload.de.md b/docs/gemstones/network/nload.de.md index 84ff6e7239..30062902f3 100644 --- a/docs/gemstones/network/nload.de.md +++ b/docs/gemstones/network/nload.de.md @@ -70,17 +70,17 @@ Outgoing: Aufschlüsselung der obigen Zeilen: -- Curr - aktuell gemessene Bandbreitennutzung -- Avg – durchschnittliche Bandbreitennutzung im Zeitraum -- Min - minimale gemessene Bandbreitennutzung -- Max – maximal gemessene Bandbreitennutzung -- Ttl – in der `nload`-Sitzung übertragene Daten + - Curr - aktuell gemessene Bandbreitennutzung + - Avg – durchschnittliche Bandbreitennutzung im Zeitraum + - Min - minimale gemessene Bandbreitennutzung + - Max – maximal gemessene Bandbreitennutzung + - Ttl – in der `nload`-Sitzung übertragene Daten ## Tastaturkürzel -- \++page-down++, ++down++ – Eine Schnittstelle nach unten gehen -- \++page-up++, ++up++ – Eine Schnittstelle nach oben gehen -- \++f2++ – Zeigt das Optionsfenster an -- \++f5++ - Optionen speichern -- \++f6++ – Einstellungen aus der Konfigurationsdatei neu laden -- \++q++, ++Strg+C++ – `nload` beenden + - \++page-down++, ++down++ – Eine Schnittstelle nach unten gehen + - \++page-up++, ++up++ – Eine Schnittstelle nach oben gehen + - \++f2++ – Zeigt das Optionsfenster an + - \++f5++ - Optionen speichern + - \++f6++ – Einstellungen aus der Konfigurationsdatei neu laden + - \++q++, ++Strg+C++ – `nload` beenden From d48b0b3696b5ea24415b68428cd8ebf6b0a864b8 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:34 -0400 Subject: [PATCH 086/167] New translations iftop.md (German) --- docs/gemstones/network/iftop.de.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/gemstones/network/iftop.de.md b/docs/gemstones/network/iftop.de.md index c5583bfcc8..a7dbc38471 100644 --- a/docs/gemstones/network/iftop.de.md +++ b/docs/gemstones/network/iftop.de.md @@ -83,21 +83,21 @@ TOTAL: 60.5MB 242Mb 242Mb 242Mb 242Mb Aufschlüsselung der Zeilen im unteren Bereich: -- TX – Datennutzung beim Senden/Hochladen -- RX - Datennutzung empfangen/herunterladen -- TOTAL – Kombinierte Upload-/Download-Nutzung + - TX – Datennutzung beim Senden/Hochladen + - RX - Datennutzung empfangen/herunterladen + - TOTAL – Kombinierte Upload-/Download-Nutzung ## Tastaturkürzel -- \++s++ - aggregiert den gesamten Datenverkehr für jede Quelle -- \++d++ - aggregiert den gesamten Datenverkehr für jedes Ziel -- \++shift+s++ - schaltet die Anzeige des Quellports um -- \++shift+d++ - schaltet die Anzeige des Zielports um -- \++t++ - schaltet zwischen den Anzeigemodi um: Standardmäßige zweizeilige Anzeige mit Sende- und Empfangsverkehr und dreizeilige Anzeige von Sende-, Empfangs- und Gesamt-Traffic -- \++1++, ++2++, ++3++ – Sortieren nach 1., 2. oder 3. Spalte -- \++l++ - geben Sie einen POSIX-regulären Ausdruck ein, um Hostnamen zu filtern -- \++shift+p++ - Pausiert die aktuelle Anzeige -- \++o++ - friert die Gesamtbandbreiten-Auswertung ein -- \++j++ - nach unten scrollen -- \++k++ - nach oben scrollen -- \++f++ – bearbeitet den Filtercode + - \++s++ - aggregiert den gesamten Datenverkehr für jede Quelle + - \++d++ - aggregiert den gesamten Datenverkehr für jedes Ziel + - \++shift+s++ - schaltet die Anzeige des Quellports um + - \++shift+d++ - schaltet die Anzeige des Zielports um + - \++t++ - schaltet zwischen den Anzeigemodi um: Standardmäßige zweizeilige Anzeige mit Sende- und Empfangsverkehr und dreizeilige Anzeige von Sende-, Empfangs- und Gesamt-Traffic + - \++1++, ++2++, ++3++ – Sortieren nach 1., 2. oder 3. Spalte + - \++l++ - geben Sie einen POSIX-regulären Ausdruck ein, um Hostnamen zu filtern + - \++shift+p++ - Pausiert die aktuelle Anzeige + - \++o++ - friert die Gesamtbandbreiten-Auswertung ein + - \++j++ - nach unten scrollen + - \++k++ - nach oben scrollen + - \++f++ – bearbeitet den Filtercode From d3dffbe78cef936562981548b2c9540ab0c4611c Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:35 -0400 Subject: [PATCH 087/167] New translations 00-gh_cli_installation.md (German) --- .../git/00-gh_cli_installation.de.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/gemstones/git/00-gh_cli_installation.de.md b/docs/gemstones/git/00-gh_cli_installation.de.md index 5ce97cd4e8..2626fc0b77 100644 --- a/docs/gemstones/git/00-gh_cli_installation.de.md +++ b/docs/gemstones/git/00-gh_cli_installation.de.md @@ -27,28 +27,28 @@ Benutzer benötigen eine bequeme Möglichkeit zur Interaktion mit GitHub, ohne d ## Prozedur 1. **GitHub CLI-Repository mit curl installieren**: - Verwenden Sie den Befehl curl, um die offizielle Repository-Datei für `gh` herunterzuladen. Die heruntergeladene Datei wird im Verzeichnis `/etc/yum.repos.d/` gespeichert. Verwenden Sie nach dem Herunterladen den Befehl dnf, um `gh` aus dem Repository zu installieren. Geben Sie bitte Folgendes ein: + Verwenden Sie den Befehl curl, um die offizielle Repository-Datei für `gh` herunterzuladen. Die heruntergeladene Datei wird im Verzeichnis `/etc/yum.repos.d/` gespeichert. Verwenden Sie nach dem Herunterladen den Befehl dnf, um `gh` aus dem Repository zu installieren. Geben Sie bitte Folgendes ein: - ```bash - curl -fsSL https://cli.github.com/packages/rpm/gh-cli.repo | sudo tee /etc/yum.repos.d/github-cli.repo - sudo dnf -y install gh - ``` + ```bash + curl -fsSL https://cli.github.com/packages/rpm/gh-cli.repo | sudo tee /etc/yum.repos.d/github-cli.repo + sudo dnf -y install gh + ``` 2. **Verifizierung der Installation**: - Stellen Sie sicher, dass `gh` korrekt installiert ist. Geben Sie bitte Folgendes ein: + Stellen Sie sicher, dass `gh` korrekt installiert ist. Geben Sie bitte Folgendes ein: - ```bash - gh --version - ``` + ```bash + gh --version + ``` 3. **Authentifizierung mit GitHub**: - Loggen Sie sich in Ihr GitHub-Konto ein. Geben Sie bitte Folgendes ein: + Loggen Sie sich in Ihr GitHub-Konto ein. Geben Sie bitte Folgendes ein: - ```bash - gh auth login - ``` + ```bash + gh auth login + ``` - Folgen Sie den Anweisungen zur Authentifizierung. + Folgen Sie den Anweisungen zur Authentifizierung. ## Zusammenfassung From 5a9a76f4efbc020523cf6fd502dd254979874121 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:36 -0400 Subject: [PATCH 088/167] New translations 01-gh_cli_1st_pr.md (German) --- docs/gemstones/git/01-gh_cli_1st_pr.de.md | 58 +++++++++++------------ 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/gemstones/git/01-gh_cli_1st_pr.de.md b/docs/gemstones/git/01-gh_cli_1st_pr.de.md index 1d770e3675..5d8343a1ed 100644 --- a/docs/gemstones/git/01-gh_cli_1st_pr.de.md +++ b/docs/gemstones/git/01-gh_cli_1st_pr.de.md @@ -28,56 +28,56 @@ Mitwirkende möchten oder müssen möglicherweise alle Aktionen über die CLI au ## Lösung-Etappen 1. **Repository mit GitHub CLI forken**: - Forken Sie das Upstream-Repository zu Ihrem Konto. + Forken Sie das Upstream-Repository zu Ihrem Konto. - ```bash - gh repo fork https://github.com/rocky-linux/documentation --clone - ``` + ```bash + gh repo fork https://github.com/rocky-linux/documentation --clone + ``` 2. **Navigieren zum Repository-Verzeichnis**: - ```bash - cd documentation - ``` + ```bash + cd documentation + ``` 3. **Upstream-Repository hinzufügen**: - ```bash - git remote add upstream https://github.com/rocky-linux/documentation.git - ``` + ```bash + git remote add upstream https://github.com/rocky-linux/documentation.git + ``` 4. **Neuen Zweig erstellen**: - Erstellen Sie einen neuen Zweig für Ihren Beitrag. Geben Sie bitte Folgendes ein: + Erstellen Sie einen neuen Zweig für Ihren Beitrag. Geben Sie bitte Folgendes ein: - ```bash - git checkout -b new-gemstone - ``` + ```bash + git checkout -b new-gemstone + ``` 5. **Neuen Zweig erstellen**: - Erstellen Sie einen neuen Zweig für Ihren Beitrag. - Für dieses Beispiel erstellen Sie eine neue Datei namens `gemstome_new_pr.md` im Verzeichnis „docs/gemstones/“. + Erstellen Sie einen neuen Zweig für Ihren Beitrag. + Für dieses Beispiel erstellen Sie eine neue Datei namens `gemstome_new_pr.md` im Verzeichnis „docs/gemstones/“. 6. **Übernahme der Änderungen mit Commit**: - Stellen Sie Ihre neue Datei bereit mit `commit`. Geben Sie bitte Folgendes ein: + Stellen Sie Ihre neue Datei bereit mit `commit`. Geben Sie bitte Folgendes ein: - ```bash - git add docs/gemstones/gemstome_new_pr.md - git commit -m "Add new Gemstone document" - ``` + ```bash + git add docs/gemstones/gemstome_new_pr.md + git commit -m "Add new Gemstone document" + ``` 7. **Auf Ihren Fork mit Push übertragen**: - Übertragen Sie die Änderungen mit `push` auf Ihren Fork/Kopie des Rocky Linux-Dokumentationsrepos. Geben Sie bitte Folgendes ein: + Übertragen Sie die Änderungen mit `push` auf Ihren Fork/Kopie des Rocky Linux-Dokumentationsrepos. Geben Sie bitte Folgendes ein: - ```bash - git push origin new-gemstone - ``` + ```bash + git push origin new-gemstone + ``` 8. **Pull Request erstellen**: - Erstellen Sie einen Pull Request an das Upstream-Repository. + Erstellen Sie einen Pull Request an das Upstream-Repository. - ```bash - gh pr create --base main --head wsoyinka:new-gemstone --title "New Gemstone: Creating PRs via CLI" --body "Guide on how to contribute to documentation using CLI" - ``` + ```bash + gh pr create --base main --head wsoyinka:new-gemstone --title "New Gemstone: Creating PRs via CLI" --body "Guide on how to contribute to documentation using CLI" + ``` ## Zusätzliche Informationen (optional) From 988a6c91738dd9732533c5a0c59f40232a87c13e Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:38 -0400 Subject: [PATCH 089/167] New translations 02-gh_cli_edit_pr_title.md (German) --- .../git/02-gh_cli_edit_pr_title.de.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/gemstones/git/02-gh_cli_edit_pr_title.de.md b/docs/gemstones/git/02-gh_cli_edit_pr_title.de.md index 26eedcec20..274db232e5 100644 --- a/docs/gemstones/git/02-gh_cli_edit_pr_title.de.md +++ b/docs/gemstones/git/02-gh_cli_edit_pr_title.de.md @@ -27,20 +27,20 @@ Manchmal muss der Titel eines PR nach seiner Erstellung angepasst werden, um die ### GitHub CLI – Verwendung 1. **Checken Sie den entsprechenden Zweig aus**: - - Stellen Sie sicher, dass Sie sich auf dem mit dem PR verknüpften Branch befinden. + - Stellen Sie sicher, dass Sie sich auf dem mit dem PR verknüpften Branch befinden. - ```bash - git checkout branch-name - ``` + ```bash + git checkout branch-name + ``` 2. **Bearbeiten Sie den PR mithilfe der CLI**: - - Verwenden Sie den folgenden Befehl, um den PR zu bearbeiten: + - Verwenden Sie den folgenden Befehl, um den PR zu bearbeiten: - ```bash - gh pr edit PR_NUMBER --title "New PR Title" - ``` + ```bash + gh pr edit PR_NUMBER --title "New PR Title" + ``` - - Ersetzen Sie `PR_NUMBER` durch die Nummer Ihres Pull Requests und `"New PR Title"` durch den gewünschten Titel. + - Ersetzen Sie `PR_NUMBER` durch die Nummer Ihres Pull Requests und `"New PR Title"` durch den gewünschten Titel. ## Zusätzliche Informationen (optional) From cb9ed961aef55cec4e9d6c471c4f8a6c4433c4ec Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:40 -0400 Subject: [PATCH 090/167] New translations gnome-tweaks.md (German) --- docs/desktop/gnome/gnome-tweaks.de.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/desktop/gnome/gnome-tweaks.de.md b/docs/desktop/gnome/gnome-tweaks.de.md index 97a1d583a1..710dcbc26d 100644 --- a/docs/desktop/gnome/gnome-tweaks.de.md +++ b/docs/desktop/gnome/gnome-tweaks.de.md @@ -10,7 +10,7 @@ GNOME Tweaks ist ein Tool zum Anpassen von Desktop-Eigenschaften, einschließlic ## Voraussetzungen -- Eine Rocky Linux-Workstation oder ein Server mit GUI-Installation, die GNOME verwendet. + - Eine Rocky Linux-Workstation oder ein Server mit GUI-Installation, die GNOME verwendet. ## GNOME tweaks Installation From 3d8ad7bb90f5bbce5cf3b39e09af0617646c4855 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:42 -0400 Subject: [PATCH 091/167] New translations flatpak.md (German) --- docs/desktop/gnome/flatpak.de.md | 66 ++++++++++++++++---------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/docs/desktop/gnome/flatpak.de.md b/docs/desktop/gnome/flatpak.de.md index 8e5296735a..1a1a4ef494 100644 --- a/docs/desktop/gnome/flatpak.de.md +++ b/docs/desktop/gnome/flatpak.de.md @@ -166,51 +166,51 @@ Der Installationsprozess für OBS Studio sieht beispielsweise wie folgt aus: 3. Klicken Sie auf den Abwärtspfeil neben der Schaltfläche „Installieren“ - ![flathub_install_1](images/01_flatpak.png) + ![flathub_install_1](images/01_flatpak.png) - ![flathub_install_2](images/02_flatpak.png) + ![flathub_install_2](images/02_flatpak.png) 4. Stellen Sie sicher, dass Sie alle Installationsvoraussetzungen für Rocky Linux erfüllt haben (Nummer 1 im zweiten Bild, das oben bereits abgeschlossen ist), kopieren Sie dann den Befehl (Nummer 2 im zweiten Bild) und fügen Sie ihn in ein Terminal ein - ```bash - flatpak install flathub com.obsproject.Studio - Looking for matches… - Required runtime for com.obsproject.Studio/x86_64/stable (runtime/org.kde.Platform/x86_64/6.6) found in remote flathub - Do you want to install it? [Y/n]: Y - ``` + ```bash + flatpak install flathub com.obsproject.Studio + Looking for matches… + Required runtime for com.obsproject.Studio/x86_64/stable (runtime/org.kde.Platform/x86_64/6.6) found in remote flathub + Do you want to install it? [Y/n]: Y + ``` 5. Wenn Sie mit „Y“ antworten und ++enter++ drücken, wird Folgendes angezeigt: - ```bash - com.obsproject.Studio permissions: - ipc network pulseaudio wayland - x11 devices file access [1] dbus access [2] - system dbus access [3] - - [1] host, xdg-config/kdeglobals:ro, xdg-run/pipewire-0 - [2] com.canonical.AppMenu.Registrar, org.a11y.Bus, org.freedesktop.Flatpak, org.freedesktop.Notifications, - org.kde.KGlobalSettings, org.kde.StatusNotifierWatcher, org.kde.kconfig.notify - [3] org.freedesktop.Avahi - - ID Branch Op Remote Download - 1. com.obsproject.Studio.Locale stable i flathub < 47.0 kB (partial) - 2. org.kde.KStyle.Adwaita 6.6 i flathub < 8.0 MB - 3. org.kde.Platform.Locale 6.6 i flathub < 380.6 MB (partial) - 4. org.kde.PlatformTheme.QGnomePlatform 6.6 i flathub < 9.7 MB - 5. org.kde.WaylandDecoration.QAdwaitaDecorations 6.6 i flathub < 1.2 MB - 6. org.kde.Platform 6.6 i flathub < 325.0 MB - 7. com.obsproject.Studio stable i flathub < 207.7 MB - - Proceed with these changes to the system installation? [Y/n]: - ``` + ```bash + com.obsproject.Studio permissions: + ipc network pulseaudio wayland + x11 devices file access [1] dbus access [2] + system dbus access [3] + + [1] host, xdg-config/kdeglobals:ro, xdg-run/pipewire-0 + [2] com.canonical.AppMenu.Registrar, org.a11y.Bus, org.freedesktop.Flatpak, org.freedesktop.Notifications, + org.kde.KGlobalSettings, org.kde.StatusNotifierWatcher, org.kde.kconfig.notify + [3] org.freedesktop.Avahi + + ID Branch Op Remote Download + 1. com.obsproject.Studio.Locale stable i flathub < 47.0 kB (partial) + 2. org.kde.KStyle.Adwaita 6.6 i flathub < 8.0 MB + 3. org.kde.Platform.Locale 6.6 i flathub < 380.6 MB (partial) + 4. org.kde.PlatformTheme.QGnomePlatform 6.6 i flathub < 9.7 MB + 5. org.kde.WaylandDecoration.QAdwaitaDecorations 6.6 i flathub < 1.2 MB + 6. org.kde.Platform 6.6 i flathub < 325.0 MB + 7. com.obsproject.Studio stable i flathub < 207.7 MB + + Proceed with these changes to the system installation? [Y/n]: + ``` 6. Wenn Sie mit „Y“ antworten und ++enter++ drücken, werden die Systemberechtigungen wie angegeben geändert und die Anwendung installiert. 7. Wenn alles gut geht, sollten Sie folgende Meldung erhalten: - ```text - Installation complete. - ``` + ```text + Installation complete. + ``` 8. Im Menü „Aktivities“ können Sie nun nach OBS Studio suchen und es ausführen. From 35627f1941e2f6740848921378392b8032f51a6b Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:47 -0400 Subject: [PATCH 092/167] New translations x11vnc_plus_ssh_lan.md (German) --- docs/desktop/gnome/x11vnc_plus_ssh_lan.de.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/desktop/gnome/x11vnc_plus_ssh_lan.de.md b/docs/desktop/gnome/x11vnc_plus_ssh_lan.de.md index ca7aea8ce7..f16d599180 100644 --- a/docs/desktop/gnome/x11vnc_plus_ssh_lan.de.md +++ b/docs/desktop/gnome/x11vnc_plus_ssh_lan.de.md @@ -20,8 +20,8 @@ Einer der Hauptvorteile der Verwendung von x11vnc gegenüber SSH besteht darin, Für diese Anleitung wird davon ausgegangen, dass Sie Folgendes bereits eingerichtet haben: -- Rocky Linux Workstation -- `sudo`-Berechtigungen + - Rocky Linux Workstation + - `sudo`-Berechtigungen ## VNC-Server einrichten @@ -161,8 +161,8 @@ Herzlichen Glückwunsch! Jetzt können Sie Ihren Desktop aus der Ferne kontrolli Bisher hat Ihnen dieser Artikel gezeigt, wie Sie einen x11vnc-Server einrichten und mithilfe von VNC, das über einen SSH-Tunnel weitergeleitet wird, eine Verbindung zu ihm herstellen. Bitte beachten Sie, dass diese Methode nur für Computer funktioniert, die sich im gleichen lokalen Netzwerk (LAN) befinden. Angenommen, Sie möchten eine Verbindung zu einem Computer herstellen, der sich in einem anderen LAN befindet. Eine Möglichkeit, dies zu erreichen, besteht darin, ein VPN einzurichten. Nachfolgend finden Sie einige Anleitungen zum Einrichten eines VPN: -- [OpenVPN](https://docs.rockylinux.org/guides/security/openvpn/) -- [Wireguard VPN](https://docs.rockylinux.org/guides/security/wireguard_vpn/) + - [OpenVPN](https://docs.rockylinux.org/guides/security/openvpn/) + - [Wireguard VPN](https://docs.rockylinux.org/guides/security/wireguard_vpn/) ## Zusammenfassung From 449f635cace38e22589cc5124ecacc567a6483fe Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:49 -0400 Subject: [PATCH 093/167] New translations firewallgui.md (German) --- docs/desktop/tools/firewallgui.de.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/tools/firewallgui.de.md b/docs/desktop/tools/firewallgui.de.md index 0adac4f148..5b815fd756 100644 --- a/docs/desktop/tools/firewallgui.de.md +++ b/docs/desktop/tools/firewallgui.de.md @@ -14,9 +14,9 @@ Wir werden nicht alles abdecken, was `firewalld` oder die GUI leisten können, a Für diese Anleitung gehen wir davon aus, dass Sie über Folgendes verfügen: -- Eine Rocky Linux-Installation mit einer beliebigen grafischen Desktopumgebung -- `sudo` oder Administratorzugriff -- Ein grundlegendes Verständnis der Arbeitsweise von `firewalld` + - Eine Rocky Linux-Installation mit einer beliebigen grafischen Desktopumgebung + - `sudo` oder Administratorzugriff + - Ein grundlegendes Verständnis der Arbeitsweise von `firewalld` !!! note "Anmerkung" From c37e151d88e5ec8ef32b197931704163cedd6a70 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:51 -0400 Subject: [PATCH 094/167] New translations install_software_with_appimage.md (German) --- docs/desktop/appimage/install_software_with_appimage.de.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/desktop/appimage/install_software_with_appimage.de.md b/docs/desktop/appimage/install_software_with_appimage.de.md index 97e8a23397..2f19668802 100644 --- a/docs/desktop/appimage/install_software_with_appimage.de.md +++ b/docs/desktop/appimage/install_software_with_appimage.de.md @@ -20,8 +20,8 @@ Das in diesem Handbuch verwendete Beispielprogramm heißt `Krita`. Sie werden es Für diese Anleitung benötigen Sie Folgendes: -- Eine Rocky Linux-Installation mit einer grafischen Desktopumgebung -- `sudo`-Berechtigungen + - Eine Rocky Linux-Installation mit einer grafischen Desktopumgebung + - `sudo`-Berechtigungen ## Herunterladen des AppImage eines Programms From d92bc8825bcad9455b9314c07610e83a46cb23df Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:52 -0400 Subject: [PATCH 095/167] New translations installing_nvidia_gpu_drivers.md (German) --- .../display/installing_nvidia_gpu_drivers.de.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/desktop/display/installing_nvidia_gpu_drivers.de.md b/docs/desktop/display/installing_nvidia_gpu_drivers.de.md index 99f183eef9..e495f36334 100644 --- a/docs/desktop/display/installing_nvidia_gpu_drivers.de.md +++ b/docs/desktop/display/installing_nvidia_gpu_drivers.de.md @@ -16,9 +16,9 @@ Der Link für Vorinstallationsaktionen im offiziellen NVIDIA-Handbuch ist defekt Zu den weiteren Möglichkeiten zum Installieren von NVIDIA-Treibern zählen: -- NVIDIA's `.run` installer -- RPMFusion-Repository eines Drittanbieters -- Third-party ELRepo-Treiber + - NVIDIA's `.run` installer + - RPMFusion-Repository eines Drittanbieters + - Third-party ELRepo-Treiber In den meisten Fällen ist es am besten, NVIDIA-Treiber von der offiziellen Quelle zu installieren. RPMFusion und ELRepo stehen für diejenigen zur Verfügung, die ein Community-basiertes Repository bevorzugen. Für ältere Hardware funktioniert RPMFusion am besten. Es wird empfohlen, die Verwendung des `.run`-Installationsprogramms zu vermeiden. Die Verwendung des „.run“-Installationsprogramms ist zwar praktisch, ist aber dafür berüchtigt, Systemdateien zu überschreiben und Inkompatibilitätsprobleme zu verursachen. @@ -26,8 +26,8 @@ In den meisten Fällen ist es am besten, NVIDIA-Treiber von der offiziellen Quel Für diese Anleitung benötigen Sie Folgendes: -- Rocky Linux Workstation -- `sudo`-Berechtigungen + - Rocky Linux Workstation + - `sudo`-Berechtigungen ## Installieren Sie die erforderlichen Dienstprogramme und Abhängigkeiten From a668b1992c50d9fa798a61a64bf2bff0ed32507f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:53 -0400 Subject: [PATCH 096/167] New translations decibels.md (German) --- docs/desktop/gnome/decibels.de.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/desktop/gnome/decibels.de.md b/docs/desktop/gnome/decibels.de.md index 580fe6be38..622471c337 100644 --- a/docs/desktop/gnome/decibels.de.md +++ b/docs/desktop/gnome/decibels.de.md @@ -12,9 +12,9 @@ contributors: Steven Spencer, Ganna Zhyrnova Für diese Anleitung benötigen Sie Folgendes: -- Rocky Linux -- Flatpak -- FlatHub + - Rocky Linux + - Flatpak + - FlatHub ## Installations-Ablauf @@ -26,15 +26,15 @@ Gehen Sie zu [Flathub.org] (https://flathub.org), geben Sie `Decibels` in die Su 2. Kopieren Sie das manuelle Installationsskript und führen Sie es in einem Terminal aus: - ```bash - flatpak install flathub org.gnome.Decibels - ``` + ```bash + flatpak install flathub org.gnome.Decibels + ``` 3. Kopieren Sie abschließend den Ausführungsbefehl und rufen Sie ihn in Ihrem Terminal auf: - ```bash - flatpak run org.gnome.Decibels - ``` + ```bash + flatpak run org.gnome.Decibels + ``` ## Anwendungshinweise @@ -42,11 +42,11 @@ Gehen Sie wie folgt vor, um `Decibels` zu verwenden: 1. Auf **Open** klicken - ![Screenshot of Decibels' landing page with a red rectangle surrounding the blue open button](images/02_decibels.png) + ![Screenshot of Decibels' landing page with a red rectangle surrounding the blue open button](images/02_decibels.png) 2. Wählen Sie Ihre gewünschte Datei aus und klicken Sie auf **Open**, das in der oberen rechten Ecke des Bildschirms erscheint - ![Screenshot of Decibels file selection interface with numbered arrows indicating audio file and Open button](images/03_decibels.png) + ![Screenshot of Decibels file selection interface with numbered arrows indicating audio file and Open button](images/03_decibels.png) !!! note "Anmerkung" From 037ecd23cb7b5c0f1597ae66b06bd96f9ebd6049 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:54 -0400 Subject: [PATCH 097/167] New translations valuta.md (German) --- docs/desktop/gnome/valuta.de.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/desktop/gnome/valuta.de.md b/docs/desktop/gnome/valuta.de.md index a08c27e5a7..cb9ce53918 100644 --- a/docs/desktop/gnome/valuta.de.md +++ b/docs/desktop/gnome/valuta.de.md @@ -12,9 +12,9 @@ Wenn Sie häufig reisen oder ins Ausland ziehen, vereinfachen Sie Ihre Finanzpla Für diese Anleitung benötigen Sie Folgendes: -- Rocky Linux -- Flatpak -- FlatHub + - Rocky Linux + - Flatpak + - FlatHub ## Installationsanweisungen @@ -22,19 +22,19 @@ Für diese Anleitung benötigen Sie Folgendes: 1. Gehen Sie zu [Flathub.org] (https://flathub.org), geben Sie `Valuta` in die Suchleiste ein und klicken Sie auf **Install** - ![manual install script and run script](images/valuta-install.png) + ![manual install script and run script](images/valuta-install.png) 2. Kopieren Sie das manuelle Skript in Ihr Terminal: - ```bash - flatpak install flathub io.github.idevecore.Valuta - ``` + ```bash + flatpak install flathub io.github.idevecore.Valuta + ``` 3. Führen Sie anschließend das manuelle Installationsskript in Ihrem Terminal aus: - ```bash - flatpak run flathub io.github.idevecore.Valuta - ``` + ```bash + flatpak run flathub io.github.idevecore.Valuta + ``` ## Wie funktioniert es? @@ -42,7 +42,7 @@ Um `Valuta` zu verwenden, gehen Sie wie folgt vor: 1. Wählen Sie im Dropdown-Menü Ihr Land aus und geben Sie den Betrag ein, den Sie ausgeben möchten. - ![Screenshot of Valuta app showing 1000 USD in the input field, with a grey arrow pointing down to a grey box showing 1000 USD](images/02_valuta.png) + ![Screenshot of Valuta app showing 1000 USD in the input field, with a grey arrow pointing down to a grey box showing 1000 USD](images/02_valuta.png) 2. Wählen Sie aus dem Dropdown-Menü das Land aus, in das Sie reisen. Der umgerechnete Betrag wird automatisch angezeigt. From 9c08f0769038d898923b7c86088a896f2cf52c81 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:56 -0400 Subject: [PATCH 098/167] New translations file-shredder.md (German) --- docs/desktop/gnome/file-shredder.de.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/gnome/file-shredder.de.md b/docs/desktop/gnome/file-shredder.de.md index 275a3baa6c..7d9f9b0d1c 100644 --- a/docs/desktop/gnome/file-shredder.de.md +++ b/docs/desktop/gnome/file-shredder.de.md @@ -12,9 +12,9 @@ Möchten Sie eine Postkarte oder eine PDF-Datei mit Informationen wie Ihrem Gebu Für diese Anleitung benötigen Sie Folgendes: -- Rocky Linux -- Flatpak -- FlatHub + - Rocky Linux + - Flatpak + - FlatHub ## Installations-Ablauf From d07c79d3837844264f58da83205b23ae1032ddcd Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:15:57 -0400 Subject: [PATCH 099/167] New translations screenshot.md (German) --- docs/desktop/gnome/screenshot.de.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/desktop/gnome/screenshot.de.md b/docs/desktop/gnome/screenshot.de.md index c4f69b8fee..cf872a316b 100644 --- a/docs/desktop/gnome/screenshot.de.md +++ b/docs/desktop/gnome/screenshot.de.md @@ -12,7 +12,7 @@ Sind Sie es leid, mit der Tastatur Bilder auf Ihrem Computerbildschirm aufzunehm Für diese Anleitung benötigen Sie Folgendes: -- Rocky Linux + - Rocky Linux !!! note "Anmerkung" @@ -30,7 +30,7 @@ Gehen Sie wie folgt vor, um `Screenshot` zu verwenden: 2. Auf **Take a Screenshot** klicken - ![Screenshot of taken picture of being saved with black arrows pointing at a text box that contains the file name, "Linux.png" as well as Save and Copy buttons](images/screenshot-02.png) + ![Screenshot of taken picture of being saved with black arrows pointing at a text box that contains the file name, "Linux.png" as well as Save and Copy buttons](images/screenshot-02.png) 3. Wenn Sie mit dem Screenshot zufrieden sind, benennen Sie die Datei um und klicken Sie auf **Save**. From 8f9d3492c57e1afe043605103bf82ba45154f2c4 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:16:00 -0400 Subject: [PATCH 100/167] New translations proton.md (German) --- docs/desktop/gaming/proton.de.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/gaming/proton.de.md b/docs/desktop/gaming/proton.de.md index 5283ef4228..02128043f1 100644 --- a/docs/desktop/gaming/proton.de.md +++ b/docs/desktop/gaming/proton.de.md @@ -14,9 +14,9 @@ Im Gegensatz zu `Wine` erfordert `Proton` normalerweise keine Konfiguration und ## Voraussetzungen -- Eine Rocky Linux-Installation mit einer grafischen Desktopumgebung -- Flatpak -- Steam-Konto + - Eine Rocky Linux-Installation mit einer grafischen Desktopumgebung + - Flatpak + - Steam-Konto ## `Steam`-Installaton From d4894feb7ba9556559d574d11cd461ed325fa5de Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:16:06 -0400 Subject: [PATCH 101/167] New translations lab0-readme.md (German) --- .../kubernetes-the-hard-way/lab0-README.de.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/labs/kubernetes-the-hard-way/lab0-README.de.md b/docs/labs/kubernetes-the-hard-way/lab0-README.de.md index 80de276dc6..81762615f0 100644 --- a/docs/labs/kubernetes-the-hard-way/lab0-README.de.md +++ b/docs/labs/kubernetes-the-hard-way/lab0-README.de.md @@ -30,25 +30,25 @@ Die Zielgruppe dieses Tutorials sind alle, die die Grundlagen von Kubernetes und Komponenten-Versionen: -- [kubernetes](https://github.com/kubernetes/kubernetes) v1.32.x -- [containerd](https://github.com/containerd/containerd) v2.0.x -- [cni](https://github.com/containernetworking/cni) v1.6.x -- [etcd](https://github.com/etcd-io/etcd) v3.4.x + - [kubernetes](https://github.com/kubernetes/kubernetes) v1.32.x + - [containerd](https://github.com/containerd/containerd) v2.0.x + - [cni](https://github.com/containernetworking/cni) v1.6.x + - [etcd](https://github.com/etcd-io/etcd) v3.4.x ## Labs Für dieses Tutorial sind vier (4) x86_64-basierte virtuelle oder physische Maschinen erforderlich, die mit demselben Netzwerk verbunden sind. Während im Tutorial x86_64-basierte Maschinen verwendet werden, können Sie die gewonnenen Erkenntnisse auf andere Plattformen anwenden. -- [Voraussetzungen](lab1-prerequisites.md) -- [Setup der Jumpbox](lab2-jumpbox.md) -- [Provisionierung der Rechner Ressourcen](lab3-compute-resources.md) -- [Provisionierung der CA und Generierung von TLS-Zertifikate](lab4-certificate-authority.md) -- [Generierung der Kubernetes Konfigurationsdateien für die Authentifizierung](lab5-kubernetes-configuration-files.md) -- [Generierung der Data Encryption Konfiguration und Schlüssel](lab6-data-encryption-keys.md) -- [Bootstrapping vom etcd-Cluster](lab7-bootstrapping-etcd.md) -- [Bootstrapping the Kubernetes Control Plane](lab8-bootstrapping-kubernetes-controllers.md) -- [Bootstrapping the Kubernetes Worker Nodes](lab9-bootstrapping-kubernetes-workers.md) -- [Configuring kubectl for Remote Access](lab10-configuring-kubectl.md) -- [Provisioning Pod Network Routes](lab11-pod-network-routes.md) -- [Smoke Test](lab12-smoke-test.md) -- [Cleaning Up](lab13-cleanup.md) + - [Voraussetzungen](lab1-prerequisites.md) + - [Setup der Jumpbox](lab2-jumpbox.md) + - [Provisionierung der Rechner Ressourcen](lab3-compute-resources.md) + - [Provisionierung der CA und Generierung von TLS-Zertifikate](lab4-certificate-authority.md) + - [Generierung der Kubernetes Konfigurationsdateien für die Authentifizierung](lab5-kubernetes-configuration-files.md) + - [Generierung der Data Encryption Konfiguration und Schlüssel](lab6-data-encryption-keys.md) + - [Bootstrapping vom etcd-Cluster](lab7-bootstrapping-etcd.md) + - [Bootstrapping the Kubernetes Control Plane](lab8-bootstrapping-kubernetes-controllers.md) + - [Bootstrapping the Kubernetes Worker Nodes](lab9-bootstrapping-kubernetes-workers.md) + - [Configuring kubectl for Remote Access](lab10-configuring-kubectl.md) + - [Provisioning Pod Network Routes](lab11-pod-network-routes.md) + - [Smoke Test](lab12-smoke-test.md) + - [Cleaning Up](lab13-cleanup.md) From 692c55a0ca3352989c79f4365436ce0a53df4476 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:16:09 -0400 Subject: [PATCH 102/167] New translations aqc_bridge_vlan.md (German) --- docs/guides/hardware/aqc_bridge_vlan.de.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/guides/hardware/aqc_bridge_vlan.de.md b/docs/guides/hardware/aqc_bridge_vlan.de.md index a092b4c5ff..c58386f347 100644 --- a/docs/guides/hardware/aqc_bridge_vlan.de.md +++ b/docs/guides/hardware/aqc_bridge_vlan.de.md @@ -22,7 +22,9 @@ Für die Verwendung dieses Verfahrens sind folgende Mindestanforderungen zu beac Sie können die VLAN-Filterung mit einem Befehl deaktivieren: + ``` nmcli con modify enp1s0 ethtool.feature-rx-vlan-filter off + ``` Ersetzen Sie `enp1s0` durch den Namen Ihrer AQC-basierten Netzwerkkarte. From 9c625cc9215c2dd64968965dbc4616cb97a32d4a Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:27 -0400 Subject: [PATCH 103/167] New translations lab7-software_management.md (Italian) --- .../lab7-software_management.it.md | 656 +++++++++--------- 1 file changed, 328 insertions(+), 328 deletions(-) diff --git a/docs/labs/systems_administration_I/lab7-software_management.it.md b/docs/labs/systems_administration_I/lab7-software_management.it.md index fb3a078047..370e89481e 100644 --- a/docs/labs/systems_administration_I/lab7-software_management.it.md +++ b/docs/labs/systems_administration_I/lab7-software_management.it.md @@ -116,130 +116,130 @@ https://download.rockylinux.org/pub/rocky/8.8/ 1. Per visualizzare un elenco di tutti i pacchetti attualmente installati sul sistema locale, digitare: - ```bash - $ rpm -qa - python3-gobject-base-* - NetworkManager-* - rocky-repos-* - ...... - ``` + ```bash + $ rpm -qa + python3-gobject-base-* + NetworkManager-* + rocky-repos-* + ...... + ``` - Dovresti vedere un lungo elenco. + Dovresti vedere un lungo elenco. 2. Approfondiamo un po' e scopriamo qualcosa in più su uno dei pacchetti installati sul sistema. Esamineremo NetworkManager. Utilizzeremo le opzioni --query (-q) e --info (-i) con il comando `rpm`. Digitare: - ```bash - $ rpm -qi NetworkManager - Name : NetworkManager - Epoch : 1 - ...... - ``` + ```bash + $ rpm -qi NetworkManager + Name : NetworkManager + Epoch : 1 + ...... + ``` - Si tratta di una grande quantità di informazioni (metadati)! + Si tratta di una grande quantità di informazioni (metadati)! 3. Supponiamo di essere interessati solo al campo Summary del comando precedente. Possiamo utilizzare l'opzione --queryformat di rpm per filtrare le informazioni che otteniamo dall'opzione query. - Ad esempio, per visualizzare solo il campo Summary, digitare: + Ad esempio, per visualizzare solo il campo Summary, digitare: - ```bash - rpm -q --queryformat '%{summary}\n' NetworkManager - ``` + ```bash + rpm -q --queryformat '%{summary}\n' NetworkManager + ``` - Il nome del campo non fa distinzione tra maiuscole e minuscole. + Il nome del campo non fa distinzione tra maiuscole e minuscole. 4. Per visualizzare sia il campo Version che il campo Summary del pacchetto NetworkManager installato, digitare: - ```bash - rpm -q --queryformat '%{version} %{summary}\n' NetworkManager - ``` + ```bash + rpm -q --queryformat '%{version} %{summary}\n' NetworkManager + ``` 5. Digitare il comando per visualizzare le informazioni relative al pacchetto bash installato sul sistema. - ```bash - rpm -qi bash - ``` + ```bash + rpm -qi bash + ``` - !!! note "Nota" + !!! note "Nota" - ``` - Gli esercizi precedenti riguardavano la ricerca e l'utilizzo di pacchetti già installati sul sistema. Nei seguenti esercizi inizieremo a lavorare con pacchetti che non sono ancora stati installati. Utilizzeremo l'applicazione DNF per scaricare i pacchetti che useremo nei passaggi successivi. - ``` + ``` + Gli esercizi precedenti riguardavano la ricerca e l'utilizzo di pacchetti già installati sul sistema. Nei seguenti esercizi inizieremo a lavorare con pacchetti che non sono ancora stati installati. Utilizzeremo l'applicazione DNF per scaricare i pacchetti che useremo nei passaggi successivi. + ``` 6. Innanzitutto, assicurarsi che l'applicazione `wget` non sia già installata sul sistema. Digitare: - ```bash - rpm -q wget - package wget is not installed - ``` + ```bash + rpm -q wget + package wget is not installed + ``` - Sembra che `wget` non sia installato sul nostro sistema demo. + Sembra che `wget` non sia installato sul nostro sistema demo. 7. A partire da Rocky Linux 8.x, il comando `dnf download` ti consentirà di ottenere l'ultimo pacchetto `rpm` per `wget`. Digitare: - ```bash - dnf download wget - ``` + ```bash + dnf download wget + ``` 8. Utilizzare il comando `ls` per assicurarsi che il pacchetto sia stato scaricato nella directory corrente. Digitare: - ```bash - ls -lh wg* - ``` + ```bash + ls -lh wg* + ``` 9. Utilizzare il comando `rpm` per richiedere informazioni sul file wget-\*.rpm scaricato. Digitare: - ```bash - rpm -qip wget-*.rpm - Name : wget - Architecture: x86_64 - Install Date: (not installed) - Group : Applications/Internet - ...... - ``` + ```bash + rpm -qip wget-*.rpm + Name : wget + Architecture: x86_64 + Install Date: (not installed) + Group : Applications/Internet + ...... + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Dal risultato ottenuto nel passaggio precedente, che cos'è esattamente il pacchetto `wget`? Suggerimento: è possibile utilizzare l'opzione di formato query `rpm` per visualizzare il campo di descrizione del pacchetto scaricato. - ``` + ``` + Dal risultato ottenuto nel passaggio precedente, che cos'è esattamente il pacchetto `wget`? Suggerimento: è possibile utilizzare l'opzione di formato query `rpm` per visualizzare il campo di descrizione del pacchetto scaricato. + ``` 10. Se siete interessati al pacchetto `wget files-.rpm`, è possibile elencare tutti i file inclusi nel pacchetto digitando: - ```bash - rpm -qlp wget-*.rpm | head - /etc/wgetrc - /usr/bin/wget - ...... - /usr/share/doc/wget/AUTHORS - /usr/share/doc/wget/COPYING - /usr/share/doc/wget/MAILING-LIST - /usr/share/doc/wget/NEWS - ``` + ```bash + rpm -qlp wget-*.rpm | head + /etc/wgetrc + /usr/bin/wget + ...... + /usr/share/doc/wget/AUTHORS + /usr/share/doc/wget/COPYING + /usr/share/doc/wget/MAILING-LIST + /usr/share/doc/wget/NEWS + ``` 11. Visualizziamo il contenuto del file `/usr/share/doc/wget/AUTHORS` elencato come parte del pacchetto `wget`. Useremo il comando `cat`. Digitare: - ```bash - cat /usr/share/doc/wget/AUTHORS - cat: /usr/share/doc/wget/AUTHORS: No such file or directory - ``` + ```bash + cat /usr/share/doc/wget/AUTHORS + cat: /usr/share/doc/wget/AUTHORS: No such file or directory + ``` - `wget` non è stato [ancora] installato sul nostro sistema demo! E quindi, non possiamo visualizzare il file AUTHORS che è incluso nel pacchetto! + `wget` non è stato [ancora] installato sul nostro sistema demo! E quindi, non possiamo visualizzare il file AUTHORS che è incluso nel pacchetto! 12. Visualizzare l'elenco dei file inclusi in un altro pacchetto (curl) che è _già_ installato sul sistema. Digitare: - ```bash - $ rpm -ql curl - /usr/bin/curl - /usr/lib/.build-id - /usr/lib/.build-id/fc - ...<>... - ``` + ```bash + $ rpm -ql curl + /usr/bin/curl + /usr/lib/.build-id + /usr/lib/.build-id/fc + ...<>... + ``` - !!! note "Nota" + !!! note "Nota" - ``` - Si noterà che nel comando precedente non è stato necessario fare riferimento al nome completo del pacchetto `curl`. Questo perché `curl` è già installato. - ``` + ``` + Si noterà che nel comando precedente non è stato necessario fare riferimento al nome completo del pacchetto `curl`. Questo perché `curl` è già installato. + ``` #### Maggiori informazioni sul nome del pacchetto @@ -283,35 +283,35 @@ https://download.rockylinux.org/pub/rocky/8.8/ 1. È possibile scaricare o ritrovarsi con un file danneggiato o contaminato. Per verificare l'integrità del pacchetto `wget` che avete scaricato. Digitare: - ```bash - rpm -K wget-*.rpm - wget-1.19.5-10.el8.x86_64.rpm: digests signatures OK - ``` + ```bash + rpm -K wget-*.rpm + wget-1.19.5-10.el8.x86_64.rpm: digests signatures OK + ``` - Il messaggio "digests signatures OK" nell'output indica che il pacchetto è corretto. + Il messaggio "digests signatures OK" nell'output indica che il pacchetto è corretto. 2. Siamo maliziosi e modifichiamo deliberatamente il pacchetto scaricato. Questo può essere fatto aggiungendo o rimuovendo qualcosa dal pacchetto originale. Qualsiasi modifica al pacchetto che non sia stata prevista dai creatori originali danneggerà il pacchetto. Modificheremo il file utilizzando il comando `echo` per aggiungere la stringa "haha" al pacchetto. Digitare: - ```bash - echo haha >> wget-1.19.5-10.el8.x86_64.rpm - ``` + ```bash + echo haha >> wget-1.19.5-10.el8.x86_64.rpm + ``` 3. Provate ora a verificare nuovamente l'integrità del pacchetto utilizzando l'opzione -K di rpm. - ```bash - $ rpm -K wget-*.rpm - wget-1.19.5-10.el8.x86_64.rpm: DIGESTS SIGNATURES NOT OK - ``` + ```bash + $ rpm -K wget-*.rpm + wget-1.19.5-10.el8.x86_64.rpm: DIGESTS SIGNATURES NOT OK + ``` - Ora il messaggio è molto diverso. Il messaggio "DIGESTS SIGNATURES NOT OK" avverte chiaramente che non si dovrebbe provare a utilizzare o installare il pacchetto. Non ci si dovrebbe più fidare. + Ora il messaggio è molto diverso. Il messaggio "DIGESTS SIGNATURES NOT OK" avverte chiaramente che non si dovrebbe provare a utilizzare o installare il pacchetto. Non ci si dovrebbe più fidare. 4. Utilizzare il comando `rm` per eliminare il file del pacchetto `wget` danneggiato e scaricare una nuova copia utilizzando `dnf`. Digitare: - ```bash - rm wget-*.rpm && dnf download wget - ``` + ```bash + rm wget-*.rpm && dnf download wget + ``` - Verificare nuovamente che il pacchetto appena scaricato superi i controlli di integrità RPM. + Verificare nuovamente che il pacchetto appena scaricato superi i controlli di integrità RPM. ## Esercizio 3 @@ -329,74 +329,74 @@ In questo esercizio si proverà ad installare il pacchetto `wget` (wget-\*.rpm). 1. Provare ad installare l'applicazione `wget`. Utilizzare le opzioni della riga di comando -ivh di RPM. Digitare: - ```bash - rpm -ivh wget-*.rpm - error: Failed dependencies: - libmetalink.so.3()(64bit) is needed by wget-* - ``` + ```bash + rpm -ivh wget-*.rpm + error: Failed dependencies: + libmetalink.so.3()(64bit) is needed by wget-* + ``` - Subito - un problema di dipendenza! L'output di esempio mostra che `wget` necessita di un file di libreria denominato "libmetalink.so.3" + Subito - un problema di dipendenza! L'output di esempio mostra che `wget` necessita di un file di libreria denominato "libmetalink.so.3" - !!! note "Nota" + !!! note "Nota" - ``` - In base al risultato del test sopra riportato, il pacchetto wget-*.rpm richiede l'installazione del pacchetto libmetalink-*.rpm. In altre parole, libmetalink è un prerequisito per l'installazione di wget-*.rpm. È possibile installare forzatamente il pacchetto wget-*.rpm utilizzando l'opzione "nodeps" se si è assolutamente certi di ciò che si sta facendo, ma in genere questa è una pratica SCONSIGLIATA. - ``` + ``` + In base al risultato del test sopra riportato, il pacchetto wget-*.rpm richiede l'installazione del pacchetto libmetalink-*.rpm. In altre parole, libmetalink è un prerequisito per l'installazione di wget-*.rpm. È possibile installare forzatamente il pacchetto wget-*.rpm utilizzando l'opzione "nodeps" se si è assolutamente certi di ciò che si sta facendo, ma in genere questa è una pratica SCONSIGLIATA. + ``` 2. RPM ci ha gentilmente fornito un indizio su ciò che manca. Ricorderete che `rpm` conosce il cosa e il come, ma non necessariamente il dove. Utilizziamo l'utilità `dnf` per cercare di capire il nome del pacchetto che fornisce la libreria mancante. Digitare: - ```bash - $ dnf whatprovides libmetalink.so.3 - ...... - libmetalink-* : Metalink library written in C - Repo : baseos - Matched from: - Provide : libmetalink.so.3 - ``` + ```bash + $ dnf whatprovides libmetalink.so.3 + ...... + libmetalink-* : Metalink library written in C + Repo : baseos + Matched from: + Provide : libmetalink.so.3 + ``` 3. Dal risultato ottenuto, è necessario scaricare il pacchetto `libmetalink` che fornisce la libreria mancante. In particolare, desideriamo la versione a 64 bit della libreria. Richiediamo l'aiuto di un'utilità separata (`dnf`) per trovare e scaricare il pacchetto per la nostra architettura demo a 64 bit (x86_64). Digitare: - ```bash - dnf download --arch x86_64 libmetalink - ``` + ```bash + dnf download --arch x86_64 libmetalink + ``` 4. Ora si dovrebbero avere almeno 2 pacchetti rpm nella directory di lavoro. Utilizzare il comando `ls` per verificarlo. 5. Installare la dipendenza mancante `libmetalink`. Digitare: - ```bash - sudo rpm -ivh libmetalink-*.rpm - ``` + ```bash + sudo rpm -ivh libmetalink-*.rpm + ``` 6. Ora che la dipendenza è stata installata, possiamo tornare al nostro obiettivo iniziale, ovvero installare il pacchetto `wget`. Digitare: - ```bash - sudo rpm -ivh wget-*.rpm - ``` + ```bash + sudo rpm -ivh wget-*.rpm + ``` - !!! note "Nota" + !!! note "Nota" - ```` - RPM supporta le transazioni. Negli esercizi precedenti, avremmo potuto eseguire una singola transazione rpm che includesse il pacchetto originale che volevamo installare e tutti i pacchetti e le librerie da cui dipendeva. Sarebbe stato sufficiente un singolo comando come quello riportato di seguito: + ```` + RPM supporta le transazioni. Negli esercizi precedenti, avremmo potuto eseguire una singola transazione rpm che includesse il pacchetto originale che volevamo installare e tutti i pacchetti e le librerie da cui dipendeva. Sarebbe stato sufficiente un singolo comando come quello riportato di seguito: - ```bash - rpm -Uvh wget-*.rpm libmetalink-*.rpm - ``` - ```` + ```bash + rpm -Uvh wget-*.rpm libmetalink-*.rpm + ``` + ```` 7. È arrivato il momento della verità. Provare ad eseguire il programma `wget` senza alcuna opzione per verificare se è installato. Digitare: - ```bash - wget - ``` + ```bash + wget + ``` 8. Vediamo `wget` in azione. Utilizzare `wget` per scaricare un file da Internet dalla riga di comando. Digitare: - ```bash - wget https://kernel.org - ``` + ```bash + wget https://kernel.org + ``` - Questo scaricherà il file index.html predefinito dal sito web kernel.org! + Questo scaricherà il file index.html predefinito dal sito web kernel.org! 9. Utilizzare `rpm` per visualizzare un elenco di tutti i file inclusi nell'applicazione `wget`. @@ -406,16 +406,16 @@ In questo esercizio si proverà ad installare il pacchetto `wget` (wget-\*.rpm). 12. È necessario installare il pacchetto `libmetalink` per installare `wget`. Prova a eseguire o lanciare `libmetalink` dalla riga di comando. Digitare: - ```bash - libmetalink - -bash: libmetalink: command not found - ``` + ```bash + libmetalink + -bash: libmetalink: command not found + ``` - !!! attention "Attenzione" + !!! attention "Attenzione" - ``` - Che succede? Perché non si riescs ad eseguire `libmetalink`? - ``` + ``` + Che succede? Perché non si riescs ad eseguire `libmetalink`? + ``` #### Importazione di una chiave pubblica tramite `rpm` @@ -443,31 +443,31 @@ In questo esercizio si proverà ad utilizzare `rpm` per disinstallare alcuni pac 1. Disinstallare il pacchetto `libmetalink` dal sistema. Digitare: - ```bash - sudo rpm -e libmetalink - ``` + ```bash + sudo rpm -e libmetalink + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Spiegate perché non è stato possibile rimuovere il pacchetto? - ``` + ``` + Spiegate perché non è stato possibile rimuovere il pacchetto? + ``` 2. Il modo corretto e pulito per rimuovere i pacchetti utilizzando RPM è quello di rimuovere i pacchetti insieme alle loro dipendenze. Per rimuovere il pacchetto `libmetalink` dovremo rimuovere anche il pacchetto `wget` che dipende da esso. Digitare: - ```bash - sudo rpm -e libmetalink wget - ``` + ```bash + sudo rpm -e libmetalink wget + ``` - !!! note "Nota" + !!! note "Nota" - ``` - Se si desidera disinstallare il pacchetto che dipende da libmetalink e rimuovere *forzatamente* il pacchetto dal sistema, è possibile utilizzare l'opzione `--nodeps` di rpm come segue: `$ sudo rpm -e --nodeps libmetalink`. + ``` + Se si desidera disinstallare il pacchetto che dipende da libmetalink e rimuovere *forzatamente* il pacchetto dal sistema, è possibile utilizzare l'opzione `--nodeps` di rpm come segue: `$ sudo rpm -e --nodeps libmetalink`. - **i.** L'opzione "nodeps" significa Nessuna dipendenza. Ovvero, ignora tutte le dipendenze. - **ii.** Quanto sopra illustra come rimuovere forzatamente un pacchetto dal sistema. A volte è necessario farlo, ma in genere *non è una buona pratica*. - **iii.** La rimozione forzata di un pacchetto "xyz" da cui dipende un altro pacchetto installato "abc" rende di fatto il pacchetto "abc" inutilizzabile o in qualche modo danneggiato. - ``` + **i.** L'opzione "nodeps" significa Nessuna dipendenza. Ovvero, ignora tutte le dipendenze. + **ii.** Quanto sopra illustra come rimuovere forzatamente un pacchetto dal sistema. A volte è necessario farlo, ma in genere *non è una buona pratica*. + **iii.** La rimozione forzata di un pacchetto "xyz" da cui dipende un altro pacchetto installato "abc" rende di fatto il pacchetto "abc" inutilizzabile o in qualche modo danneggiato. + ``` ## Esercizio 5 @@ -524,66 +524,66 @@ Assumendo che sia già stata disinstallata l'utilità `wget` da un esercizio, ut 1. Per prima cosa, assicurarsi che `wget` e `libmetalink` siano stati disinstallati dal sistema. Digitare: - ```bash - sudo rpm -e wget libmetalink - ``` + ```bash + sudo rpm -e wget libmetalink + ``` - Dopo la rimozione, se si prova a eseguire `wget` dalla CLI, viene visualizzato un messaggio simile a _wget: command not found_ + Dopo la rimozione, se si prova a eseguire `wget` dalla CLI, viene visualizzato un messaggio simile a _wget: command not found_ 2. Ora usare `dnf` per installare `wget`. Digitare: - ```bash - sudo dnf -y install wget - Dependencies resolved. - ...... - Installed: - libmetalink-* wget-* - Complete! - ``` + ```bash + sudo dnf -y install wget + Dependencies resolved. + ...... + Installed: + libmetalink-* wget-* + Complete! + ``` - !!! tip "Suggerimento" + !!! tip "Suggerimento" - ``` - L'opzione "-y" utilizzata nel comando precedente sopprime il prompt "[y/N]" che richiede di confermare l'azione che `dnf` sta per eseguire. Ciò significa che tutte le azioni di conferma (o risposte interattive) saranno "sì" (y). - ``` + ``` + L'opzione "-y" utilizzata nel comando precedente sopprime il prompt "[y/N]" che richiede di confermare l'azione che `dnf` sta per eseguire. Ciò significa che tutte le azioni di conferma (o risposte interattive) saranno "sì" (y). + ``` 3. DNF offre un'opzione "Environment Group" che semplifica l'aggiunta di un nuovo set di funzionalità a un sistema. Per aggiungere la funzionalità, in genere è necessario installare alcuni pacchetti singolarmente, ma utilizzando `dnf`, è sufficiente conoscere il nome o la descrizione della funzionalità desiderata. Utilizzare `dnf` per visualizzare un elenco dei gruppi disponibili. Digitare: - ```bash - dnf group list - ``` + ```bash + dnf group list + ``` 4. Il nostro interesse è rivolto al gruppo/funzionalità “ Development Tools”. Cerchiamo di ottenere maggiori informazioni su quel gruppo. Digitare: - ```bash - dnf group info "Development Tools" - ``` + ```bash + dnf group info "Development Tools" + ``` 5. Successivamente, avremo bisogno di alcuni programmi del gruppo "Development Tools". Installare il gruppo “Development Tools” utilizzando `dnf` eseguendo: - ```bash - sudo dnf -y group install "Development Tools" - ``` + ```bash + sudo dnf -y group install "Development Tools" + ``` #### Uso di `dnf` per disinstallare i pacchetti 1. Per utilizzare `dnf` per disinstallare il pacchetto `wget`, digitare: - ```bash - sudo dnf -y remove wget - ``` + ```bash + sudo dnf -y remove wget + ``` 2. Utilizzare `dnf` per assicurarsi che il pacchetto sia stato effettivamente rimosso dal sistema. Digitare: - ```bash - sudo dnf -y remove wget - ``` + ```bash + sudo dnf -y remove wget + ``` 3. Provare ad utilizzare/eseguire `wget`. Digitare: - ```bash - wget - ``` + ```bash + wget + ``` #### Uso di `dnf` per l'aggiornamento dei pacchetti @@ -591,33 +591,33 @@ DNF può verificare e installare l'ultima versione dei singoli pacchetti disponi 1. Utilizzare l'opzione list con `dnf` per visualizzare le versioni disponibili del programma `wget` sul sistema. Digitare: - ```bash - dnf list wget - ``` + ```bash + dnf list wget + ``` 2. Se si vuole solo verificare se siano disponibili versioni aggiornate per un pacchetto, utilizzare l'opzione check-update con `dnf`. Ad esempio, per il pacchetto `wget`, digitare: - ```bash - dnf check-update wget - ``` + ```bash + dnf check-update wget + ``` 3. Ora, elencare tutte le versioni disponibili per il pacchetto kernel del sistema. Digitare: - ```bash - sudo dnf list kernel - ``` + ```bash + sudo dnf list kernel + ``` 4. Successivamente, verificare se sono disponibili pacchetti aggiornati per il pacchetto kernel installato. Digitare: - ```bash - dnf check-update kernel - ``` + ```bash + dnf check-update kernel + ``` 5. Gli aggiornamenti dei pacchetti possono essere dovuti a correzioni di bug, nuove funzionalità o patch di sicurezza. Per verificare se sono disponibili aggiornamenti relativi alla sicurezza per il pacchetto kernel, digitare: - ```bash - dnf --security check-update kernel - ``` + ```bash + dnf --security check-update kernel + ``` #### Uso di `dnf` per gli aggiornamenti del sistema @@ -625,21 +625,21 @@ DNF può essere utilizzato per verificare e installare le versioni più recenti 1. Per verificare se sono disponibili aggiornamenti per i pacchetti attualmente installati sul sistema, digitare: - ```bash - dnf check-update - ``` + ```bash + dnf check-update + ``` 2. Per verificare se sono disponibili aggiornamenti relativi alla sicurezza per tutti i pacchetti installati sul sistema, digitare: - ```bash - dnf --security check-update - ``` + ```bash + dnf --security check-update + ``` 3. Per aggiornare tutti i pacchetti installati sul sistema alle versioni più recenti disponibili per la tua distribuzione, eseguire: - ```bash - dnf -y check-update - ``` + ```bash + dnf -y check-update + ``` ## Esercizio 6 @@ -655,7 +655,7 @@ I seguenti esercizi saranno basati sul venerabile codice sorgente del progetto H 1. Utilizzare `curl` per scaricare il codice sorgente più recente dell'applicazione `hello`. Scaricare e salvare il file nella cartella Download. - https://ftp.gnu.org/gnu/hello/hello-2.12.tar.gz + https://ftp.gnu.org/gnu/hello/hello-2.12.tar.gz #### Decomprimere il file @@ -663,41 +663,41 @@ I seguenti esercizi saranno basati sul venerabile codice sorgente del progetto H 2. Decomprimere (un-tar) il tarball utilizzando il programma `tar`. Digitare: - ```bash - tar -xvzf hello-2.12.tar.gz - ``` + ```bash + tar -xvzf hello-2.12.tar.gz + ``` - OUTPUT: + OUTPUT: - ```bash - $ tar -xvzf hello-2.12.tar.gz - hello-2.12/ - hello-2.12/NEWS - hello-2.12/AUTHORS - hello-2.12/hello.1 - hello-2.12/THANKS - ...... - ``` + ```bash + $ tar -xvzf hello-2.12.tar.gz + hello-2.12/ + hello-2.12/NEWS + hello-2.12/AUTHORS + hello-2.12/hello.1 + hello-2.12/THANKS + ...... + ``` 3. Utilizzare il comando `ls` per visualizzare il contenuto della directory corrente. - Durante la decompressione dovrebbe essere stata creata una nuova directory denominata hello-2.12. + Durante la decompressione dovrebbe essere stata creata una nuova directory denominata hello-2.12. 4. Passare a quella directory ed elencarne il suo contenuto. Digitare: - ```bash - cd hello-2.12 ; ls - ``` + ```bash + cd hello-2.12 ; ls + ``` 5. È sempre buona norma consultare eventuali istruzioni di installazione speciali fornite insieme al codice sorgente. Questi file hanno solitamente nomi come: INSTALL, README e così via. - Utilizzare un pager per aprire il file INSTALL e leggerlo. Digitare: + Utilizzare un pager per aprire il file INSTALL e leggerlo. Digitare: - ```bash - less INSTALL - ``` + ```bash + less INSTALL + ``` - Uscire dal pager quando si è finito di esaminare il file. + Uscire dal pager quando si è finito di esaminare il file. #### Configurazione del pacchetto @@ -719,33 +719,33 @@ sudo dnf -y group install "Development Tools" 2. Per visualizzare tutte le opzioni che si possono attivare o disattivare nel programma `hello`, digitare: - ```bash - ./configure --help - ``` + ```bash + ./configure --help + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Dall'output del comando, cosa fa l'opzione "--prefix"? - ``` + ``` + Dall'output del comando, cosa fa l'opzione "--prefix"? + ``` 3. Se si è soddisfatti delle opzioni predefinite offerte dallo script di configurazione. Digitare: - ```bash - ./configure - ``` + ```bash + ./configure + ``` - !!! note "Nota" + !!! note "Nota" - ``` - Si spera che la fase di configurazione sia andata liscia e che si possa passare alla fase di compilazione. + ``` + Si spera che la fase di configurazione sia andata liscia e che si possa passare alla fase di compilazione. - Se durante la fase di configurazione vengono visualizzati degli errori, è necessario esaminare attentamente la parte finale dell'output per individuare la causa dell'errore. Gli errori sono *talvolta* intuitivi e facili da correggere. Ad esempio, potrebbe essere visualizzato un errore simile al seguente: + Se durante la fase di configurazione vengono visualizzati degli errori, è necessario esaminare attentamente la parte finale dell'output per individuare la causa dell'errore. Gli errori sono *talvolta* intuitivi e facili da correggere. Ad esempio, potrebbe essere visualizzato un errore simile al seguente: - configure: error: no acceptable C compiler found in $PATH + configure: error: no acceptable C compiler found in $PATH - L'errore sopra riportato significa semplicemente che non hai un compilatore C (ad esempio, `gcc`) installato sul sistema o che il compilatore è installato in una posizione che non è inclusa nella variabile PATH. - ``` + L'errore sopra riportato significa semplicemente che non hai un compilatore C (ad esempio, `gcc`) installato sul sistema o che il compilatore è installato in una posizione che non è inclusa nella variabile PATH. + ``` #### Compilazione del pacchetto @@ -753,21 +753,21 @@ Nei passaggi seguenti si costruirà l'applicazione hello. È qui che tornano uti 1. Utilizzare il comando make per compilare il pacchetto dopo aver eseguito lo script "configure". Digitare: - ```bash - make - ``` + ```bash + make + ``` - OUTPUT: + OUTPUT: - ```bash - $ make - ...... - gcc -g -O2 -o hello src/hello.o ./lib/libhello.a - make[2]: Leaving directory '/home/rocky/hello-2.12' - make[1]: Leaving directory '/home/rocky/hello-2.12' - ``` + ```bash + $ make + ...... + gcc -g -O2 -o hello src/hello.o ./lib/libhello.a + make[2]: Leaving directory '/home/rocky/hello-2.12' + make[1]: Leaving directory '/home/rocky/hello-2.12' + ``` - Se tutto è andato bene, questo importante passaggio “make” è il passo che contribuirà a generare il binario finale dell’applicazione “hello”. + Se tutto è andato bene, questo importante passaggio “make” è il passo che contribuirà a generare il binario finale dell’applicazione “hello”. 2. Elencare nuovamente i file nella directory di lavoro corrente. Si dovrebbero visualizzare alcuni file appena creati, incluso il programma `hello`. @@ -777,51 +777,51 @@ Oltre ad altre attività di manutenzione, la fase finale dell'installazione prev 1. Per installare l'applicazione hello, eseguire il comando make install. Digitare: - ```bash - sudo make install - ``` + ```bash + sudo make install + ``` - Questo installerà il pacchetto nella posizione specificata dall'argomento predefinito prefisso (--prefix) che è stato utilizzato in precedenza con lo script “configure”. Se non è stato impostato alcun --prefix, verrà utilizzato il prefisso predefinito `/usr/local/`. + Questo installerà il pacchetto nella posizione specificata dall'argomento predefinito prefisso (--prefix) che è stato utilizzato in precedenza con lo script “configure”. Se non è stato impostato alcun --prefix, verrà utilizzato il prefisso predefinito `/usr/local/`. #### Esecuzione del programma hello 1. Utilizzare il comando `whereis` per vedere dove si trova il programma `hello` nel sistema. Digitare: - ```bash - whereis hello - ``` + ```bash + whereis hello + ``` 2. Provare a eseguire l'applicazione `hello` per verificarne il funzionamento. Digitare: - ```bash - hello - ``` + ```bash + hello + ``` 3. Eseguire nuovamente `hello` con l'opzione `--help` per vedere le altre funzioni disponibili. 4. Ora, utilizzando `sudo`, eseguire nuovamente `hello` come superutente. Digitare: - ```bash - sudo hello - ``` + ```bash + sudo hello + ``` - OUTPUT: + OUTPUT: - ```bash - sudo: hello: comando non trovato - ``` + ```bash + sudo: hello: comando non trovato + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Individua la causa dell'errore che si verifica quando provi a eseguire `hello` con `sudo`. Risolvi il problema e assicurati che il programma `hello` possa essere utilizzato con `sudo`. - ``` + ``` + Individua la causa dell'errore che si verifica quando provi a eseguire `hello` con `sudo`. Risolvi il problema e assicurati che il programma `hello` possa essere utilizzato con `sudo`. + ``` - !!! tip "Suggerimento" + !!! tip "Suggerimento" - ``` - È buona norma testare un programma come utente normale per assicurarsi che gli utenti normali possano effettivamente utilizzarlo. È possibile che i permessi sul file binario siano impostati in modo errato, consentendo solo al superutente di utilizzare i programmi. Questo ovviamente presuppone che si desideri effettivamente che gli utenti normali possano utilizzare il programma. - ``` + ``` + È buona norma testare un programma come utente normale per assicurarsi che gli utenti normali possano effettivamente utilizzarlo. È possibile che i permessi sul file binario siano impostati in modo errato, consentendo solo al superutente di utilizzare i programmi. Questo ovviamente presuppone che si desideri effettivamente che gli utenti normali possano utilizzare il programma. + ``` 5. Ecco fatto. Questo esercizio è terminato! @@ -839,48 +839,48 @@ Prendiamo come esempio il programma di sincronizzazione dell'ora `chrony` per il 1. Per dimostrare come funziona la verifica del pacchetto `rpm`, apportare una modifica al file di configurazione di chrony - `/etc/chrony.conf`. (It is assumed that you have installed chrony). Aggiungiamo 2 innocui simboli di commento `##` alla fine del file. Digitare: - ```bash - echo -e "##" | sudo tee -a /etc/chrony.conf - ``` + ```bash + echo -e "##" | sudo tee -a /etc/chrony.conf + ``` 2. Ora eseguire il comando `rpm` con l'opzione `--verify`. Digitare: - ```bash - rpm -V chrony - ``` + ```bash + rpm -V chrony + ``` - OUTPUT: + OUTPUT: - ```bash - S.5....T. c /etc/chrony.conf - ``` + ```bash + S.5....T. c /etc/chrony.conf + ``` - Il risultato è suddiviso in 3 colonne separate. + Il risultato è suddiviso in 3 colonne separate. - - **Prima colonna (S.5.... T.)** + - **Prima colonna (S.5.... T.)** - L'output di esempio - `S.5....T.` indica i 9 campi utilizzati per indicare informazioni utili sulla validità dei file in un pacchetto RPM. Qualsiasi campo o caratteristica che ha superato un determinato controllo/test è indicato da un “.”. + L'output di esempio - `S.5....T.` indica i 9 campi utilizzati per indicare informazioni utili sulla validità dei file in un pacchetto RPM. Qualsiasi campo o caratteristica che ha superato un determinato controllo/test è indicato da un “.”. - Di seguito sono descritti questi 9 differenti campi o controlli: + Di seguito sono descritti questi 9 differenti campi o controlli: - - S: Se è stata modificata la dimensione del file. - - M: Se il tipo di file o i permessi del file (rwx) sono stati modificati. - - 5: Se il checksum MD5 del file è stato modificato. - - D: Se il numero del dispositivo è stato modificato. - - L: Se il percorso del file è stato modificato. - - U: Se il proprietario del file è stato modificato. - - G: Se il gruppo a cui appartiene il file è stato modificato. - - T: Se l'ora di modifica (mTime) del file è stata modificata. - - P: Se la funzione del programma è stata modificata. + - S: Se è stata modificata la dimensione del file. + - M: Se il tipo di file o i permessi del file (rwx) sono stati modificati. + - 5: Se il checksum MD5 del file è stato modificato. + - D: Se il numero del dispositivo è stato modificato. + - L: Se il percorso del file è stato modificato. + - U: Se il proprietario del file è stato modificato. + - G: Se il gruppo a cui appartiene il file è stato modificato. + - T: Se l'ora di modifica (mTime) del file è stata modificata. + - P: Se la funzione del programma è stata modificata. - - **Seconda Colonna (c)** + - **Seconda Colonna (c)** - - **c**: Indica le modifiche apportate al file di configurazione. Può anche assumere i seguenti valori: - - d: file di documentazione. - - g: file ghost. Se ne vedono pochissimi. - - l: file di licenza. - - r: file readme. + - **c**: Indica le modifiche apportate al file di configurazione. Può anche assumere i seguenti valori: + - d: file di documentazione. + - g: file ghost. Se ne vedono pochissimi. + - l: file di licenza. + - r: file readme. - - **Terza colonna (/etc/chrony.conf)** + - **Terza colonna (/etc/chrony.conf)** - - **/etc/chrony.conf**: Rappresenta il percorso del file modificato. + - **/etc/chrony.conf**: Rappresenta il percorso del file modificato. From b3f14c5c8c0ea417f59947382dc092b406e88018 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:33 -0400 Subject: [PATCH 104/167] New translations nload.md (Italian) --- docs/gemstones/network/nload.it.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/gemstones/network/nload.it.md b/docs/gemstones/network/nload.it.md index 834c7b78b6..e6b76daef0 100644 --- a/docs/gemstones/network/nload.it.md +++ b/docs/gemstones/network/nload.it.md @@ -70,17 +70,17 @@ Outgoing: Scomponendo le righe precedenti: -- Curr - utilizzo attuale della larghezza di banda misurata -- Avg - utilizzo medio della larghezza di banda nel periodo -- Min - utilizzo minimo della larghezza di banda misurata -- Max - utilizzo massimo della larghezza di banda misurata -- Ttl - dati trasferiti nella sessione \`nload + - Curr - utilizzo attuale della larghezza di banda misurata + - Avg - utilizzo medio della larghezza di banda nel periodo + - Min - utilizzo minimo della larghezza di banda misurata + - Max - utilizzo massimo della larghezza di banda misurata + - Ttl - dati trasferiti nella sessione \`nload ## Tasti di scelta rapida per l'interazione -- \++page-down++, ++down++ - Scendere di un'interfaccia -- \++page-up++, ++up++ - Salire di un'interfaccia -- \++f2++ - Mostra la finestra delle opzioni -- \++f5++ - Salva le opzioni -- \++f6++ - Ricaricare le impostazioni dal file di configurazione -- \++q++, ++ctrl+c++ - Chiude `nload` + - \++page-down++, ++down++ - Scendere di un'interfaccia + - \++page-up++, ++up++ - Salire di un'interfaccia + - \++f2++ - Mostra la finestra delle opzioni + - \++f5++ - Salva le opzioni + - \++f6++ - Ricaricare le impostazioni dal file di configurazione + - \++q++, ++ctrl+c++ - Chiude `nload` From a13280c57478a302298c75ec51ef4593d3d78e07 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:35 -0400 Subject: [PATCH 105/167] New translations 16-about-sytemd.md (Italian) --- docs/books/admin_guide/16-about-sytemd.it.md | 186 +++++++++---------- 1 file changed, 93 insertions(+), 93 deletions(-) diff --git a/docs/books/admin_guide/16-about-sytemd.it.md b/docs/books/admin_guide/16-about-sytemd.it.md index dcd3717669..778c25df9c 100644 --- a/docs/books/admin_guide/16-about-sytemd.it.md +++ b/docs/books/admin_guide/16-about-sytemd.it.md @@ -484,113 +484,113 @@ Di solito esistono tre intitolazioni per le unit di tipo ".service": 1. Intitolazione della unit - Sono utilizzabili le seguenti coppie chiave-valore: + Sono utilizzabili le seguenti coppie chiave-valore: - - `Description=OpenSSH server daemon`. La stringa viene utilizzata per descrivere la "unit". - - `Documentation=man:sshd(8) man:sshd_config(5)`. Un elenco separato da spazi di URI che fanno riferimento alla documentazione di questa "unit" o della sua configurazione. Sono accettati solo URI del tipo "http://", "https://", "file:", "info:", "man:". - - `After=network.target sshd-keygen.target`. Definisce la relazione della sequenza di avvio con altre "unit". In questo esempio, "network.target" e "sshd-keygen.target" si avviano per primi e "sshd.service" per ultimo. - - `Before=`. Definisce la relazione della sequenza di avvio con le altre "unit". - - `Requires=`. Configura le dipendenze da altre "unit" I valori possono essere più unit separate da spazi. Se la '"unit" corrente è attivata, si attiveranno anche i valori qui elencati. Se almeno uno dei valori elencati di "unit" non si attiva correttamente, `systemd` non avvia la "unit" corrente. - - `Wants=sshd-keygen.target`. Simile alla chiave `Requires`. La differenza consiste nel fatto che se la unit dipendente non si avvia, ciò non influisce sul normale funzionamento della "unit" corrente. - - `BindsTo=`. Simile alla chiave `Requires`. La differenza è data dal fatto che se una qualsiasi "unit" dipendente non si avvia, l'unità corrente viene arrestata in aggiunta alla "unit" che arresta la dipendenza. - - `PartOf=`. Simile alla chiave `Requires`. La differenza consiste nel fatto che se una qualsiasi "unit" dipendente non si avvia, oltre all'arresto e al riavvio delle unit dipendenti, viene arrestata e riavviata anche la "unit" corrente. - - `Conflicts=`. Il suo valore è un elenco di "unit" separate da spazi. Se la "unit" elencata dal valore è in funzione, la "unit" corrente non può essere eseguita. - - `OnFailure=`. Quando la "unit" corrente viene interrotta, la "unit" o le "unit" (separate da spazi) presenti nel valore si attivano. + - `Description=OpenSSH server daemon`. La stringa viene utilizzata per descrivere la "unit". + - `Documentation=man:sshd(8) man:sshd_config(5)`. Un elenco separato da spazi di URI che fanno riferimento alla documentazione di questa "unit" o della sua configurazione. Sono accettati solo URI del tipo "http://", "https://", "file:", "info:", "man:". + - `After=network.target sshd-keygen.target`. Definisce la relazione della sequenza di avvio con altre "unit". In questo esempio, "network.target" e "sshd-keygen.target" si avviano per primi e "sshd.service" per ultimo. + - `Before=`. Definisce la relazione della sequenza di avvio con le altre "unit". + - `Requires=`. Configura le dipendenze da altre "unit" I valori possono essere più unit separate da spazi. Se la '"unit" corrente è attivata, si attiveranno anche i valori qui elencati. Se almeno uno dei valori elencati di "unit" non si attiva correttamente, `systemd` non avvia la "unit" corrente. + - `Wants=sshd-keygen.target`. Simile alla chiave `Requires`. La differenza consiste nel fatto che se la unit dipendente non si avvia, ciò non influisce sul normale funzionamento della "unit" corrente. + - `BindsTo=`. Simile alla chiave `Requires`. La differenza è data dal fatto che se una qualsiasi "unit" dipendente non si avvia, l'unità corrente viene arrestata in aggiunta alla "unit" che arresta la dipendenza. + - `PartOf=`. Simile alla chiave `Requires`. La differenza consiste nel fatto che se una qualsiasi "unit" dipendente non si avvia, oltre all'arresto e al riavvio delle unit dipendenti, viene arrestata e riavviata anche la "unit" corrente. + - `Conflicts=`. Il suo valore è un elenco di "unit" separate da spazi. Se la "unit" elencata dal valore è in funzione, la "unit" corrente non può essere eseguita. + - `OnFailure=`. Quando la "unit" corrente viene interrotta, la "unit" o le "unit" (separate da spazi) presenti nel valore si attivano. - Per ulteriori informazioni, vedere `man 5 systemd.unit`. + Per ulteriori informazioni, vedere `man 5 systemd.unit`. 2. Intitolazione del Servizio - Sono utilizzabili le seguenti coppie chiave-valore: - - - `Type=notify`. Configurare il tipo di unit ".service", che può essere uno dei seguenti: - - `simple` - Il servizio si avvia come processo principale. Questa è l'impostazione predefinita. - - `forking` - Il servizio richiama processi biforcati e viene eseguito come parte del daemon principale. - - `exec` - Simile a `semplice`. Il gestore del servizio avvierà questa unit subito dopo aver eseguito il binario del servizio principale. Le altre unit successive devono rimanere bloccate fino a questo punto prima di poter proseguire l'avvio. - - `oneshot` - Simile a `simple`, ma il processo deve uscire prima che `systemd` avvii i servizi di follow-up. - - `dbus` - Simile a `simple`, tranne per il fatto che il daemon acquisisce il nome del bus D-Bus. - - `notify` - Simile a `simple`, tranne per il fatto che il daemon invia un messaggio di notifica usando `sd_notify` o una chiamata equivalente dopo l'avvio. - - `idle` - Simile a `simple`, tranne per il fatto che l'esecuzione del servizio viene ritardata fino a quando tutti i lavori attivi non vengono distribuiti. - - `RemainAfterExit=`. Se il servizio corrente deve essere considerato attivo quando tutti i processi del servizio terminano. L'impostazione predefinita è no. - - `GuessMainPID=`. Il valore è di tipo booleano ed è predefinito a yes. In assenza di una posizione definita per il processo principale del servizio, `systemd` deve indovinare il PID del processo principale (che potrebbe non essere corretto). Se si imposta `Type=forking` e non si imposta `PIDFile`, questa coppia di valori chiave diventerà effettiva. Altrimenti, verrà ignorata la coppia chiave-valore. - - `PIDFile=`. Specificare il percorso del file (percorso assoluto) del PID del servizio. Per i servizi `Type=forking`, si raccomanda di usare questa coppia chiave-valore. `systemd` legge il PID del processo principale del daemon dopo l'avvio del servizio. - - `BusName=`. Un nome del bus D-Bus per raggiungere questo servizio. Questa opzione è obbligatoria per i servizi dove viene utilizzato `Type=dbus`. - - `ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY`. I comandi e gli argomenti eseguiti all'avvio del servizio. - - `ExecStartPre=`. Altri comandi che vengono eseguiti prima dei comandi in `ExecStart`. - - `ExecStartPost=`. Gli altri comandi che verranno eseguiti dopo i comandi in `ExecStart`. - - `ExecReload=/bin/kill -HUP $MAINPID`. I comandi e gli argomenti vengono eseguiti quando il servizio viene ricaricato. - - `ExecStop=`. I comandi e gli argomenti che verranno eseguiti all'arresto del servizio. - - `ExecStopPost=`. Comandi aggiuntivi da eseguire dopo l'arresto del servizio. - - `RestartSec=42s`. Il tempo in secondi di sospensione prima di riavviare un servizio. - - `TimeoutStartSec=`. Il tempo in secondi di attesa per l'avvio del servizio. - - `TimeoutStopSec=`. Il tempo in secondi di attesa per l'arresto del servizio. - - `TimeoutSec=`. Un'abbreviazione per configurare contemporaneamente `TimeoutStartSec` e `TimeoutStopSec`. - - `RuntimeMaxSec=`. Tempo massimo in secondi per l'esecuzione del servizio. Passando \`infinity' (il valore predefinito) non si configura alcun limite di tempo di esecuzione. - - `Restart=on-failure`. Configura se riavviare il servizio quando il processo del servizio esce, viene terminato o raggiunge un timeout: - - `no` - Il servizio non verrà riavviato. Questa è l'impostazione predefinita. - - `on-success` - Si riavvia solo quando il processo di servizio esce in modo pulito (codice di uscita 0). - - `on-failure` - Si riavvia solo quando il processo di servizio non esce in modo pulito (codice di uscita non-zero). - - `on-abnormal` - Si riavvia se il processo termina con un segnale o quando si verifica un timeout. - - `on-abort` - Si riavvia se il processo esce a causa di un segnale imprevisto non specificato come condizione di uscita pulita. - - `on-watchdog` - Se impostato su `on-watchdog`, il servizio si riavvia solo se il timeout del watchdog scade. - - `always` - Si riavvia sempre. - - Le condizioni di uscita e l'effetto delle impostazioni di `Restart=` su di esse: - - ![effect](./images/16-effect.png) - - - `KillMode=process`. Specifica il modo in cui i processi di questa unit devono essere arrestati. Il suo valore può essere uno dei seguenti: - - `control-group` - Valore predefinito. Se impostato su `control-group`, tutti i processi rimanenti nel gruppo di controllo di questa unit vengono arrestati all'arresto della stessa. - - `process` - Viene arrestato solo il processo principale. - - `mixed` - Il segnale SIGTERM viene inviato al processo principale, mentre il successivo segnale SIGKILL viene inviato a tutti i processi rimanenti del gruppo di controllo della unit. - - `none` - Non arresta alcun processo. - - `PrivateTmp=`. Utilizzare o meno una directory tmp privata. In base a determinate condizioni di sicurezza, si consiglia di impostare il valore su yes. - - `ProtectHome=`. Proteggere o meno la home directory. Il suo valore può essere uno dei seguenti: - - `yes` - Le tre directory (/root/, /home/, /run/user/) non sono visibili alla unit. - - `no` - Le tre directory sono visibili alla unit. - - `read-only` - Le tre directory sono di sola lettura per la unit. - - `tmpfs` - Il file system temporaneo verrà montato in modalità di sola lettura su queste tre directory. - - `ProtectSystem=`. La directory utilizzata per proteggere il sistema dalla modifica da parte del servizio. Il valore può essere: - - `yes` - Indica che il processo chiamato dalla unit sarà montato in sola lettura sulle directory /usr/ e /boot/. - - `no` - Valore predefinito - - `full` - Indica che le directory /usr/, /boot/, /etc/ sono montate in sola lettura. - - `strict` - Tutti i file system sono montati in sola lettura (escluse le directory dei file system virtuali come /dev/, /proc/ e /sys/). - - `EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config`. Legge le variabili d'ambiente da un file di testo. "-" significa che se il file non esiste, non verrà letto e non verranno registrati errori o avvisi. - - Per ulteriori informazioni, vedere `man 5 systemd.service`. + Sono utilizzabili le seguenti coppie chiave-valore: + + - `Type=notify`. Configurare il tipo di unit ".service", che può essere uno dei seguenti: + - `simple` - Il servizio si avvia come processo principale. Questa è l'impostazione predefinita. + - `forking` - Il servizio richiama processi biforcati e viene eseguito come parte del daemon principale. + - `exec` - Simile a `semplice`. Il gestore del servizio avvierà questa unit subito dopo aver eseguito il binario del servizio principale. Le altre unit successive devono rimanere bloccate fino a questo punto prima di poter proseguire l'avvio. + - `oneshot` - Simile a `simple`, ma il processo deve uscire prima che `systemd` avvii i servizi di follow-up. + - `dbus` - Simile a `simple`, tranne per il fatto che il daemon acquisisce il nome del bus D-Bus. + - `notify` - Simile a `simple`, tranne per il fatto che il daemon invia un messaggio di notifica usando `sd_notify` o una chiamata equivalente dopo l'avvio. + - `idle` - Simile a `simple`, tranne per il fatto che l'esecuzione del servizio viene ritardata fino a quando tutti i lavori attivi non vengono distribuiti. + - `RemainAfterExit=`. Se il servizio corrente deve essere considerato attivo quando tutti i processi del servizio terminano. L'impostazione predefinita è no. + - `GuessMainPID=`. Il valore è di tipo booleano ed è predefinito a yes. In assenza di una posizione definita per il processo principale del servizio, `systemd` deve indovinare il PID del processo principale (che potrebbe non essere corretto). Se si imposta `Type=forking` e non si imposta `PIDFile`, questa coppia di valori chiave diventerà effettiva. Altrimenti, verrà ignorata la coppia chiave-valore. + - `PIDFile=`. Specificare il percorso del file (percorso assoluto) del PID del servizio. Per i servizi `Type=forking`, si raccomanda di usare questa coppia chiave-valore. `systemd` legge il PID del processo principale del daemon dopo l'avvio del servizio. + - `BusName=`. Un nome del bus D-Bus per raggiungere questo servizio. Questa opzione è obbligatoria per i servizi dove viene utilizzato `Type=dbus`. + - `ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY`. I comandi e gli argomenti eseguiti all'avvio del servizio. + - `ExecStartPre=`. Altri comandi che vengono eseguiti prima dei comandi in `ExecStart`. + - `ExecStartPost=`. Gli altri comandi che verranno eseguiti dopo i comandi in `ExecStart`. + - `ExecReload=/bin/kill -HUP $MAINPID`. I comandi e gli argomenti vengono eseguiti quando il servizio viene ricaricato. + - `ExecStop=`. I comandi e gli argomenti che verranno eseguiti all'arresto del servizio. + - `ExecStopPost=`. Comandi aggiuntivi da eseguire dopo l'arresto del servizio. + - `RestartSec=42s`. Il tempo in secondi di sospensione prima di riavviare un servizio. + - `TimeoutStartSec=`. Il tempo in secondi di attesa per l'avvio del servizio. + - `TimeoutStopSec=`. Il tempo in secondi di attesa per l'arresto del servizio. + - `TimeoutSec=`. Un'abbreviazione per configurare contemporaneamente `TimeoutStartSec` e `TimeoutStopSec`. + - `RuntimeMaxSec=`. Tempo massimo in secondi per l'esecuzione del servizio. Passando \`infinity' (il valore predefinito) non si configura alcun limite di tempo di esecuzione. + - `Restart=on-failure`. Configura se riavviare il servizio quando il processo del servizio esce, viene terminato o raggiunge un timeout: + - `no` - Il servizio non verrà riavviato. Questa è l'impostazione predefinita. + - `on-success` - Si riavvia solo quando il processo di servizio esce in modo pulito (codice di uscita 0). + - `on-failure` - Si riavvia solo quando il processo di servizio non esce in modo pulito (codice di uscita non-zero). + - `on-abnormal` - Si riavvia se il processo termina con un segnale o quando si verifica un timeout. + - `on-abort` - Si riavvia se il processo esce a causa di un segnale imprevisto non specificato come condizione di uscita pulita. + - `on-watchdog` - Se impostato su `on-watchdog`, il servizio si riavvia solo se il timeout del watchdog scade. + - `always` - Si riavvia sempre. + + Le condizioni di uscita e l'effetto delle impostazioni di `Restart=` su di esse: + + ![effect](./images/16-effect.png) + + - `KillMode=process`. Specifica il modo in cui i processi di questa unit devono essere arrestati. Il suo valore può essere uno dei seguenti: + - `control-group` - Valore predefinito. Se impostato su `control-group`, tutti i processi rimanenti nel gruppo di controllo di questa unit vengono arrestati all'arresto della stessa. + - `process` - Viene arrestato solo il processo principale. + - `mixed` - Il segnale SIGTERM viene inviato al processo principale, mentre il successivo segnale SIGKILL viene inviato a tutti i processi rimanenti del gruppo di controllo della unit. + - `none` - Non arresta alcun processo. + - `PrivateTmp=`. Utilizzare o meno una directory tmp privata. In base a determinate condizioni di sicurezza, si consiglia di impostare il valore su yes. + - `ProtectHome=`. Proteggere o meno la home directory. Il suo valore può essere uno dei seguenti: + - `yes` - Le tre directory (/root/, /home/, /run/user/) non sono visibili alla unit. + - `no` - Le tre directory sono visibili alla unit. + - `read-only` - Le tre directory sono di sola lettura per la unit. + - `tmpfs` - Il file system temporaneo verrà montato in modalità di sola lettura su queste tre directory. + - `ProtectSystem=`. La directory utilizzata per proteggere il sistema dalla modifica da parte del servizio. Il valore può essere: + - `yes` - Indica che il processo chiamato dalla unit sarà montato in sola lettura sulle directory /usr/ e /boot/. + - `no` - Valore predefinito + - `full` - Indica che le directory /usr/, /boot/, /etc/ sono montate in sola lettura. + - `strict` - Tutti i file system sono montati in sola lettura (escluse le directory dei file system virtuali come /dev/, /proc/ e /sys/). + - `EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config`. Legge le variabili d'ambiente da un file di testo. "-" significa che se il file non esiste, non verrà letto e non verranno registrati errori o avvisi. + + Per ulteriori informazioni, vedere `man 5 systemd.service`. 3. Intitolazione Install - - `Alias=`. Un elenco di nomi aggiuntivi separati da spazi. Attenzione prego! Il nome aggiuntivo deve avere lo stesso tipo (suffisso) della unit corrente. + - `Alias=`. Un elenco di nomi aggiuntivi separati da spazi. Attenzione prego! Il nome aggiuntivo deve avere lo stesso tipo (suffisso) della unit corrente. - - `RequiredBy=` o `WantedBy=multi-user.target`. Definisce la unit dell'operazione corrente come dipendenza della unit nel valore. Una volta completata la definizione, i file pertinenti si trovano nella directory /etc/systemd/systemd/. Ad esempio: + - `RequiredBy=` o `WantedBy=multi-user.target`. Definisce la unit dell'operazione corrente come dipendenza della unit nel valore. Una volta completata la definizione, i file pertinenti si trovano nella directory /etc/systemd/systemd/. Ad esempio: - ```bash - Shell > systemctl is-enabled chronyd.service - enabled + ```bash + Shell > systemctl is-enabled chronyd.service + enabled - Shell > systemctl cat chronyd.service - ... - [Install] - WantedBy=multi-user.target + Shell > systemctl cat chronyd.service + ... + [Install] + WantedBy=multi-user.target - Shell > ls -l /etc/systemd/system/multi-user.target.wants/ - total 0 - lrwxrwxrwx. 1 root root 38 Sep 25 14:03 auditd.service -> /usr/lib/systemd/system/auditd.service - lrwxrwxrwx. 1 root root 39 Sep 25 14:03 chronyd.service -> /usr/lib/systemd/system/chronyd.service ←← - lrwxrwxrwx. 1 root root 37 Sep 25 14:03 crond.service -> /usr/lib/systemd/system/crond.service - lrwxrwxrwx. 1 root root 42 Sep 25 14:03 irqbalance.service -> /usr/lib/systemd/system/irqbalance.service - lrwxrwxrwx. 1 root root 37 Sep 25 14:03 kdump.service -> /usr/lib/systemd/system/kdump.service - lrwxrwxrwx. 1 root root 46 Sep 25 14:03 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service - lrwxrwxrwx. 1 root root 40 Sep 25 14:03 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target - lrwxrwxrwx. 1 root root 36 Sep 25 14:03 sshd.service -> /usr/lib/systemd/system/sshd.service - lrwxrwxrwx. 1 root root 36 Sep 25 14:03 sssd.service -> /usr/lib/systemd/system/sssd.service - lrwxrwxrwx. 1 root root 37 Sep 25 14:03 tuned.service -> /usr/lib/systemd/system/tuned.service - ``` + Shell > ls -l /etc/systemd/system/multi-user.target.wants/ + total 0 + lrwxrwxrwx. 1 root root 38 Sep 25 14:03 auditd.service -> /usr/lib/systemd/system/auditd.service + lrwxrwxrwx. 1 root root 39 Sep 25 14:03 chronyd.service -> /usr/lib/systemd/system/chronyd.service ←← + lrwxrwxrwx. 1 root root 37 Sep 25 14:03 crond.service -> /usr/lib/systemd/system/crond.service + lrwxrwxrwx. 1 root root 42 Sep 25 14:03 irqbalance.service -> /usr/lib/systemd/system/irqbalance.service + lrwxrwxrwx. 1 root root 37 Sep 25 14:03 kdump.service -> /usr/lib/systemd/system/kdump.service + lrwxrwxrwx. 1 root root 46 Sep 25 14:03 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service + lrwxrwxrwx. 1 root root 40 Sep 25 14:03 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target + lrwxrwxrwx. 1 root root 36 Sep 25 14:03 sshd.service -> /usr/lib/systemd/system/sshd.service + lrwxrwxrwx. 1 root root 36 Sep 25 14:03 sssd.service -> /usr/lib/systemd/system/sssd.service + lrwxrwxrwx. 1 root root 37 Sep 25 14:03 tuned.service -> /usr/lib/systemd/system/tuned.service + ``` - - `Also=`. Altre unit da installare o disinstallare durante l'installazione o la disinstallazione di questa unit. + - `Also=`. Altre unit da installare o disinstallare durante l'installazione o la disinstallazione di questa unit. - Oltre alle pagine di manuale sopra menzionate, è possibile digitare `man 5 systemd.exec` o `man 5 systemd.kill` per accedere ad altre informazioni. + Oltre alle pagine di manuale sopra menzionate, è possibile digitare `man 5 systemd.exec` o `man 5 systemd.kill` per accedere ad altre informazioni. ## Comando relativo ad altri componenti From 8b9a13ddbaa53e964b1deb546d1cad3d0ae83062 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:37 -0400 Subject: [PATCH 106/167] New translations 2_grep_command.md (Italian) --- docs/books/sed_awk_grep/2_grep_command.it.md | 318 +++++++++---------- 1 file changed, 159 insertions(+), 159 deletions(-) diff --git a/docs/books/sed_awk_grep/2_grep_command.it.md b/docs/books/sed_awk_grep/2_grep_command.it.md index 8e71ca890f..c3e1575ca2 100644 --- a/docs/books/sed_awk_grep/2_grep_command.it.md +++ b/docs/books/sed_awk_grep/2_grep_command.it.md @@ -74,207 +74,207 @@ gestione dei file o directory: 1. Opzione -f e opzione -o - ```bash - Shell > cat /root/a - abcdef - 123456 - 338922549 - 24680 - hello world - - Shell > cat /root/b - 12345 - test - world - aaaaa - - # Usa ogni riga del file b come un pattern da ricercare nel file a e mostra le corrispondenze. - Shell > grep -f /root/b /root/a - 123456 - hello world - - Shell > grep -f /root/b /root/a -o - 12345 - world - ``` + ```bash + Shell > cat /root/a + abcdef + 123456 + 338922549 + 24680 + hello world + + Shell > cat /root/b + 12345 + test + world + aaaaa + + # Usa ogni riga del file b come un pattern da ricercare nel file a e mostra le corrispondenze. + Shell > grep -f /root/b /root/a + 123456 + hello world + + Shell > grep -f /root/b /root/a -o + 12345 + world + ``` 2. Ricerca di pattern multiplo (usare l'opzione -e) - ```bash - Shell > echo -e "a\nab\nbc\nbcde" | grep -e 'a' -e 'cd' - a - ab - bcde - ``` + ```bash + Shell > echo -e "a\nab\nbc\nbcde" | grep -e 'a' -e 'cd' + a + ab + bcde + ``` - oppure: + oppure: - ```bash - Shell > echo -e "a\nab\nbc\nbcde" | grep -E "a|cd" - a - ab - bcde - ``` + ```bash + Shell > echo -e "a\nab\nbc\nbcde" | grep -E "a|cd" + a + ab + bcde + ``` 3. Rimuove le righe vuote e le righe di commento dal file di configurazione - ```bash - Shell > grep -v -E "^$|^#" /etc/chrony.conf - server ntp1.tencent.com iburst - server ntp2.tencent.com iburst - server ntp3.tencent.com iburst - server ntp4.tencent.com iburst - driftfile /var/lib/chrony/drift - makestep 1.0 3 - rtcsync - keyfile /etc/chrony.keys - leapsectz right/UTC - logdir /var/log/chrony - ``` + ```bash + Shell > grep -v -E "^$|^#" /etc/chrony.conf + server ntp1.tencent.com iburst + server ntp2.tencent.com iburst + server ntp3.tencent.com iburst + server ntp4.tencent.com iburst + driftfile /var/lib/chrony/drift + makestep 1.0 3 + rtcsync + keyfile /etc/chrony.keys + leapsectz right/UTC + logdir /var/log/chrony + ``` 4. Visualizza i primi 5 risultati corrispondenti - ```bash - Shell > seq 1 20 | grep -m 5 -E "[0-9]{2}" - 10 - 11 - 12 - 13 - 14 - ``` - - oppure: - - ```bash - Shell > seq 1 20 | grep -m 5 "[0-9]\{2\}" - 10 - 11 - 12 - 13 - 14 - ``` + ```bash + Shell > seq 1 20 | grep -m 5 -E "[0-9]{2}" + 10 + 11 + 12 + 13 + 14 + ``` + + oppure: + + ```bash + Shell > seq 1 20 | grep -m 5 "[0-9]\{2\}" + 10 + 11 + 12 + 13 + 14 + ``` 5. Opzione -B e opzione -A - ```bash - Shell > seq 1 20 | grep -B 2 -A 3 -m 5 -E "[0-9]{2}" - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - ``` + ```bash + Shell > seq 1 20 | grep -B 2 -A 3 -m 5 -E "[0-9]{2}" + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + ``` 6. Opzione -C - ```bash - Shell > seq 1 20 | grep -C 3 -m 5 -E "[0-9]{2}" - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - ``` + ```bash + Shell > seq 1 20 | grep -C 3 -m 5 -E "[0-9]{2}" + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + ``` 7. Opzione -c - ```bash - Shell > cat /etc/ssh/sshd_config | grep -n -i -E "port" - 13:# If you want to change the port on a SELinux system, you have to tell - 15:# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER - 17:#Port 22 - 99:# WARNING: 'UsePAM no' is not supported in RHEL and may cause several - 105:#GatewayPorts no + ```bash + Shell > cat /etc/ssh/sshd_config | grep -n -i -E "port" + 13:# If you want to change the port on a SELinux system, you have to tell + 15:# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER + 17:#Port 22 + 99:# WARNING: 'UsePAM no' is not supported in RHEL and may cause several + 105:#GatewayPorts no - Shell > cat /etc/ssh/sshd_config | grep -E -i "port" -c - 5 - ``` + Shell > cat /etc/ssh/sshd_config | grep -E -i "port" -c + 5 + ``` 8. Opzione -v - ```bash - Shell > cat /etc/ssh/sshd_config | grep -i -v -E "port" -c - 140 - ``` + ```bash + Shell > cat /etc/ssh/sshd_config | grep -i -v -E "port" -c + 140 + ``` 9. Filtra i file in una cartella aventi righe corrispondenti alla stringa (Escludi i file nelle cartelle secondarie) - ```bash - Shell > grep -i -E "port" /etc/n*.conf -n - /etc/named.conf:11: listen-on port 53 { 127.0.0.1; }; - /etc/named.conf:12: listen-on-v6 port 53 { ::1; }; - /etc/nsswitch.conf:32:# winbind Use Samba winbind support - /etc/nsswitch.conf:33:# wins Use Samba wins support - ``` + ```bash + Shell > grep -i -E "port" /etc/n*.conf -n + /etc/named.conf:11: listen-on port 53 { 127.0.0.1; }; + /etc/named.conf:12: listen-on-v6 port 53 { ::1; }; + /etc/nsswitch.conf:32:# winbind Use Samba winbind support + /etc/nsswitch.conf:33:# wins Use Samba wins support + ``` 10. Filtra i file di una directory che hanno righe corrispondenti alla stringa (include o esclude i file o le directory nelle sotto directory) - Includere la sintassi per file multipli: + Includere la sintassi per file multipli: - ```bash - Shell > grep -n -i -r -E "port" /etc/ --include={0..20}_* - /etc/grub.d/20_ppc_terminfo:26:export TEXTDOMAIN=grub - /etc/grub.d/20_ppc_terminfo:27:export TEXTDOMAINDIR=/usr/share/locale - /etc/grub.d/20_linux_xen:26:export TEXTDOMAIN=grub - /etc/grub.d/20_linux_xen:27:export TEXTDOMAINDIR="${datarootdir}/locale" - /etc/grub.d/20_linux_xen:46:# Default to disabling partition uuid support to maintian compatibility with - /etc/grub.d/10_linux:26:export TEXTDOMAIN=grub - /etc/grub.d/10_linux:27:export TEXTDOMAINDIR="${datarootdir}/locale" - /etc/grub.d/10_linux:47:# Default to disabling partition uuid support to maintian compatibility with + ```bash + Shell > grep -n -i -r -E "port" /etc/ --include={0..20}_* + /etc/grub.d/20_ppc_terminfo:26:export TEXTDOMAIN=grub + /etc/grub.d/20_ppc_terminfo:27:export TEXTDOMAINDIR=/usr/share/locale + /etc/grub.d/20_linux_xen:26:export TEXTDOMAIN=grub + /etc/grub.d/20_linux_xen:27:export TEXTDOMAINDIR="${datarootdir}/locale" + /etc/grub.d/20_linux_xen:46:# Default to disabling partition uuid support to maintian compatibility with + /etc/grub.d/10_linux:26:export TEXTDOMAIN=grub + /etc/grub.d/10_linux:27:export TEXTDOMAINDIR="${datarootdir}/locale" + /etc/grub.d/10_linux:47:# Default to disabling partition uuid support to maintian compatibility with - Shell > grep -n -i -r -E "port" /etc/ --include={{0..20}_*,sshd_config} -c - /etc/ssh/sshd_config:5 - /etc/grub.d/20_ppc_terminfo:2 - /etc/grub.d/10_reset_boot_success:0 - /etc/grub.d/12_menu_auto_hide:0 - /etc/grub.d/20_linux_xen:3 - /etc/grub.d/10_linux:3 - ``` + Shell > grep -n -i -r -E "port" /etc/ --include={{0..20}_*,sshd_config} -c + /etc/ssh/sshd_config:5 + /etc/grub.d/20_ppc_terminfo:2 + /etc/grub.d/10_reset_boot_success:0 + /etc/grub.d/12_menu_auto_hide:0 + /etc/grub.d/20_linux_xen:3 + /etc/grub.d/10_linux:3 + ``` - Se devi escludere un singola directory, utilizza la seguente sintassi: + Se devi escludere un singola directory, utilizza la seguente sintassi: - ```bash - Shell > grep -n -i -r -E "port" /etc/ --exclude-dir=selin[u]x - ``` + ```bash + Shell > grep -n -i -r -E "port" /etc/ --exclude-dir=selin[u]x + ``` - Se devi escludere più cartelle, utilizza la seguente sintassi: + Se devi escludere più cartelle, utilizza la seguente sintassi: - ```bash - Shell > grep -n -i -r -E "port" /etc/ --exclude-dir={selin[u]x,"profile.d",{a..z}ki,au[a-z]it} - ``` + ```bash + Shell > grep -n -i -r -E "port" /etc/ --exclude-dir={selin[u]x,"profile.d",{a..z}ki,au[a-z]it} + ``` - Se devi escludere un singolo file, utilizza la seguente sintassi: + Se devi escludere un singolo file, utilizza la seguente sintassi: - ```bash - Shell > grep -n -i -r -E "port" /etc/ --exclude=sshd_config - ``` + ```bash + Shell > grep -n -i -r -E "port" /etc/ --exclude=sshd_config + ``` - Se devi escludere più file, utilizza la seguente sintassi: + Se devi escludere più file, utilizza la seguente sintassi: - ```bash - Shell > grep -n -i -r -E "port" /etc/ --exclude={ssh[a-z]_config,*.conf,services} - ``` + ```bash + Shell > grep -n -i -r -E "port" /etc/ --exclude={ssh[a-z]_config,*.conf,services} + ``` - Se devi escludere più file e cartelle in un unico comando, utilizza la seguente sintassi: + Se devi escludere più file e cartelle in un unico comando, utilizza la seguente sintassi: - ```bash - Shell > grep -n -i -r -E "port" /etc/ --exclude-dir={selin[u]x,"profile.d",{a..z}ki,au[a-z]it} --exclude={ssh[a-z]_config,*.conf,services,[0-9][0-9]*} - ``` + ```bash + Shell > grep -n -i -r -E "port" /etc/ --exclude-dir={selin[u]x,"profile.d",{a..z}ki,au[a-z]it} --exclude={ssh[a-z]_config,*.conf,services,[0-9][0-9]*} + ``` 11. Conta tutti gli indirizzi IPv4 di sistema - ```bash - Shell > ip a | grep -o -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | grep -v -E "127|255" - 192.168.100.3 - ``` + ```bash + Shell > ip a | grep -o -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | grep -v -E "127|255" + 192.168.100.3 + ``` From 575b7549a23987ef443fce9b71c7733a6237c576 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:39 -0400 Subject: [PATCH 107/167] New translations 3_sed_command.md (Italian) --- docs/books/sed_awk_grep/3_sed_command.it.md | 1384 +++++++++---------- 1 file changed, 692 insertions(+), 692 deletions(-) diff --git a/docs/books/sed_awk_grep/3_sed_command.it.md b/docs/books/sed_awk_grep/3_sed_command.it.md index 4b6fc6b838..fefe5fa10c 100644 --- a/docs/books/sed_awk_grep/3_sed_command.it.md +++ b/docs/books/sed_awk_grep/3_sed_command.it.md @@ -68,769 +68,769 @@ sed [OPTION]... {script-only-if-no-other-script} [input-file]... 1. Associa e visualizza (`p`) - - Visualizza le righe che iniziano con la stringa netbios + - Visualizza le righe che iniziano con la stringa netbios - ```bash - Shell > cat /etc/services | sed -n '/^netbios/p' - netbios-ns 137/tcp # NETBIOS Name Service - netbios-ns 137/udp - netbios-dgm 138/tcp # NETBIOS Datagram Service - netbios-dgm 138/udp - netbios-ssn 139/tcp # NETBIOS session service - netbios-ssn 139/udp - ``` + ```bash + Shell > cat /etc/services | sed -n '/^netbios/p' + netbios-ns 137/tcp # NETBIOS Name Service + netbios-ns 137/udp + netbios-dgm 138/tcp # NETBIOS Datagram Service + netbios-dgm 138/udp + netbios-ssn 139/tcp # NETBIOS session service + netbios-ssn 139/udp + ``` - !!! tip "Suggerimento" + !!! tip "Suggerimento" - ``` - Come sappiamo bene, le virgolette doppie e singole in una shell ricoprono ruoli differenti. I caratteri **$**, **\`** e **\\** tra virgolette doppie hanno un significato speciale. Il consiglio è utilizzare le virgolette singole più spesso con il comando `sed`. - ``` + ``` + Come sappiamo bene, le virgolette doppie e singole in una shell ricoprono ruoli differenti. I caratteri **$**, **\`** e **\\** tra virgolette doppie hanno un significato speciale. Il consiglio è utilizzare le virgolette singole più spesso con il comando `sed`. + ``` - - Visualizza il testo da riga 23 a riga 26 + - Visualizza il testo da riga 23 a riga 26 + + ```bash + Shell > cat -n /etc/services | sed -n '23,26p' + 23 tcpmux 1/tcp # TCP port service multiplexer + 24 tcpmux 1/udp # TCP port service multiplexer + 25 rje 5/tcp # Remote Job Entry + 26 rje 5/udp # Remote Job Entry + ``` + + - Visualizza solo le righe dispari + + ```bash + Shell > cat -n /etc/services | sed -n '1~2p' + 1 # /etc/services: + 3 # + 5 # IANA services version: last updated 2016-07-08 + 7 # Note that it is presently the policy of IANA to assign a single well-known + 9 # even if the protocol doesn't support UDP operations. + 11 # are included, only the more common ones. + 13 # The latest IANA port assignments can be gotten from + 15 # The Well Known Ports are those from 0 through 1023. + 17 # The Dynamic and/or Private Ports are those from 49152 through 65535 + 19 # Each line describes one service, and is of the form: + ... + ``` + + - Visualizza dalla riga 10 fino all'ultima riga + + ```bash + Shell > cat -n /etc/services | sed -n '10,$p' + 10 # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports + 11 # are included, only the more common ones. + 12 # + 13 # The latest IANA port assignments can be gotten from + 14 # http://www.iana.org/assignments/port-numbers + 15 # The Well Known Ports are those from 0 through 1023. + 16 # The Registered Ports are those from 1024 through 49151 + 17 # The Dynamic and/or Private Ports are those from 49152 through 65535 + ... + ``` + + - Non visualizzare dalla riga 10 in poi + + ```bash + Shell > cat -n /etc/services | sed -n '10,$!p' + 1 # /etc/services: + 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ + 3 # + 4 # Network services, Internet style + 5 # IANA services version: last updated 2016-07-08 + 6 # + 7 # Note that it is presently the policy of IANA to assign a single well-known + 8 # port number for both TCP and UDP; hence, most entries here have two entries + 9 # even if the protocol doesn't support UDP operations. + ``` + + - Visualizza il numero di riga e il contenuto della stringa corrispondente + + ```bash + Shell > sed -n -e '/netbios/=' -e '/netbios/p' /etc/services + 123 + netbios-ns 137/tcp # NETBIOS Name Service + 124 + netbios-ns 137/udp + 125 + netbios-dgm 138/tcp # NETBIOS Datagram Service + 126 + netbios-dgm 138/udp + 127 + netbios-ssn 139/tcp # NETBIOS session service + 128 + netbios-ssn 139/udp + ``` + + - Trova le corrispondenze nell'elenco delle stringhe e lo visualizza + + Utilizzare la virgola per separare l'elenco delle stringhe di ricerca + + ```bash + Shell > cat /etc/services | sed -n '/^netbios/,/^imap/p' + netbios-ns 137/tcp # NETBIOS Name Service + netbios-ns 137/udp + netbios-dgm 138/tcp # NETBIOS Datagram Service + netbios-dgm 138/udp + netbios-ssn 139/tcp # NETBIOS session service + netbios-ssn 139/udp + imap 143/tcp imap2 # Interim Mail Access Proto v2 + ``` + + !!! info "Informazione" - ```bash - Shell > cat -n /etc/services | sed -n '23,26p' - 23 tcpmux 1/tcp # TCP port service multiplexer - 24 tcpmux 1/udp # TCP port service multiplexer - 25 rje 5/tcp # Remote Job Entry - 26 rje 5/udp # Remote Job Entry - ``` - - - Visualizza solo le righe dispari + ``` + **Stringa iniziale**: Abbina la riga in cui si trova la stringa, mostrando solo la prima stringa che compare. + **Stringa finale**: Abbina la riga in cui si trova la stringa, mostrando solo la prima stringa che compare. + ``` - ```bash - Shell > cat -n /etc/services | sed -n '1~2p' - 1 # /etc/services: - 3 # - 5 # IANA services version: last updated 2016-07-08 - 7 # Note that it is presently the policy of IANA to assign a single well-known - 9 # even if the protocol doesn't support UDP operations. - 11 # are included, only the more common ones. - 13 # The latest IANA port assignments can be gotten from - 15 # The Well Known Ports are those from 0 through 1023. - 17 # The Dynamic and/or Private Ports are those from 49152 through 65535 - 19 # Each line describes one service, and is of the form: - ... - ``` + ```bash + Shell > grep -n ^netbios /etc/services + 123:netbios-ns 137/tcp # NETBIOS Name Service + 124:netbios-ns 137/udp + 125:netbios-dgm 138/tcp # NETBIOS Datagram Service + 126:netbios-dgm 138/udp + 127:netbios-ssn 139/tcp # NETBIOS session service + 128:netbios-ssn 139/udp + + Shell > grep -n ^imap /etc/services + 129:imap 143/tcp imap2 # Interim Mail Access Proto v2 + 130:imap 143/udp imap2 + 168:imap3 220/tcp # Interactive Mail Access + 169:imap3 220/udp # Protocol v3 + 260:imaps 993/tcp # IMAP over SSL + 261:imaps 993/udp # IMAP over SSL + ``` - - Visualizza dalla riga 10 fino all'ultima riga + In altre parole, i contenuti sopra visualizzati sono le righe dalla 123 alla 129 - ```bash - Shell > cat -n /etc/services | sed -n '10,$p' - 10 # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports - 11 # are included, only the more common ones. - 12 # - 13 # The latest IANA port assignments can be gotten from - 14 # http://www.iana.org/assignments/port-numbers - 15 # The Well Known Ports are those from 0 through 1023. - 16 # The Registered Ports are those from 1024 through 49151 - 17 # The Dynamic and/or Private Ports are those from 49152 through 65535 - ... - ``` + - Visualizza dalla riga in cui si trova la stringa fino all'ultima riga - - Non visualizzare dalla riga 10 in poi + ```bash + Shell > cat /etc/services | sed -n '/^netbios/,$p' + ``` - ```bash - Shell > cat -n /etc/services | sed -n '10,$!p' - 1 # /etc/services: - 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ - 3 # - 4 # Network services, Internet style - 5 # IANA services version: last updated 2016-07-08 - 6 # - 7 # Note that it is presently the policy of IANA to assign a single well-known - 8 # port number for both TCP and UDP; hence, most entries here have two entries - 9 # even if the protocol doesn't support UDP operations. - ``` + - Usare le variabili negli script bash - - Visualizza il numero di riga e il contenuto della stringa corrispondente + ```bash + Shell > vim test1.sh + #!/bin/bash + a=10 - ```bash - Shell > sed -n -e '/netbios/=' -e '/netbios/p' /etc/services - 123 - netbios-ns 137/tcp # NETBIOS Name Service - 124 - netbios-ns 137/udp - 125 - netbios-dgm 138/tcp # NETBIOS Datagram Service - 126 - netbios-dgm 138/udp - 127 - netbios-ssn 139/tcp # NETBIOS session service - 128 - netbios-ssn 139/udp - ``` + sed -n ''${a}',$!p' /etc/services + # or + sed -n "${a},\$!p" /etc/services + ``` - - Trova le corrispondenze nell'elenco delle stringhe e lo visualizza + - Espressione regolare - Utilizzare la virgola per separare l'elenco delle stringhe di ricerca + Abbina soltanto Tre "Digits" + "/udp". - ```bash - Shell > cat /etc/services | sed -n '/^netbios/,/^imap/p' - netbios-ns 137/tcp # NETBIOS Name Service - netbios-ns 137/udp - netbios-dgm 138/tcp # NETBIOS Datagram Service - netbios-dgm 138/udp - netbios-ssn 139/tcp # NETBIOS session service - netbios-ssn 139/udp - imap 143/tcp imap2 # Interim Mail Access Proto v2 - ``` + ```bash + Shell > cat /etc/services | sed -r -n '/[^0-9]([1-9]{3}\/udp)/p' + sunrpc 111/udp portmapper rpcbind # RPC 4.0 portmapper UDP + auth 113/udp authentication tap ident + sftp 115/udp + uucp-path 117/udp + nntp 119/udp readnews untp # USENET News Transfer Protocol + ntp 123/udp # Network Time Protocol + netbios-ns 137/udp + netbios-dgm 138/udp + netbios-ssn 139/udp + ... + ``` - !!! info "Informazione" - - ``` - **Stringa iniziale**: Abbina la riga in cui si trova la stringa, mostrando solo la prima stringa che compare. - **Stringa finale**: Abbina la riga in cui si trova la stringa, mostrando solo la prima stringa che compare. - ``` - - ```bash - Shell > grep -n ^netbios /etc/services - 123:netbios-ns 137/tcp # NETBIOS Name Service - 124:netbios-ns 137/udp - 125:netbios-dgm 138/tcp # NETBIOS Datagram Service - 126:netbios-dgm 138/udp - 127:netbios-ssn 139/tcp # NETBIOS session service - 128:netbios-ssn 139/udp +2. Associa ed elimina (`d`) - Shell > grep -n ^imap /etc/services - 129:imap 143/tcp imap2 # Interim Mail Access Proto v2 - 130:imap 143/udp imap2 - 168:imap3 220/tcp # Interactive Mail Access - 169:imap3 220/udp # Protocol v3 - 260:imaps 993/tcp # IMAP over SSL - 261:imaps 993/udp # IMAP over SSL - ``` + È simile alla stampa, tranne per il fatto che il comando operation è sostituito da `d` e l'opzione -n non è richiesta. + + - Elimina tutte le righe corrispondenti alla stringa udp, ed elimina tutte le righe di commento o vuote + + ```bash + Shell > sed -e '/udp/d' -e '/^#/d' -e '/^$/d' /etc/services + tcpmux 1/tcp # TCP port service multiplexer + rje 5/tcp # Remote Job Entry + echo 7/tcp + discard 9/tcp sink null + systat 11/tcp users + daytime 13/tcp + qotd 17/tcp quote + chargen 19/tcp ttytst source + ftp-data 20/tcp + ftp 21/tcp + ssh 22/tcp # The Secure Shell (SSH) Protocol + telnet 23/tcp + ... + ``` + + - Elimina le righe successive a quella specificata + + ```bash + Shell > cat -n /etc/services | sed '10,$d' + 1 # /etc/services: + 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ + 3 # + 4 # Servizi di rete, stile di Internet + 5 # Versione dei servizi di IANA: ultimo aggiornamento 2016-07-08 + 6 # + 7 # Nota che al momento la politica di IANA assegna un singolo ben noto + 8 # numero di porta sia per TCP che UDP; dunque, la maggior parte delle voci, qui, contiene due elementi + 9 # anche se il protocollo non supporta le operazioni UDP. + ``` + + - Espressione regolare + + ```bash + Shell > cat /etc/services | sed -r '/(tcp)|(udp)|(^#)|(^$)/d' + http 80/sctp # HyperText Transfer Protocol + bgp 179/sctp + https 443/sctp # http protocol over TLS/SSL + h323hostcall 1720/sctp # H.323 Call Control + nfs 2049/sctp nfsd shilp # Network File System + rtmp 1/ddp # Routing Table Maintenance Protocol + nbp 2/ddp # Name Binding Protocol + echo 4/ddp # AppleTalk Echo Protocol + zip 6/ddp # Zone Information Protocol + discard 9/sctp # Discard + discard 9/dccp # Discard SC:DISC + ... + ``` - In altre parole, i contenuti sopra visualizzati sono le righe dalla 123 alla 129 +3. Sostituire stringhe (`s///g`) - - Visualizza dalla riga in cui si trova la stringa fino all'ultima riga + | Sintassi | Descrizione della sintassi | + | :---------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `sed 's/string/replace/g' FILENAME` | **s**: Tutte le righe da considerare nel file. Si può anche specificare un intervallo di righe, ad esempio: `sed '20,200s/netbios/TMP/g' /etc/services. **g** (globale): Se non c'è g, significa che quando più stringhe corrispondenti appaiono su una singola riga, viene sostituita solo la prima stringa corrispondente. **/**: Stile delimitatore. Si possono anche specificare altri stili, ad esempio:`sed '20,200s?netbios?TMP?g' /etc/services\` | - ```bash - Shell > cat /etc/services | sed -n '/^netbios/,$p' - ``` + !!! tip "Suggerimento" - - Usare le variabili negli script bash + ```` + Esempio nello script bash: ```bash - Shell > vim test1.sh + Shell > vim /root/sedReplace.sh #!/bin/bash - a=10 + a="SELINUX=enforcing" + b="SELINUX=disabled" - sed -n ''${a}',$!p' /etc/services + sed -i 's/'${a}'/'${b}'/g' /etc/selinux/config # or - sed -n "${a},\$!p" /etc/services - ``` - - - Espressione regolare - - Abbina soltanto Tre "Digits" + "/udp". - - ```bash - Shell > cat /etc/services | sed -r -n '/[^0-9]([1-9]{3}\/udp)/p' - sunrpc 111/udp portmapper rpcbind # RPC 4.0 portmapper UDP - auth 113/udp authentication tap ident - sftp 115/udp - uucp-path 117/udp - nntp 119/udp readnews untp # USENET News Transfer Protocol - ntp 123/udp # Network Time Protocol - netbios-ns 137/udp - netbios-dgm 138/udp - netbios-ssn 139/udp - ... - ``` - -2. Associa ed elimina (`d`) - - È simile alla stampa, tranne per il fatto che il comando operation è sostituito da `d` e l'opzione -n non è richiesta. - - - Elimina tutte le righe corrispondenti alla stringa udp, ed elimina tutte le righe di commento o vuote - - ```bash - Shell > sed -e '/udp/d' -e '/^#/d' -e '/^$/d' /etc/services - tcpmux 1/tcp # TCP port service multiplexer - rje 5/tcp # Remote Job Entry - echo 7/tcp - discard 9/tcp sink null - systat 11/tcp users - daytime 13/tcp - qotd 17/tcp quote - chargen 19/tcp ttytst source - ftp-data 20/tcp - ftp 21/tcp - ssh 22/tcp # The Secure Shell (SSH) Protocol - telnet 23/tcp - ... - ``` - - - Elimina le righe successive a quella specificata + sed -i "s/${a}/${b}/g" /etc/selinux/config + ``` + ```` + + - Sostituisci e visualizza + + ```bash + Shell > sed -n '44,45s/ssh/SSH/gp' /etc/services + SSH 22/tcp + SSH 22/udp + ``` + + - Si utilizza il simbolo "&" come riferimento a una stringa + + ```bash + Shell > sed -n '44,45s/ssh/&-SSH/gp' /etc/services + ssh-SSH 22/tcp + ssh-SSH 22/udp + ``` + + - Utilizza una stringa per individuare una o più righe e sostituire la stringa specificata entro l'intervallo di righe + + ```bash + Shell > grep ssh /etc/services -n + 44:ssh 22/tcp # The Secure Shell (SSH) Protocol + 45:ssh 22/udp # The Secure Shell (SSH) Protocol + 551:x11-ssh-offset 6010/tcp # SSH X11 forwarding offset + 593:ssh 22/sctp # SSH + 1351:sshell 614/tcp # SSLshell + 1352:sshell 614/udp # SSLshell + 1607:netconf-ssh 830/tcp # NETCONF over SSH + 1608:netconf-ssh 830/udp # NETCONF over SSH + 7178:sdo-ssh 3897/tcp # Simple Distributed Objects over SSH + 7179:sdo-ssh 3897/udp # Simple Distributed Objects over SSH + 7791:netconf-ch-ssh 4334/tcp # NETCONF Call Home (SSH) + 8473:snmpssh 5161/tcp # SNMP over SSH Transport Model + 8474:snmpssh-trap 5162/tcp # SNMP Notification over SSH Transport Model + 9126:tl1-ssh 6252/tcp # TL1 over SSH + 9127:tl1-ssh 6252/udp # TL1 over SSH + 10796:ssh-mgmt 17235/tcp # SSH Tectia Manager + 10797:ssh-mgmt 17235/udp # SSH Tectia Manager + + Shell > sed '/ssh/s/tcp/TCP/gp' -n /etc/services + ssh 22/TCP # The Secure Shell (SSH) Protocol + x11-ssh-offset 6010/TCP # SSH X11 forwarding offset + sshell 614/TCP # SSLshell + netconf-ssh 830/TCP # NETCONF over SSH + sdo-ssh 3897/TCP # Simple Distributed Objects over SSH + netconf-ch-ssh 4334/TCP # NETCONF Call Home (SSH) + snmpssh 5161/TCP # SNMP over SSH Transport Model + snmpssh-trap 5162/TCP # SNMP Notification over SSH Transport Model + tl1-ssh 6252/TCP # TL1 over SSH + ssh-mgmt 17235/TCP # SSH Tectia Manager + ``` + + - Sostituire una stringa per righe consecutive + + ```bash + Shell > sed '10,30s/tcp/TCP/g' /etc/services + ``` + + - Impostare più match e sostituzioni + + ```bash + Shell > cat /etc/services | sed 's/netbios/test1/g ; s/^#//d ; s/dhcp/&t2/g' + ``` + + - Sostituzione di gruppo con espressioni regolari + + Nelle espressioni regolari, ogni "()" è un raggruppamento. \1 rappresenta il riferimento al gruppo 1, \2 rappresenta il riferimento al gruppo 2, e così via. + + ```bash + Shell > cat /etc/services + ... + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > cat /etc/services | sed -r 's/([0-9]*\/tcp)/\1\tCONTENT1/g ; s/([0-9]*\/udp)/\1\tADD2/g' + ... + axio-disc 35100/tcp CONTENT1 # Axiomatic discovery protocol + axio-disc 35100/udp ADD2 # Axiomatic discovery protocol + pmwebapi 44323/tcp CONTENT1 # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp ADD2 # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp CONTENT1 # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp CONTENT1 # Capture handwritten signatures + ``` + + **\t**: è il carattere di tabulazione + + - Sostituisce tutte le righe di commento con il carattere blank space + + ```bash + Shell > cat /etc/services | sed -r 's/(^#.*)//g' + ... + chargen 19/udp ttytst source + ftp-data 20/tcp + ftp-data 20/udp + + ftp 21/tcp + ftp 21/udp fsp fspd + ssh 22/tcp # The Secure Shell (SSH) Protocol + ssh 22/udp # The Secure Shell (SSH) Protocol + ... + ``` + + - Sostituire un carattere alfabetico in minuscolo in maiuscolo + + ```bash + Shell > echo -e "hello,world\nPOSIX" | sed -r 's/(.*)w/\1W/g' + hello,World + POSIX + ``` + + - Scambiare di posizione le stringhe + + ```bash + Shell > cat /etc/services + ... + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` + + Possiamo strutturare le righe del file in cinque parti: + + ```txt + cloudcheck-ping 45514 / udp # ASSIA CloudCheck WiFi Management keepalive + ↓ ↓ ↓ ↓ ↓ + (.*) (\<[0-9]+\>) \/ (tcp|udp) (.*) + ↓ ↓ ↓ ↓ + \1 \2 \3 \4 + ``` + + ```bash + Shell > cat /etc/services | sed -r 's/(.*)(\<[0-9]+\>)\/(tcp|udp)(.*)/\1\3\/\2\4/g' + ... + edi_service udp/34567 # dhanalakshmi.org EDI Service + axio-disc tcp/35100 # Axiomatic discovery protocol + axio-disc udp/35100 # Axiomatic discovery protocol + pmwebapi tcp/44323 # Performance Co-Pilot client HTTP API + cloudcheck-ping udp/45514 # ASSIA CloudCheck WiFi Management keepalive + cloudcheck tcp/45514 # ASSIA CloudCheck WiFi Management System + spremotetablet tcp/46998 # Capture handwritten signatures + ``` + + - Rimuovere tutti i spazi + + ```bash + Shell > echo -e "abcd\t1 2 3 4\tWorld" + abcd 1 2 3 4 World + Shell > echo -e "abcd\t1 2 3 4\tWorld" | sed -r 's/(\s)*//g' + abcd1234World + ``` - ```bash - Shell > cat -n /etc/services | sed '10,$d' - 1 # /etc/services: - 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ - 3 # - 4 # Servizi di rete, stile di Internet - 5 # Versione dei servizi di IANA: ultimo aggiornamento 2016-07-08 - 6 # - 7 # Nota che al momento la politica di IANA assegna un singolo ben noto - 8 # numero di porta sia per TCP che UDP; dunque, la maggior parte delle voci, qui, contiene due elementi - 9 # anche se il protocollo non supporta le operazioni UDP. - ``` - - - Espressione regolare - - ```bash - Shell > cat /etc/services | sed -r '/(tcp)|(udp)|(^#)|(^$)/d' - http 80/sctp # HyperText Transfer Protocol - bgp 179/sctp - https 443/sctp # http protocol over TLS/SSL - h323hostcall 1720/sctp # H.323 Call Control - nfs 2049/sctp nfsd shilp # Network File System - rtmp 1/ddp # Routing Table Maintenance Protocol - nbp 2/ddp # Name Binding Protocol - echo 4/ddp # AppleTalk Echo Protocol - zip 6/ddp # Zone Information Protocol - discard 9/sctp # Discard - discard 9/dccp # Discard SC:DISC - ... - ``` - -3. Sostituire stringhe (`s///g`) - - | Sintassi | Descrizione della sintassi | - | :---------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | `sed 's/string/replace/g' FILENAME` | **s**: Tutte le righe da considerare nel file. Si può anche specificare un intervallo di righe, ad esempio: `sed '20,200s/netbios/TMP/g' /etc/services. **g** (globale): Se non c'è g, significa che quando più stringhe corrispondenti appaiono su una singola riga, viene sostituita solo la prima stringa corrispondente. **/**: Stile delimitatore. Si possono anche specificare altri stili, ad esempio:`sed '20,200s?netbios?TMP?g' /etc/services\` | - - !!! tip "Suggerimento" +4. Eseguire più volte seq utilizzando l'opzione -e - ```` - Esempio nello script bash: + Nell'esempio seguente: ```bash - Shell > vim /root/sedReplace.sh - #!/bin/bash - a="SELINUX=enforcing" - b="SELINUX=disabled" - - sed -i 's/'${a}'/'${b}'/g' /etc/selinux/config + Shell > tail -n 10 /etc/services + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > tail -n 10 /etc/services | sed -e '1,3d' -e '/cloud/s/ping/PING/g' # or - sed -i "s/${a}/${b}/g" /etc/selinux/config + Shell > tail -n 10 /etc/services | sed '1,3d ; /cloud/s/ping/PING/g' + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-PING 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures ``` - ```` - - - Sostituisci e visualizza - - ```bash - Shell > sed -n '44,45s/ssh/SSH/gp' /etc/services - SSH 22/tcp - SSH 22/udp - ``` - - - Si utilizza il simbolo "&" come riferimento a una stringa - - ```bash - Shell > sed -n '44,45s/ssh/&-SSH/gp' /etc/services - ssh-SSH 22/tcp - ssh-SSH 22/udp - ``` - - - Utilizza una stringa per individuare una o più righe e sostituire la stringa specificata entro l'intervallo di righe - - ```bash - Shell > grep ssh /etc/services -n - 44:ssh 22/tcp # The Secure Shell (SSH) Protocol - 45:ssh 22/udp # The Secure Shell (SSH) Protocol - 551:x11-ssh-offset 6010/tcp # SSH X11 forwarding offset - 593:ssh 22/sctp # SSH - 1351:sshell 614/tcp # SSLshell - 1352:sshell 614/udp # SSLshell - 1607:netconf-ssh 830/tcp # NETCONF over SSH - 1608:netconf-ssh 830/udp # NETCONF over SSH - 7178:sdo-ssh 3897/tcp # Simple Distributed Objects over SSH - 7179:sdo-ssh 3897/udp # Simple Distributed Objects over SSH - 7791:netconf-ch-ssh 4334/tcp # NETCONF Call Home (SSH) - 8473:snmpssh 5161/tcp # SNMP over SSH Transport Model - 8474:snmpssh-trap 5162/tcp # SNMP Notification over SSH Transport Model - 9126:tl1-ssh 6252/tcp # TL1 over SSH - 9127:tl1-ssh 6252/udp # TL1 over SSH - 10796:ssh-mgmt 17235/tcp # SSH Tectia Manager - 10797:ssh-mgmt 17235/udp # SSH Tectia Manager - - Shell > sed '/ssh/s/tcp/TCP/gp' -n /etc/services - ssh 22/TCP # The Secure Shell (SSH) Protocol - x11-ssh-offset 6010/TCP # SSH X11 forwarding offset - sshell 614/TCP # SSLshell - netconf-ssh 830/TCP # NETCONF over SSH - sdo-ssh 3897/TCP # Simple Distributed Objects over SSH - netconf-ch-ssh 4334/TCP # NETCONF Call Home (SSH) - snmpssh 5161/TCP # SNMP over SSH Transport Model - snmpssh-trap 5162/TCP # SNMP Notification over SSH Transport Model - tl1-ssh 6252/TCP # TL1 over SSH - ssh-mgmt 17235/TCP # SSH Tectia Manager - ``` - - - Sostituire una stringa per righe consecutive - - ```bash - Shell > sed '10,30s/tcp/TCP/g' /etc/services - ``` - - - Impostare più match e sostituzioni - - ```bash - Shell > cat /etc/services | sed 's/netbios/test1/g ; s/^#//d ; s/dhcp/&t2/g' - ``` - - - Sostituzione di gruppo con espressioni regolari - - Nelle espressioni regolari, ogni "()" è un raggruppamento. \1 rappresenta il riferimento al gruppo 1, \2 rappresenta il riferimento al gruppo 2, e così via. - - ```bash - Shell > cat /etc/services - ... - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > cat /etc/services | sed -r 's/([0-9]*\/tcp)/\1\tCONTENT1/g ; s/([0-9]*\/udp)/\1\tADD2/g' - ... - axio-disc 35100/tcp CONTENT1 # Axiomatic discovery protocol - axio-disc 35100/udp ADD2 # Axiomatic discovery protocol - pmwebapi 44323/tcp CONTENT1 # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp ADD2 # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp CONTENT1 # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp CONTENT1 # Capture handwritten signatures - ``` - - **\t**: è il carattere di tabulazione - - - Sostituisce tutte le righe di commento con il carattere blank space - - ```bash - Shell > cat /etc/services | sed -r 's/(^#.*)//g' - ... - chargen 19/udp ttytst source - ftp-data 20/tcp - ftp-data 20/udp - - ftp 21/tcp - ftp 21/udp fsp fspd - ssh 22/tcp # The Secure Shell (SSH) Protocol - ssh 22/udp # The Secure Shell (SSH) Protocol - ... - ``` - - - Sostituire un carattere alfabetico in minuscolo in maiuscolo - - ```bash - Shell > echo -e "hello,world\nPOSIX" | sed -r 's/(.*)w/\1W/g' - hello,World - POSIX - ``` - - - Scambiare di posizione le stringhe - - ```bash - Shell > cat /etc/services - ... - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` - - Possiamo strutturare le righe del file in cinque parti: - - ```txt - cloudcheck-ping 45514 / udp # ASSIA CloudCheck WiFi Management keepalive - ↓ ↓ ↓ ↓ ↓ - (.*) (\<[0-9]+\>) \/ (tcp|udp) (.*) - ↓ ↓ ↓ ↓ - \1 \2 \3 \4 - ``` - - ```bash - Shell > cat /etc/services | sed -r 's/(.*)(\<[0-9]+\>)\/(tcp|udp)(.*)/\1\3\/\2\4/g' - ... - edi_service udp/34567 # dhanalakshmi.org EDI Service - axio-disc tcp/35100 # Axiomatic discovery protocol - axio-disc udp/35100 # Axiomatic discovery protocol - pmwebapi tcp/44323 # Performance Co-Pilot client HTTP API - cloudcheck-ping udp/45514 # ASSIA CloudCheck WiFi Management keepalive - cloudcheck tcp/45514 # ASSIA CloudCheck WiFi Management System - spremotetablet tcp/46998 # Capture handwritten signatures - ``` - - - Rimuovere tutti i spazi - - ```bash - Shell > echo -e "abcd\t1 2 3 4\tWorld" - abcd 1 2 3 4 World - Shell > echo -e "abcd\t1 2 3 4\tWorld" | sed -r 's/(\s)*//g' - abcd1234World - ``` - -4. Eseguire più volte seq utilizzando l'opzione -e - - Nell'esempio seguente: - - ```bash - Shell > tail -n 10 /etc/services - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > tail -n 10 /etc/services | sed -e '1,3d' -e '/cloud/s/ping/PING/g' - # or - Shell > tail -n 10 /etc/services | sed '1,3d ; /cloud/s/ping/PING/g' - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-PING 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` 5. Aggiungere contenuti sopra o sotto una certa riga (`i` e `a`) - - Aggiungi due righe sopra la riga specificata dal numero di riga - - ```bash - Shell > tail -n 10 /etc/services > /root/test.txt - Shell > cat /root/test.txt - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > cat /root/test.txt | sed '3i 123\ - abc' - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - 123 - abc - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` + - Aggiungi due righe sopra la riga specificata dal numero di riga + + ```bash + Shell > tail -n 10 /etc/services > /root/test.txt + Shell > cat /root/test.txt + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > cat /root/test.txt | sed '3i 123\ + abc' + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + 123 + abc + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` + + - Aggiungere tre righe sotto la riga specificata dal numero - - Aggiungere tre righe sotto la riga specificata dal numero - - ```bash - Shell > cat /root/test.txt | sed '5a 123\ - comment yes\ - tcp or udp' - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - 123 - comment yes - tcp or udp - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` - - - Trovare le righe che contengono una stringa e aggiungere 2 righe di testo sopra ognuna + ```bash + Shell > cat /root/test.txt | sed '5a 123\ + comment yes\ + tcp or udp' + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + 123 + comment yes + tcp or udp + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` - ```bash - Shell > cat /root/test.txt | sed '/tcp/iTCP\ - UDP' - TCP - UDP - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - TCP - UDP - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - TCP - UDP - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - TCP - UDP - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - TCP - UDP - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - TCP - UDP - spremotetablet 46998/tcp # Capture handwritten signatures - ``` + - Trovare le righe che contengono una stringa e aggiungere 2 righe di testo sopra ognuna + + ```bash + Shell > cat /root/test.txt | sed '/tcp/iTCP\ + UDP' + TCP + UDP + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + TCP + UDP + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + TCP + UDP + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + TCP + UDP + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + TCP + UDP + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + TCP + UDP + spremotetablet 46998/tcp # Capture handwritten signatures + ``` 6. Sostituire righe (\`c) - - Individua una o più righe contenenti una stringa e sostituire con righe di testo - - ```bash - Shell > cat /root/test.txt | sed '/ser/c\TMP1 \ - TMP2' - TMP1 - TMP2 - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - TMP1 - TMP2 - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` - - - Sostituire una singola riga - - ```bash - Shell > cat /root/test.txt | sed '7c REPLACE' - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - REPLACE - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` - - - Sostituire righe consecutive di testo - - ```bash - Shell > cat /root/test.txt | sed '2,$c REPLACE1 \ - replace2' - aigairserver 21221/tcp # Services for Air Server - REPLACE1 - replace2 - ``` - - - Sostituire tutte le righe di posizione pari - - ```bash - Shell > cat /root/test.txt | sed '2~2c replace' - aigairserver 21221/tcp # Services for Air Server - replace - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - replace - axio-disc 35100/tcp # Axiomatic discovery protocol - replace - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - replace - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - replace - ``` + - Individua una o più righe contenenti una stringa e sostituire con righe di testo + + ```bash + Shell > cat /root/test.txt | sed '/ser/c\TMP1 \ + TMP2' + TMP1 + TMP2 + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + TMP1 + TMP2 + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` + + - Sostituire una singola riga + + ```bash + Shell > cat /root/test.txt | sed '7c REPLACE' + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + REPLACE + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` + + - Sostituire righe consecutive di testo + + ```bash + Shell > cat /root/test.txt | sed '2,$c REPLACE1 \ + replace2' + aigairserver 21221/tcp # Services for Air Server + REPLACE1 + replace2 + ``` + + - Sostituire tutte le righe di posizione pari + + ```bash + Shell > cat /root/test.txt | sed '2~2c replace' + aigairserver 21221/tcp # Services for Air Server + replace + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + replace + axio-disc 35100/tcp # Axiomatic discovery protocol + replace + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + replace + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + replace + ``` 7. Leggere le righe del file e aggiungere del testo sotto la riga corrispondente (`r`) - ```bash - Shell > cat /root/app.txt - append1 - POSIX - UNIX - - Shell > cat /root/test.txt | sed '/ping/r /root/app.txt' - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - append1 - POSIX - UNIX - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` + ```bash + Shell > cat /root/app.txt + append1 + POSIX + UNIX + + Shell > cat /root/test.txt | sed '/ping/r /root/app.txt' + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + append1 + POSIX + UNIX + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` 8. Trascrivere le righe con un match in un altro file (`w`) - ```bash - Shell > cat /root/test.txt | sed '/axio/w /root/storage.txt' + ```bash + Shell > cat /root/test.txt | sed '/axio/w /root/storage.txt' - Shell > cat /root/storage.txt - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - ``` + Shell > cat /root/storage.txt + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + ``` 9. Leggere/aggiungere la riga successiva di input nel "pattern space"(`n` e `N`) - - Visualizza la riga successiva alla riga trovata + - Visualizza la riga successiva alla riga trovata - ```bash - Shell > cat /root/test.txt - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > cat /root/test.txt | sed '/ping/{n;p}' -n - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - ``` + ```bash + Shell > cat /root/test.txt + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures - !!! tip "Suggerimento" + Shell > cat /root/test.txt | sed '/ping/{n;p}' -n + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + ``` - ``` - Più comandi `sed` potrebbero influenzarsi a vicenda, per ridurre questa eventualità utilizzare "**{ }**". - ``` + !!! tip "Suggerimento" - - Visualizzare righe di testo pari + ``` + Più comandi `sed` potrebbero influenzarsi a vicenda, per ridurre questa eventualità utilizzare "**{ }**". + ``` - Prima, legge la prima riga, essendo presente un comando `n`, la seconda riga sarà visualizzata, e così via. + - Visualizzare righe di testo pari + + Prima, legge la prima riga, essendo presente un comando `n`, la seconda riga sarà visualizzata, e così via. + + ```bash + Shell > cat -n /root/test.txt | sed -n '{n;p}' + # or + Shell > cat -n /root/test.txt | sed -n '2~2p' + 2 ka-kdp 31016/udp # Kollective Agent Kollective Delivery + 4 edi_service 34567/udp # dhanalakshmi.org EDI Service + 6 axio-disc 35100/udp # Axiomatic discovery protocol + 8 cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + 10 spremotetablet 46998/tcp # Capture handwritten signatures + ``` + + - Visualizza righe di testo dispari + + ```bash + Shell > cat -n /root/test.txt | sed -n '{p;n}' + # or + Shell > cat -n /root/test.txt | sed -n '1~2p' + # or + Shell > cat -n /root/test.txt | sed 'n;d' + 1 aigairserver 21221/tcp # Services for Air Server + 3 ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + 5 axio-disc 35100/tcp # Axiomatic discovery protocol + 7 pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + 9 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + ``` + + - Visualizza le righe multiple di 3 + + ```bash + Shell > cat -n /root/test.txt | sed -n '{n;n;p}' + # or + Shell > cat -n /root/test.txt | sed -n '3~3p' + 3 ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + 6 axio-disc 35100/udp # Axiomatic discovery protocol + 9 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + ``` + + - `N` + + Legge la prima riga e aggiungi una riga dopo aver incontrato il comando `N`. In questo esempio, il "pattern space" è "1\n2". Infine, esegue il comando `q` per uscire. + + ```bash + Shell > seq 1 10 | sed 'N;q' + 1 + 2 + ``` + + Poiché non è presente alcuna riga dopo la riga 9, il risultato sarà il seguente: + + ```bash + Shell > seq 1 9 | sed -n 'N;p' + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + ``` + + Quando l'ultima riga viene letta, il comando `N` non viene eseguito e il risultato è il seguente: + + ```bash + Shell > seq 1 9 | sed -n '$!N;p' + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + ``` + + Unire due righe in una. Sostituisce "\n" del "pattern space" con un carattere vuoto. + + ```bash + Shell > seq 1 6 | sed 'N;{s/\n//g}' + 12 + 34 + 56 + ``` - ```bash - Shell > cat -n /root/test.txt | sed -n '{n;p}' - # or - Shell > cat -n /root/test.txt | sed -n '2~2p' - 2 ka-kdp 31016/udp # Kollective Agent Kollective Delivery - 4 edi_service 34567/udp # dhanalakshmi.org EDI Service - 6 axio-disc 35100/udp # Axiomatic discovery protocol - 8 cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - 10 spremotetablet 46998/tcp # Capture handwritten signatures - ``` +10. Ignorare un caso (`I`) - - Visualizza righe di testo dispari + Sembra non esser presente alcuna informazione in merito all'ignorare casi in `man 1 sed`. ```bash - Shell > cat -n /root/test.txt | sed -n '{p;n}' - # or - Shell > cat -n /root/test.txt | sed -n '1~2p' - # or - Shell > cat -n /root/test.txt | sed 'n;d' - 1 aigairserver 21221/tcp # Services for Air Server - 3 ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - 5 axio-disc 35100/tcp # Axiomatic discovery protocol - 7 pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - 9 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + Shell > echo -e "abc\nAbc" | sed -n 's/a/X/Igp' + Xbc + XBC ``` - - Visualizza le righe multiple di 3 - ```bash - Shell > cat -n /root/test.txt | sed -n '{n;n;p}' - # or - Shell > cat -n /root/test.txt | sed -n '3~3p' - 3 ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - 6 axio-disc 35100/udp # Axiomatic discovery protocol - 9 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + Shell > cat /etc/services | sed '/OEM/Ip' -n + oem-agent 3872/tcp # OEM Agent + oem-agent 3872/udp # OEM Agent + oemcacao-jmxmp 11172/tcp # OEM cacao JMX-remoting access point + oemcacao-rmi 11174/tcp # OEM cacao rmi registry access point + oemcacao-websvc 11175/tcp # OEM cacao web service access point ``` - - `N` - - Legge la prima riga e aggiungi una riga dopo aver incontrato il comando `N`. In questo esempio, il "pattern space" è "1\n2". Infine, esegue il comando `q` per uscire. - ```bash - Shell > seq 1 10 | sed 'N;q' - 1 - 2 + Shell > cat /etc/services | sed -r '/(TCP)|(UDP)/Id' ``` - Poiché non è presente alcuna riga dopo la riga 9, il risultato sarà il seguente: - ```bash - Shell > seq 1 9 | sed -n 'N;p' - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 + Shell > cat /etc/services | sed -r '/(TCP)|(UDP)/Ic TMP' ``` - Quando l'ultima riga viene letta, il comando `N` non viene eseguito e il risultato è il seguente: +11. Calcola il numero totale di righe in un file ```bash - Shell > seq 1 9 | sed -n '$!N;p' - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - ``` - - Unire due righe in una. Sostituisce "\n" del "pattern space" con un carattere vuoto. + Shell > cat /etc/services | sed -n '$=' + # or + Shell > cat /etc/services | wc -l - ```bash - Shell > seq 1 6 | sed 'N;{s/\n//g}' - 12 - 34 - 56 + 11473 ``` - -10. Ignorare un caso (`I`) - - Sembra non esser presente alcuna informazione in merito all'ignorare casi in `man 1 sed`. - - ```bash - Shell > echo -e "abc\nAbc" | sed -n 's/a/X/Igp' - Xbc - XBC - ``` - - ```bash - Shell > cat /etc/services | sed '/OEM/Ip' -n - oem-agent 3872/tcp # OEM Agent - oem-agent 3872/udp # OEM Agent - oemcacao-jmxmp 11172/tcp # OEM cacao JMX-remoting access point - oemcacao-rmi 11174/tcp # OEM cacao rmi registry access point - oemcacao-websvc 11175/tcp # OEM cacao web service access point - ``` - - ```bash - Shell > cat /etc/services | sed -r '/(TCP)|(UDP)/Id' - ``` - - ```bash - Shell > cat /etc/services | sed -r '/(TCP)|(UDP)/Ic TMP' - ``` - -11. Calcola il numero totale di righe in un file - - ```bash - Shell > cat /etc/services | sed -n '$=' - # or - Shell > cat /etc/services | wc -l - - 11473 - ``` From f9c41a242fd6ddcce50775aad25fb1f8017c499c Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:41 -0400 Subject: [PATCH 108/167] New translations 4_awk_command.md (Italian) --- docs/books/sed_awk_grep/4_awk_command.it.md | 2992 +++++++++---------- 1 file changed, 1496 insertions(+), 1496 deletions(-) diff --git a/docs/books/sed_awk_grep/4_awk_command.it.md b/docs/books/sed_awk_grep/4_awk_command.it.md index 20c982c9fe..94ce9e7494 100644 --- a/docs/books/sed_awk_grep/4_awk_command.it.md +++ b/docs/books/sed_awk_grep/4_awk_command.it.md @@ -190,293 +190,293 @@ ID Name 1. Lettura dei file sorgente del programma `awk` da file - ```bash - Shell > vim /tmp/read-print.awk - #!/bin/awk - {print $6} - - Shell > df -hT | awk -f /tmp/read-print.awk - Use% - 0% - 0% - 1% - 0% - 6% - 18% - 0% - ``` + ```bash + Shell > vim /tmp/read-print.awk + #!/bin/awk + {print $6} + + Shell > df -hT | awk -f /tmp/read-print.awk + Use% + 0% + 0% + 1% + 0% + 6% + 18% + 0% + ``` 2. Specificare il delimitatore - ```bash - Shell > awk -F ":" '{print $1}' /etc/passwd - root - bin - daemon - adm - lp - sync - ... - - Shell > tail -n 5 /etc/services | awk -F "\/" '{print $2}' - awk: warning: escape sequence `\/' treated as plain `/' - axio-disc 35100 - pmwebapi 44323 - cloudcheck-ping 45514 - cloudcheck 45514 - spremotetablet 46998 - ``` - - Si possono usare anche parole come delimitatori. Le parentesi indicano che si tratta di un delimitatore generale e "|" significa o. - - ```bash - Shell > tail -n 5 /etc/services | awk -F "(tcp)|(udp)" '{print $1}' - axio-disc 35100/ - pmwebapi 44323/ - cloudcheck-ping 45514/ - cloudcheck 45514/ - spremotetablet 46998/ - ``` + ```bash + Shell > awk -F ":" '{print $1}' /etc/passwd + root + bin + daemon + adm + lp + sync + ... + + Shell > tail -n 5 /etc/services | awk -F "\/" '{print $2}' + awk: warning: escape sequence `\/' treated as plain `/' + axio-disc 35100 + pmwebapi 44323 + cloudcheck-ping 45514 + cloudcheck 45514 + spremotetablet 46998 + ``` + + Si possono usare anche parole come delimitatori. Le parentesi indicano che si tratta di un delimitatore generale e "|" significa o. + + ```bash + Shell > tail -n 5 /etc/services | awk -F "(tcp)|(udp)" '{print $1}' + axio-disc 35100/ + pmwebapi 44323/ + cloudcheck-ping 45514/ + cloudcheck 45514/ + spremotetablet 46998/ + ``` 3. Assegnazione delle variabili - ```bash - Shell > tail -n 5 /etc/services | awk -v a=123 'BEGIN{print a}{print $1}' - 123 - axio-disc - pmwebapi - cloudcheck-ping - cloudcheck - spremotetablet - ``` - - Assegna il valore delle variabili definite dall'utente in bash alle variabili di awk. - - ```bash - Shell > ab=123 - Shell > echo ${ab} - 123 - Shell > tail -n 5 /etc/services | awk -v a=${ab} 'BEGIN{print a}{print $1}' - 123 - axio-disc - pmwebapi - cloudcheck-ping - cloudcheck - spremotetablet - ``` + ```bash + Shell > tail -n 5 /etc/services | awk -v a=123 'BEGIN{print a}{print $1}' + 123 + axio-disc + pmwebapi + cloudcheck-ping + cloudcheck + spremotetablet + ``` + + Assegna il valore delle variabili definite dall'utente in bash alle variabili di awk. + + ```bash + Shell > ab=123 + Shell > echo ${ab} + 123 + Shell > tail -n 5 /etc/services | awk -v a=${ab} 'BEGIN{print a}{print $1}' + 123 + axio-disc + pmwebapi + cloudcheck-ping + cloudcheck + spremotetablet + ``` 4. Scrivere le variabili globali di awk in un file - ```bash - Shell > seq 1 6 | awk --dump-variables '{print $0}' - 1 - 2 - 3 - 4 - 5 - 6 - - Shell > cat /root/awkvars.out - ARGC: 1 - ARGIND: 0 - ARGV: array, 1 elements - BINMODE: 0 - CONVFMT: "%.6g" - ENVIRON: array, 27 elements - ERRNO: "" - FIELDWIDTHS: "" - FILENAME: "-" - FNR: 6 - FPAT: "[^[:space:]]+" - FS: " " - FUNCTAB: array, 41 elements - IGNORECASE: 0 - LINT: 0 - NF: 1 - NR: 6 - OFMT: "%.6g" - OFS: " " - ORS: "\n" - PREC: 53 - PROCINFO: array, 20 elements - RLENGTH: 0 - ROUNDMODE: "N" - RS: "\n" - RSTART: 0 - RT: "\n" - SUBSEP: "\034" - SYMTAB: array, 28 elements - TEXTDOMAIN: "messages" - ``` - - In seguito, sarà introdotto il significato di queste variabili. Per rivederli ora, [saltare alle variabili](#VARIABILI). + ```bash + Shell > seq 1 6 | awk --dump-variables '{print $0}' + 1 + 2 + 3 + 4 + 5 + 6 + + Shell > cat /root/awkvars.out + ARGC: 1 + ARGIND: 0 + ARGV: array, 1 elements + BINMODE: 0 + CONVFMT: "%.6g" + ENVIRON: array, 27 elements + ERRNO: "" + FIELDWIDTHS: "" + FILENAME: "-" + FNR: 6 + FPAT: "[^[:space:]]+" + FS: " " + FUNCTAB: array, 41 elements + IGNORECASE: 0 + LINT: 0 + NF: 1 + NR: 6 + OFMT: "%.6g" + OFS: " " + ORS: "\n" + PREC: 53 + PROCINFO: array, 20 elements + RLENGTH: 0 + ROUNDMODE: "N" + RS: "\n" + RSTART: 0 + RT: "\n" + SUBSEP: "\034" + SYMTAB: array, 28 elements + TEXTDOMAIN: "messages" + ``` + + In seguito, sarà introdotto il significato di queste variabili. Per rivederli ora, [saltare alle variabili](#VARIABILI). 5. BEGIN{ } ed END{ } - ```bash - Shell > head -n 5 /etc/passwd | awk 'BEGIN{print "UserName:PasswordIdentification:UID:InitGID"}{print $0}END{print "one\ntwo"}' - UserName:PasswordIdentification:UID:InitGID - root:x:0:0:root:/root:/bin/bash - bin:x:1:1:bin:/bin:/sbin/nologin - daemon:x:2:2:daemon:/sbin:/sbin/nologin - adm:x:3:4:adm:/var/adm:/sbin/nologin - lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin - one - two - ``` + ```bash + Shell > head -n 5 /etc/passwd | awk 'BEGIN{print "UserName:PasswordIdentification:UID:InitGID"}{print $0}END{print "one\ntwo"}' + UserName:PasswordIdentification:UID:InitGID + root:x:0:0:root:/root:/bin/bash + bin:x:1:1:bin:/bin:/sbin/nologin + daemon:x:2:2:daemon:/sbin:/sbin/nologin + adm:x:3:4:adm:/var/adm:/sbin/nologin + lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin + one + two + ``` 6. Opzione --profile - ```bash - Shell > df -hT | awk --profile 'BEGIN{print "start line"}{print $0}END{print "end line"}' - start line - Filesystem Type Size Used Avail Use% Mounted on - devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev - tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm - tmpfs tmpfs 1.8G 8.9M 1.8G 1% /run - tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup - /dev/nvme0n1p2 ext4 47G 2.7G 42G 6% / - /dev/nvme0n1p1 xfs 1014M 181M 834M 18% /boot - tmpfs tmpfs 363M 0 363M 0% /run/user/0 - end line - - Shell > cat /root/awkprof.out - # gawk profile, created Fri Dec 8 15:12:56 2023 - - # BEGIN rule(s) - - BEGIN { - 1 print "start line" - } - - # Rule(s) - - 8 { - 8 print $0 - } - - # END rule(s) - - END { - 1 print "end line" - } - ``` - - Modificare il file awkprof.out. - - ```bash - Shell > vim /root/awkprof.out - BEGIN { - print "start line" - } - - { - print $0 - } - - END { - print "end line" - } - - Shell > df -hT | awk -f /root/awkprof.out - start line - Filesystem Type Size Used Avail Use% Mounted on - devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev - tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm - tmpfs tmpfs 1.8G 8.9M 1.8G 1% /run - tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup - /dev/nvme0n1p2 ext4 47G 2.7G 42G 6% / - /dev/nvme0n1p1 xfs 1014M 181M 834M 18% /boot - tmpfs tmpfs 363M 0 363M 0% /run/user/0 - end line - ``` + ```bash + Shell > df -hT | awk --profile 'BEGIN{print "start line"}{print $0}END{print "end line"}' + start line + Filesystem Type Size Used Avail Use% Mounted on + devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev + tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm + tmpfs tmpfs 1.8G 8.9M 1.8G 1% /run + tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup + /dev/nvme0n1p2 ext4 47G 2.7G 42G 6% / + /dev/nvme0n1p1 xfs 1014M 181M 834M 18% /boot + tmpfs tmpfs 363M 0 363M 0% /run/user/0 + end line + + Shell > cat /root/awkprof.out + # gawk profile, created Fri Dec 8 15:12:56 2023 + + # BEGIN rule(s) + + BEGIN { + 1 print "start line" + } + + # Rule(s) + + 8 { + 8 print $0 + } + + # END rule(s) + + END { + 1 print "end line" + } + ``` + + Modificare il file awkprof.out. + + ```bash + Shell > vim /root/awkprof.out + BEGIN { + print "start line" + } + + { + print $0 + } + + END { + print "end line" + } + + Shell > df -hT | awk -f /root/awkprof.out + start line + Filesystem Type Size Used Avail Use% Mounted on + devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev + tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm + tmpfs tmpfs 1.8G 8.9M 1.8G 1% /run + tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup + /dev/nvme0n1p2 ext4 47G 2.7G 42G 6% / + /dev/nvme0n1p1 xfs 1014M 181M 834M 18% /boot + tmpfs tmpfs 363M 0 363M 0% /run/user/0 + end line + ``` 7. Corrispondenza di righe (record) tramite espressioni regolari - ```bash - Shell > cat /etc/services | awk '/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ {print $0}' - sunrpc 111/tcp portmapper rpcbind # RPC 4.0 portmapper TCP - auth 113/tcp authentication tap ident - sftp 115/tcp - uucp-path 117/tcp - nntp 119/tcp readnews untp # USENET News Transfer Protocol - ntp 123/tcp - netbios-ns 137/tcp # NETBIOS Name Service - netbios-dgm 138/tcp # NETBIOS Datagram Service - netbios-ssn 139/tcp # NETBIOS session service - ... - ``` + ```bash + Shell > cat /etc/services | awk '/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ {print $0}' + sunrpc 111/tcp portmapper rpcbind # RPC 4.0 portmapper TCP + auth 113/tcp authentication tap ident + sftp 115/tcp + uucp-path 117/tcp + nntp 119/tcp readnews untp # USENET News Transfer Protocol + ntp 123/tcp + netbios-ns 137/tcp # NETBIOS Name Service + netbios-dgm 138/tcp # NETBIOS Datagram Service + netbios-ssn 139/tcp # NETBIOS session service + ... + ``` 8. Operazioni logiche (AND, OR, inverso) - logical AND: && - logical OR: || - reverse: ! - - ```bash - Shell > cat /etc/services | awk '/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ && /175/ {print $0}' - vmnet 175/tcp # VMNET - ``` - - ```bash - Shell > cat /etc/services | awk '/[^0-9a-zA-Z]9[1-9]{2}\/tcp/ || /91{2}\/tcp/ {print $0}' - telnets 992/tcp - imaps 993/tcp # IMAP over SSL - pop3s 995/tcp # POP-3 over SSL - mtp 1911/tcp # - rndc 953/tcp # rndc control sockets (BIND 9) - xact-backup 911/tcp # xact-backup - apex-mesh 912/tcp # APEX relay-relay service - apex-edge 913/tcp # APEX endpoint-relay service - ftps-data 989/tcp # ftp protocol, data, over TLS/SSL - nas 991/tcp # Netnews Administration System - vsinet 996/tcp # vsinet - maitrd 997/tcp # - busboy 998/tcp # - garcon 999/tcp # - #puprouter 999/tcp # - blockade 2911/tcp # Blockade - prnstatus 3911/tcp # Printer Status Port - cpdlc 5911/tcp # Controller Pilot Data Link Communication - manyone-xml 8911/tcp # manyone-xml - sype-transport 9911/tcp # SYPECom Transport Protocol - ``` - - ```bash - Shell > cat /etc/services | awk '!/(tcp)|(udp)/ {print $0}' - discard 9/sctp # Discard - discard 9/dccp # Discard SC:DISC - ftp-data 20/sctp # FTP - ftp 21/sctp # FTP - ssh 22/sctp # SSH - exp1 1021/sctp # RFC3692-style Experiment 1 (*) [RFC4727] - exp1 1021/dccp # RFC3692-style Experiment 1 (*) [RFC4727] - exp2 1022/sctp # RFC3692-style Experiment 2 (*) [RFC4727] - exp2 1022/dccp # RFC3692-style Experiment 2 (*) [RFC4727] - ltp-deepspace 1113/dccp # Licklider Transmission Protocol - cisco-ipsla 1167/sctp # Cisco IP SLAs Control Protocol - rcip-itu 2225/sctp # Resource Connection Initiation Protocol - m2ua 2904/sctp # M2UA - m3ua 2905/sctp # M3UA - megaco-h248 2944/sctp # Megaco-H.248 text - ... - ``` + logical AND: && + logical OR: || + reverse: ! + + ```bash + Shell > cat /etc/services | awk '/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ && /175/ {print $0}' + vmnet 175/tcp # VMNET + ``` + + ```bash + Shell > cat /etc/services | awk '/[^0-9a-zA-Z]9[1-9]{2}\/tcp/ || /91{2}\/tcp/ {print $0}' + telnets 992/tcp + imaps 993/tcp # IMAP over SSL + pop3s 995/tcp # POP-3 over SSL + mtp 1911/tcp # + rndc 953/tcp # rndc control sockets (BIND 9) + xact-backup 911/tcp # xact-backup + apex-mesh 912/tcp # APEX relay-relay service + apex-edge 913/tcp # APEX endpoint-relay service + ftps-data 989/tcp # ftp protocol, data, over TLS/SSL + nas 991/tcp # Netnews Administration System + vsinet 996/tcp # vsinet + maitrd 997/tcp # + busboy 998/tcp # + garcon 999/tcp # + #puprouter 999/tcp # + blockade 2911/tcp # Blockade + prnstatus 3911/tcp # Printer Status Port + cpdlc 5911/tcp # Controller Pilot Data Link Communication + manyone-xml 8911/tcp # manyone-xml + sype-transport 9911/tcp # SYPECom Transport Protocol + ``` + + ```bash + Shell > cat /etc/services | awk '!/(tcp)|(udp)/ {print $0}' + discard 9/sctp # Discard + discard 9/dccp # Discard SC:DISC + ftp-data 20/sctp # FTP + ftp 21/sctp # FTP + ssh 22/sctp # SSH + exp1 1021/sctp # RFC3692-style Experiment 1 (*) [RFC4727] + exp1 1021/dccp # RFC3692-style Experiment 1 (*) [RFC4727] + exp2 1022/sctp # RFC3692-style Experiment 2 (*) [RFC4727] + exp2 1022/dccp # RFC3692-style Experiment 2 (*) [RFC4727] + ltp-deepspace 1113/dccp # Licklider Transmission Protocol + cisco-ipsla 1167/sctp # Cisco IP SLAs Control Protocol + rcip-itu 2225/sctp # Resource Connection Initiation Protocol + m2ua 2904/sctp # M2UA + m3ua 2905/sctp # M3UA + megaco-h248 2944/sctp # Megaco-H.248 text + ... + ``` 9. Individua le righe consecutive per stringa e le stampa - ```bash - Shell > cat /etc/services | awk '/^ntp/,/^netbios/ {print $0}' - ntp 123/tcp - ntp 123/udp # Network Time Protocol - netbios-ns 137/tcp # NETBIOS Name Service - ``` + ```bash + Shell > cat /etc/services | awk '/^ntp/,/^netbios/ {print $0}' + ntp 123/tcp + ntp 123/udp # Network Time Protocol + netbios-ns 137/tcp # NETBIOS Name Service + ``` - !!! info "Informazione" + !!! info "Informazione" - ``` - Intervallo iniziale: interrompe l'abbinamento quando la prima corrispondenza è riscontrata. - Intervallo finale: interrompe l'abbinamento quando la prima corrispondenza è riscontrata. - ``` + ``` + Intervallo iniziale: interrompe l'abbinamento quando la prima corrispondenza è riscontrata. + Intervallo finale: interrompe l'abbinamento quando la prima corrispondenza è riscontrata. + ``` ## Variabile incorporata {#VARIABLES} @@ -499,311 +499,311 @@ ID Name 1. FS e OFS - ```bash - Shell > cat /etc/passwd | awk 'BEGIN{FS=":"}{print $1}' - root - bin - daemon - adm - lp - sync - ``` - - Si può anche usare l'opzione -v per assegnare valori alle variabili. - - ```bash - Shell > cat /etc/passwd | awk -v FS=":" '{print $1}' - root - bin - daemon - adm - lp - sync - ``` - - Il delimitatore di output predefinito è uno spazio quando si usano le virgole per fare riferimento a più campi. È tuttavia possibile specificare separatamente il delimitatore di uscita. - - ```bash - Shell > cat /etc/passwd | awk 'BEGIN{FS=":"}{print $1,$2}' - root x - bin x - daemon x - adm x - lp x - ``` - - ```bash - Shell > cat /etc/passwd | awk 'BEGIN{FS=":";OFS="\t"}{print $1,$2}' - # or - Shell > cat /etc/passwd | awk -v FS=":" -v OFS="\t" '{print $1,$2}' - root x - bin x - daemon x - adm x - lp x - ``` + ```bash + Shell > cat /etc/passwd | awk 'BEGIN{FS=":"}{print $1}' + root + bin + daemon + adm + lp + sync + ``` -2. RS e ORS + Si può anche usare l'opzione -v per assegnare valori alle variabili. - Per impostazione predefinita, `awk` utilizza i caratteri di newline per distinguere ogni record di riga + ```bash + Shell > cat /etc/passwd | awk -v FS=":" '{print $1}' + root + bin + daemon + adm + lp + sync + ``` - ```bash - Shell > echo -e "https://example.com/books/index.html\ntitle//tcp" - https://example.com/books/index.html - title//tcp + Il delimitatore di output predefinito è uno spazio quando si usano le virgole per fare riferimento a più campi. È tuttavia possibile specificare separatamente il delimitatore di uscita. - Shell > echo -e "https://example.com/books/index.html\ntitle//tcp" | awk 'BEGIN{RS="\/\/";ORS="%%"}{print $0}' - awk: cmd. line:1: warning: escape sequence `\/' treated as plain `/' - https:%%example.com/books/index.html - title%%tcp - %% ← Why? Because "print" - ``` + ```bash + Shell > cat /etc/passwd | awk 'BEGIN{FS=":"}{print $1,$2}' + root x + bin x + daemon x + adm x + lp x + ``` + + ```bash + Shell > cat /etc/passwd | awk 'BEGIN{FS=":";OFS="\t"}{print $1,$2}' + # or + Shell > cat /etc/passwd | awk -v FS=":" -v OFS="\t" '{print $1,$2}' + root x + bin x + daemon x + adm x + lp x + ``` + +2. RS e ORS + + Per impostazione predefinita, `awk` utilizza i caratteri di newline per distinguere ogni record di riga + + ```bash + Shell > echo -e "https://example.com/books/index.html\ntitle//tcp" + https://example.com/books/index.html + title//tcp + + Shell > echo -e "https://example.com/books/index.html\ntitle//tcp" | awk 'BEGIN{RS="\/\/";ORS="%%"}{print $0}' + awk: cmd. line:1: warning: escape sequence `\/' treated as plain `/' + https:%%example.com/books/index.html + title%%tcp + %% ← Why? Because "print" + ``` 3. NF - Conta il numero di campi per riga nel testo corrente - - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {print NF}' - 7 - 7 - 7 - 7 - 7 - ``` - - Stampa il quinto campo - - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {print $(NF-2)}' - root - bin - daemon - adm - lp - ``` - - Stampa l'ultimo campo - - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {print $NF}' - /bin/bash - /sbin/nologin - /sbin/nologin - /sbin/nologin - /sbin/nologin - ``` - - Escludere gli ultimi due campi - - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {$NF=" ";$(NF-1)=" ";print $0}' - root x 0 0 root - bin x 1 1 bin - daemon x 2 2 daemon - adm x 3 4 adm - lp x 4 7 lp - ``` - - Escludere il primo campo - - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {$1=" ";print $0}' | sed -r 's/(^ )//g' - x 0 0 root /root /bin/bash - x 1 1 bin /bin /sbin/nologin - x 2 2 daemon /sbin /sbin/nologin - x 3 4 adm /var/adm /sbin/nologin - x 4 7 lp /var/spool/lpd /sbin/nologin - ``` + Conta il numero di campi per riga nel testo corrente + + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {print NF}' + 7 + 7 + 7 + 7 + 7 + ``` + + Stampa il quinto campo + + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {print $(NF-2)}' + root + bin + daemon + adm + lp + ``` + + Stampa l'ultimo campo + + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {print $NF}' + /bin/bash + /sbin/nologin + /sbin/nologin + /sbin/nologin + /sbin/nologin + ``` + + Escludere gli ultimi due campi + + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {$NF=" ";$(NF-1)=" ";print $0}' + root x 0 0 root + bin x 1 1 bin + daemon x 2 2 daemon + adm x 3 4 adm + lp x 4 7 lp + ``` + + Escludere il primo campo + + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{RS="\n";ORS="\n"} {$1=" ";print $0}' | sed -r 's/(^ )//g' + x 0 0 root /root /bin/bash + x 1 1 bin /bin /sbin/nologin + x 2 2 daemon /sbin /sbin/nologin + x 3 4 adm /var/adm /sbin/nologin + x 4 7 lp /var/spool/lpd /sbin/nologin + ``` 4. NR e FNR - ```bash - Shell > tail -n 5 /etc/services | awk '{print NR,$0}' - 1 axio-disc 35100/udp # Axiomatic discovery protocol - 2 pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - 3 cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - 4 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - 5 spremotetablet 46998/tcp # Capture handwritten signatures - ``` - - Stampa il numero totale di righe del contenuto del file - - ```bash - Shell > cat /etc/services | awk 'END{print NR}' - 11473 - ``` - - Stampa il contenuto della riga 200 - - ```bash - Shell > cat /etc/services | awk 'NR==200' - microsoft-ds 445/tcp - ``` - - Stampa il secondo campo alla riga 200 - - ```bash - Shell > cat /etc/services | awk 'BEGIN{RS="\n";ORS="\n"} NR==200 {print $2}' - 445/tcp - ``` - - Stampa di contenuti entro un intervallo specifico - - ```bash - Shell > cat /etc/services | awk 'BEGIN{RS="\n";ORS="\n"} NR<=10 {print NR,$0}' - 1 # /etc/services: - 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ - 3 # - 4 # Network services, Internet style - 5 # IANA services version: last updated 2016-07-08 - 6 # - 7 # Note that it is presently the policy of IANA to assign a single well-known - 8 # port number for both TCP and UDP; hence, most entries here have two entries - 9 # even if the protocol doesn't support UDP operations. - 10 # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports - ``` - - Confronto tra NR e FNR - - ```bash - Shell > head -n 3 /etc/services > /tmp/a.txt - - Shell > cat /tmp/a.txt - # /etc/services: - # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ - # - - Shell > cat /etc/resolv.conf - # Generated by NetworkManager - nameserver 8.8.8.8 - nameserver 114.114.114.114 - - Shell > awk '{print NR,$0}' /tmp/a.txt /etc/resolv.conf - 1 # /etc/services: - 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ - 3 # - 4 # Generated by NetworkManager - 5 nameserver 8.8.8.8 - 6 nameserver 114.114.114.114 - - Shell > awk '{print FNR,$0}' /tmp/a.txt /etc/resolv.conf - 1 # /etc/services: - 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ - 3 # - 1 # Generated by NetworkManager - 2 nameserver 8.8.8.8 - 3 nameserver 114.114.114.114 - ``` + ```bash + Shell > tail -n 5 /etc/services | awk '{print NR,$0}' + 1 axio-disc 35100/udp # Axiomatic discovery protocol + 2 pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + 3 cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + 4 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + 5 spremotetablet 46998/tcp # Capture handwritten signatures + ``` + + Stampa il numero totale di righe del contenuto del file + + ```bash + Shell > cat /etc/services | awk 'END{print NR}' + 11473 + ``` + + Stampa il contenuto della riga 200 + + ```bash + Shell > cat /etc/services | awk 'NR==200' + microsoft-ds 445/tcp + ``` + + Stampa il secondo campo alla riga 200 + + ```bash + Shell > cat /etc/services | awk 'BEGIN{RS="\n";ORS="\n"} NR==200 {print $2}' + 445/tcp + ``` + + Stampa di contenuti entro un intervallo specifico + + ```bash + Shell > cat /etc/services | awk 'BEGIN{RS="\n";ORS="\n"} NR<=10 {print NR,$0}' + 1 # /etc/services: + 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ + 3 # + 4 # Network services, Internet style + 5 # IANA services version: last updated 2016-07-08 + 6 # + 7 # Note that it is presently the policy of IANA to assign a single well-known + 8 # port number for both TCP and UDP; hence, most entries here have two entries + 9 # even if the protocol doesn't support UDP operations. + 10 # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports + ``` + + Confronto tra NR e FNR + + ```bash + Shell > head -n 3 /etc/services > /tmp/a.txt + + Shell > cat /tmp/a.txt + # /etc/services: + # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ + # + + Shell > cat /etc/resolv.conf + # Generated by NetworkManager + nameserver 8.8.8.8 + nameserver 114.114.114.114 + + Shell > awk '{print NR,$0}' /tmp/a.txt /etc/resolv.conf + 1 # /etc/services: + 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ + 3 # + 4 # Generated by NetworkManager + 5 nameserver 8.8.8.8 + 6 nameserver 114.114.114.114 + + Shell > awk '{print FNR,$0}' /tmp/a.txt /etc/resolv.conf + 1 # /etc/services: + 2 # $Id: services,v 1.49 2017/08/18 12:43:23 ovasik Exp $ + 3 # + 1 # Generated by NetworkManager + 2 nameserver 8.8.8.8 + 3 nameserver 114.114.114.114 + ``` 5. ARGC e ARGV - ```bash - Shell > awk 'BEGIN{print ARGC}' log dump long - 4 - Shell > awk 'BEGIN{print ARGV[0]}' log dump long - awk - Shell > awk 'BEGIN{print ARGV[1]}' log dump long - log - Shell > awk 'BEGIN{print ARGV[2]}' log dump long - dump - ``` + ```bash + Shell > awk 'BEGIN{print ARGC}' log dump long + 4 + Shell > awk 'BEGIN{print ARGV[0]}' log dump long + awk + Shell > awk 'BEGIN{print ARGV[1]}' log dump long + log + Shell > awk 'BEGIN{print ARGV[2]}' log dump long + dump + ``` 6. ARGIND - Questa variabile è usata principalmente per determinare il file su cui sta lavorando il programma `awk`. + Questa variabile è usata principalmente per determinare il file su cui sta lavorando il programma `awk`. - ```bash - Shell > awk '{print ARGIND,$0}' /etc/hostname /etc/resolv.conf - 1 Master - 2 # Generated by NetworkManager - 2 nameserver 8.8.8.8 - 2 nameserver 114.114.114.114 - ``` + ```bash + Shell > awk '{print ARGIND,$0}' /etc/hostname /etc/resolv.conf + 1 Master + 2 # Generated by NetworkManager + 2 nameserver 8.8.8.8 + 2 nameserver 114.114.114.114 + ``` 7. ENVIRON - Nei programmi `awk` è possibile fare riferimento a sistemi operativi o a variabili definite dall'utente. - - ```bash - Shell > echo ${SSH_CLIENT} - 192.168.100.2 6969 22 - - Shell > awk 'BEGIN{print ENVIRON["SSH_CLIENT"]}' - 192.168.100.2 6969 22 + Nei programmi `awk` è possibile fare riferimento a sistemi operativi o a variabili definite dall'utente. - Shell > export a=123 - Shell > env | grep -w a - a=123 - Shell > awk 'BEGIN{print ENVIRON["a"]}' - 123 - Shell > unset a - ``` + ```bash + Shell > echo ${SSH_CLIENT} + 192.168.100.2 6969 22 + + Shell > awk 'BEGIN{print ENVIRON["SSH_CLIENT"]}' + 192.168.100.2 6969 22 + + Shell > export a=123 + Shell > env | grep -w a + a=123 + Shell > awk 'BEGIN{print ENVIRON["a"]}' + 123 + Shell > unset a + ``` 8. FILENAME - ```bash - Shell > awk 'BEGIN{RS="\n";ORS="\n"} NR=FNR {print ARGIND,FILENAME"---"$0}' /etc/hostname /etc/resolv.conf /etc/rocky-release - 1 /etc/hostname---Master - 2 /etc/resolv.conf---# Generated by NetworkManager - 2 /etc/resolv.conf---nameserver 8.8.8.8 - 2 /etc/resolv.conf---nameserver 114.114.114.114 - 3 /etc/rocky-release---Rocky Linux release 8.9 (Green Obsidian) - ``` + ```bash + Shell > awk 'BEGIN{RS="\n";ORS="\n"} NR=FNR {print ARGIND,FILENAME"---"$0}' /etc/hostname /etc/resolv.conf /etc/rocky-release + 1 /etc/hostname---Master + 2 /etc/resolv.conf---# Generated by NetworkManager + 2 /etc/resolv.conf---nameserver 8.8.8.8 + 2 /etc/resolv.conf---nameserver 114.114.114.114 + 3 /etc/rocky-release---Rocky Linux release 8.9 (Green Obsidian) + ``` 9. IGNORECASE - Questa variabile è utile se si vogliono usare le espressioni regolari in `awk` e ignorare il caso. - - ```bash - Shell > awk 'BEGIN{IGNORECASE=1;RS="\n";ORS="\n"} /^(SSH)|^(ftp)/ {print $0}' /etc/services - ftp-data 20/tcp - ftp-data 20/udp - ftp 21/tcp - ftp 21/udp fsp fspd - ssh 22/tcp # The Secure Shell (SSH) Protocol - ssh 22/udp # The Secure Shell (SSH) Protocol - ftp-data 20/sctp # FTP - ftp 21/sctp # FTP - ssh 22/sctp # SSH - ftp-agent 574/tcp # FTP Software Agent System - ftp-agent 574/udp # FTP Software Agent System - sshell 614/tcp # SSLshell - sshell 614/udp # SSLshell - ftps-data 989/tcp # ftp protocol, data, over TLS/SSL - ftps-data 989/udp # ftp protocol, data, over TLS/SSL - ftps 990/tcp # ftp protocol, control, over TLS/SSL - ftps 990/udp # ftp protocol, control, over TLS/SSL - ssh-mgmt 17235/tcp # SSH Tectia Manager - ssh-mgmt 17235/udp # SSH Tectia Manager - ``` - - ```bash - Shell > awk 'BEGIN{IGNORECASE=1;RS="\n";ORS="\n"} /^(SMTP)\s/,/^(TFTP)\s/ {print $0}' /etc/services - smtp 25/tcp mail - smtp 25/udp mail - time 37/tcp timserver - time 37/udp timserver - rlp 39/tcp resource # resource location - rlp 39/udp resource # resource location - nameserver 42/tcp name # IEN 116 - nameserver 42/udp name # IEN 116 - nicname 43/tcp whois - nicname 43/udp whois - tacacs 49/tcp # Login Host Protocol (TACACS) - tacacs 49/udp # Login Host Protocol (TACACS) - re-mail-ck 50/tcp # Remote Mail Checking Protocol - re-mail-ck 50/udp # Remote Mail Checking Protocol - domain 53/tcp # name-domain server - domain 53/udp - whois++ 63/tcp whoispp - whois++ 63/udp whoispp - bootps 67/tcp # BOOTP server - bootps 67/udp - bootpc 68/tcp dhcpc # BOOTP client - bootpc 68/udp dhcpc - tftp 69/tcp - ``` + Questa variabile è utile se si vogliono usare le espressioni regolari in `awk` e ignorare il caso. + + ```bash + Shell > awk 'BEGIN{IGNORECASE=1;RS="\n";ORS="\n"} /^(SSH)|^(ftp)/ {print $0}' /etc/services + ftp-data 20/tcp + ftp-data 20/udp + ftp 21/tcp + ftp 21/udp fsp fspd + ssh 22/tcp # The Secure Shell (SSH) Protocol + ssh 22/udp # The Secure Shell (SSH) Protocol + ftp-data 20/sctp # FTP + ftp 21/sctp # FTP + ssh 22/sctp # SSH + ftp-agent 574/tcp # FTP Software Agent System + ftp-agent 574/udp # FTP Software Agent System + sshell 614/tcp # SSLshell + sshell 614/udp # SSLshell + ftps-data 989/tcp # ftp protocol, data, over TLS/SSL + ftps-data 989/udp # ftp protocol, data, over TLS/SSL + ftps 990/tcp # ftp protocol, control, over TLS/SSL + ftps 990/udp # ftp protocol, control, over TLS/SSL + ssh-mgmt 17235/tcp # SSH Tectia Manager + ssh-mgmt 17235/udp # SSH Tectia Manager + ``` + + ```bash + Shell > awk 'BEGIN{IGNORECASE=1;RS="\n";ORS="\n"} /^(SMTP)\s/,/^(TFTP)\s/ {print $0}' /etc/services + smtp 25/tcp mail + smtp 25/udp mail + time 37/tcp timserver + time 37/udp timserver + rlp 39/tcp resource # resource location + rlp 39/udp resource # resource location + nameserver 42/tcp name # IEN 116 + nameserver 42/udp name # IEN 116 + nicname 43/tcp whois + nicname 43/udp whois + tacacs 49/tcp # Login Host Protocol (TACACS) + tacacs 49/udp # Login Host Protocol (TACACS) + re-mail-ck 50/tcp # Remote Mail Checking Protocol + re-mail-ck 50/udp # Remote Mail Checking Protocol + domain 53/tcp # name-domain server + domain 53/udp + whois++ 63/tcp whoispp + whois++ 63/udp whoispp + bootps 67/tcp # BOOTP server + bootps 67/udp + bootpc 68/tcp dhcpc # BOOTP client + bootpc 68/udp dhcpc + tftp 69/tcp + ``` ## Operatore @@ -847,336 +847,336 @@ False 1. Punto esclamativo - Stampa le righe dispari: - - ```bash - Shell > seq 1 10 | awk 'i=!i {print $0}' - 1 - 3 - 5 - 7 - 9 - ``` - - !!! domanda - - ``` - **Perché?** - **Leggi la prima riga**: Perché "i" non ha un valore assegnato, quindi "i=!i" indica TRUE. - **Leggi la seconda riga**: A questo punto, "i=!i" indica FALSE. - E così via, la riga stampata finale è un numero dispari. - ``` - - Stampare le righe pari: - - ```bash - Shell > seq 1 10 | awk '!(i=!i)' - # or - Shell > seq 1 10 | awk '!(i=!i) {print $0}' - 2 - 4 - 6 - 8 - 10 - ``` - - !!! note "Nota" - - ``` - Come si può vedere, a volte si può ignorare la sintassi della parte "action", che per impostazione predefinita è equivalente a "{print $0}". - ``` + Stampa le righe dispari: + + ```bash + Shell > seq 1 10 | awk 'i=!i {print $0}' + 1 + 3 + 5 + 7 + 9 + ``` + + !!! domanda + + ``` + **Perché?** + **Leggi la prima riga**: Perché "i" non ha un valore assegnato, quindi "i=!i" indica TRUE. + **Leggi la seconda riga**: A questo punto, "i=!i" indica FALSE. + E così via, la riga stampata finale è un numero dispari. + ``` + + Stampare le righe pari: + + ```bash + Shell > seq 1 10 | awk '!(i=!i)' + # or + Shell > seq 1 10 | awk '!(i=!i) {print $0}' + 2 + 4 + 6 + 8 + 10 + ``` + + !!! note "Nota" + + ``` + Come si può vedere, a volte si può ignorare la sintassi della parte "action", che per impostazione predefinita è equivalente a "{print $0}". + ``` 2. Inversione - ```bash - Shell > cat /etc/services | awk '!/(tcp)|(udp)|(^#)|(^$)/ {print $0}' - http 80/sctp # HyperText Transfer Protocol - bgp 179/sctp - https 443/sctp # http protocol over TLS/SSL - h323hostcall 1720/sctp # H.323 Call Control - nfs 2049/sctp nfsd shilp # Network File System - rtmp 1/ddp # Routing Table Maintenance Protocol - nbp 2/ddp # Name Binding Protocol - echo 4/ddp # AppleTalk Echo Protocol - zip 6/ddp # Zone Information Protocol - discard 9/sctp # Discard - discard 9/dccp # Discard SC:DISC - ... - ``` + ```bash + Shell > cat /etc/services | awk '!/(tcp)|(udp)|(^#)|(^$)/ {print $0}' + http 80/sctp # HyperText Transfer Protocol + bgp 179/sctp + https 443/sctp # http protocol over TLS/SSL + h323hostcall 1720/sctp # H.323 Call Control + nfs 2049/sctp nfsd shilp # Network File System + rtmp 1/ddp # Routing Table Maintenance Protocol + nbp 2/ddp # Name Binding Protocol + echo 4/ddp # AppleTalk Echo Protocol + zip 6/ddp # Zone Information Protocol + discard 9/sctp # Discard + discard 9/dccp # Discard SC:DISC + ... + ``` 3. Operazioni di base in matematica - ```bash - Shell > echo -e "36\n40\n50" | awk '{print $0+1}' - 37 - 41 - - Shell > echo -e "30\t5\t8\n11\t20\t34" - 30 5 8 - 11 20 34 - Shell > echo -e "30\t5\t8\n11\t20\t34" | awk '{print $2*2+1}' - 11 - 41 - ``` - - Può essere utilizzato anche nel "modello": - - ```bash - Shell > cat -n /etc/services | awk '/^[1-9]*/ && $1%2==0 {print $0}' - ... - 24 tcpmux 1/udp # TCP port service multiplexer - 26 rje 5/udp # Remote Job Entry - 28 echo 7/udp - 30 discard 9/udp sink null - 32 systat 11/udp users - 34 daytime 13/udp - 36 qotd 17/udp quote - ... - - Shell > cat -n /etc/services | awk '/^[1-9]*/ && $1%2!=0 {print $0}' - ... - 23 tcpmux 1/tcp # TCP port service multiplexer - 25 rje 5/tcp # Remote Job Entry - 27 echo 7/tcp - 29 discard 9/tcp sink null - 31 systat 11/tcp users - ... - ``` + ```bash + Shell > echo -e "36\n40\n50" | awk '{print $0+1}' + 37 + 41 + + Shell > echo -e "30\t5\t8\n11\t20\t34" + 30 5 8 + 11 20 34 + Shell > echo -e "30\t5\t8\n11\t20\t34" | awk '{print $2*2+1}' + 11 + 41 + ``` + + Può essere utilizzato anche nel "modello": + + ```bash + Shell > cat -n /etc/services | awk '/^[1-9]*/ && $1%2==0 {print $0}' + ... + 24 tcpmux 1/udp # TCP port service multiplexer + 26 rje 5/udp # Remote Job Entry + 28 echo 7/udp + 30 discard 9/udp sink null + 32 systat 11/udp users + 34 daytime 13/udp + 36 qotd 17/udp quote + ... + + Shell > cat -n /etc/services | awk '/^[1-9]*/ && $1%2!=0 {print $0}' + ... + 23 tcpmux 1/tcp # TCP port service multiplexer + 25 rje 5/tcp # Remote Job Entry + 27 echo 7/tcp + 29 discard 9/tcp sink null + 31 systat 11/tcp users + ... + ``` 4. Simbolo pipe - È possibile utilizzare il comando bash nel programma awk, ad esempio: + È possibile utilizzare il comando bash nel programma awk, ad esempio: - ```bash - Shell > echo -e "6\n3\n9\n8" | awk '{print $0 | "sort"}' - 3 - 6 - 8 - 9 - ``` + ```bash + Shell > echo -e "6\n3\n9\n8" | awk '{print $0 | "sort"}' + 3 + 6 + 8 + 9 + ``` - !!! info "Informazione" + !!! info "Informazione" - ``` - Fate attenzione! È necessario utilizzare le doppie virgolette per includere il comando. - ``` + ``` + Fate attenzione! È necessario utilizzare le doppie virgolette per includere il comando. + ``` 5. Espressione regolare - [Qui](#RE), vengono trattati esempi di base di espressioni regolari. È possibile utilizzare le espressioni regolari sui record di riga. - - ```bash - Shell > cat /etc/services | awk '/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ {print $0}' + [Qui](#RE), vengono trattati esempi di base di espressioni regolari. È possibile utilizzare le espressioni regolari sui record di riga. - # Equivalente a: + ```bash + Shell > cat /etc/services | awk '/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ {print $0}' - Shell > cat /etc/services | awk '$0~/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ {print $0}' - ``` + # Equivalente a: - Se il file contiene una grande quantità di testo, è possibile utilizzare le espressioni regolari anche per i campi, per migliorare l'efficienza dell'elaborazione. L'esempio di utilizzo è il seguente: + Shell > cat /etc/services | awk '$0~/[^0-9a-zA-Z]1[1-9]{2}\/tcp/ {print $0}' + ``` - ```bash - Shell > cat /etc/services | awk '$0~/^(ssh)/ && $2~/tcp/ {print $0}' - ssh 22/tcp # The Secure Shell (SSH) Protocol - sshell 614/tcp # SSLshell - ssh-mgmt 17235/tcp # SSH Tectia Manager + Se il file contiene una grande quantità di testo, è possibile utilizzare le espressioni regolari anche per i campi, per migliorare l'efficienza dell'elaborazione. L'esempio di utilizzo è il seguente: - Shell > cat /etc/services | grep -v -E "(^#)|(^$)" | awk '$2!~/(tcp)|(udp)/ {print $0}' - http 80/sctp # HyperText Transfer Protocol - bgp 179/sctp - https 443/sctp # http protocol over TLS/SSL - h323hostcall 1720/sctp # H.323 Call Control - nfs 2049/sctp nfsd shilp # Network File System - rtmp 1/ddp # Routing Table Maintenance Protocol - nbp 2/ddp # Name Binding Protocol - ... - ``` + ```bash + Shell > cat /etc/services | awk '$0~/^(ssh)/ && $2~/tcp/ {print $0}' + ssh 22/tcp # The Secure Shell (SSH) Protocol + sshell 614/tcp # SSLshell + ssh-mgmt 17235/tcp # SSH Tectia Manager + + Shell > cat /etc/services | grep -v -E "(^#)|(^$)" | awk '$2!~/(tcp)|(udp)/ {print $0}' + http 80/sctp # HyperText Transfer Protocol + bgp 179/sctp + https 443/sctp # http protocol over TLS/SSL + h323hostcall 1720/sctp # H.323 Call Control + nfs 2049/sctp nfsd shilp # Network File System + rtmp 1/ddp # Routing Table Maintenance Protocol + nbp 2/ddp # Name Binding Protocol + ... + ``` ## Controllo del flusso 1. Istruzione **if** - Il formato della sintassi di base è: `dichiarazione if (condizione) [ dichiarazione else ]` - - Esempio di utilizzo di un ramo singolo di un'istruzione if: - - ```bash - Shell > cat /etc/services | awk '{if(NR==110) print $0}' - pop3 110/udp pop-3 - ``` - - La condizione viene determinata come espressione regolare: - - ```bash - Shell > cat /etc/services | awk '{if(/^(ftp)\s|^(ssh)\s/) print $0}' - ftp 21/tcp - ftp 21/udp fsp fspd - ssh 22/tcp # The Secure Shell (SSH) Protocol - ssh 22/udp # The Secure Shell (SSH) Protocol - ftp 21/sctp # FTP - ssh 22/sctp # SSH - ``` - - Ramo doppio: - - ```bash - Shell > seq 1 10 | awk '{if($0==10) print $0 ; else print "False"}' - False - False - False - False - False - False - False - False - False - 10 - ``` - - Rami multipli: - - ```bash - Shell > cat /etc/services | awk '{ \ - if($1~/netbios/) - {print $0} - else if($2~/175/) - {print "175"} - else if($2~/137/) - {print "137"} - else {print "no"} - }' - ``` + Il formato della sintassi di base è: `dichiarazione if (condizione) [ dichiarazione else ]` + + Esempio di utilizzo di un ramo singolo di un'istruzione if: + + ```bash + Shell > cat /etc/services | awk '{if(NR==110) print $0}' + pop3 110/udp pop-3 + ``` + + La condizione viene determinata come espressione regolare: + + ```bash + Shell > cat /etc/services | awk '{if(/^(ftp)\s|^(ssh)\s/) print $0}' + ftp 21/tcp + ftp 21/udp fsp fspd + ssh 22/tcp # The Secure Shell (SSH) Protocol + ssh 22/udp # The Secure Shell (SSH) Protocol + ftp 21/sctp # FTP + ssh 22/sctp # SSH + ``` + + Ramo doppio: + + ```bash + Shell > seq 1 10 | awk '{if($0==10) print $0 ; else print "False"}' + False + False + False + False + False + False + False + False + False + 10 + ``` + + Rami multipli: + + ```bash + Shell > cat /etc/services | awk '{ \ + if($1~/netbios/) + {print $0} + else if($2~/175/) + {print "175"} + else if($2~/137/) + {print "137"} + else {print "no"} + }' + ``` 2. Istruzione **while** - Il formato della sintassi di base è - `while (condizione) statement` - - Eseguire l'attraversamento e la stampa dei campi di tutti i record di riga. - - ```bash - Shell > tail -n 2 /etc/services - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > tail -n 2 /etc/services | awk '{ \ - i=1; - while(i<=NF){print $i;i++} - }' - - cloudcheck - 45514/tcp - # - ASSIA - CloudCheck - WiFi - Management - System - spremotetablet - 46998/tcp - # - Capture - handwritten - signatures - ``` + Il formato della sintassi di base è - `while (condizione) statement` + + Eseguire l'attraversamento e la stampa dei campi di tutti i record di riga. + + ```bash + Shell > tail -n 2 /etc/services + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > tail -n 2 /etc/services | awk '{ \ + i=1; + while(i<=NF){print $i;i++} + }' + + cloudcheck + 45514/tcp + # + ASSIA + CloudCheck + WiFi + Management + System + spremotetablet + 46998/tcp + # + Capture + handwritten + signatures + ``` 3. Istruzione **for** - Il formato della sintassi di base è - `for (expr1; expr2; expr3) dichiarazione` - - Eseguire l'attraversamento e la stampa dei campi di tutti i record di riga. - - ```bash - Shell > tail -n 2 /etc/services | awk '{ \ - for(i=1;i<=NF;i++) print $i - }' - ``` - - Stampa i campi di ogni riga di record in ordine inverso. - - ```bash - Shell > tail -n 2 /etc/services | awk '{ \ - for(i=NF;i>=1;i--) print $i - }' - - System - Management - WiFi - CloudCheck - ASSIA - # - 45514/tcp - cloudcheck - signatures - handwritten - Capture - # - 46998/tcp - spremotetablet - ``` - - Stampa ogni riga di record in direzione opposta. - - ```bash - Shell > tail -n 2 /etc/services | awk '{ \ - for(i=NF;i>=1;i--) {printf $i" "}; - print "" - }' - - System Management WiFi CloudCheck ASSIA # 45514/tcp cloudcheck - signatures handwritten Capture # 46998/tcp spremotetablet - ``` + Il formato della sintassi di base è - `for (expr1; expr2; expr3) dichiarazione` + + Eseguire l'attraversamento e la stampa dei campi di tutti i record di riga. + + ```bash + Shell > tail -n 2 /etc/services | awk '{ \ + for(i=1;i<=NF;i++) print $i + }' + ``` + + Stampa i campi di ogni riga di record in ordine inverso. + + ```bash + Shell > tail -n 2 /etc/services | awk '{ \ + for(i=NF;i>=1;i--) print $i + }' + + System + Management + WiFi + CloudCheck + ASSIA + # + 45514/tcp + cloudcheck + signatures + handwritten + Capture + # + 46998/tcp + spremotetablet + ``` + + Stampa ogni riga di record in direzione opposta. + + ```bash + Shell > tail -n 2 /etc/services | awk '{ \ + for(i=NF;i>=1;i--) {printf $i" "}; + print "" + }' + + System Management WiFi CloudCheck ASSIA # 45514/tcp cloudcheck + signatures handwritten Capture # 46998/tcp spremotetablet + ``` 4. Dichiarazione **break** e dichiarazione **continue**. - Il confronto tra i due è il seguente: - - ```bash - Shell > awk 'BEGIN{ \ - for(i=1;i<=10;i++) - { - if(i==3) {break}; - print i - } - }' - - 1 - 2 - ``` - - ```bash - Shell > awk 'BEGIN{ \ - for(i=1;i<=10;i++) - { - if(i==3) {continue}; - print i - } - }' - - 1 - 2 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - ``` + Il confronto tra i due è il seguente: + + ```bash + Shell > awk 'BEGIN{ \ + for(i=1;i<=10;i++) + { + if(i==3) {break}; + print i + } + }' + + 1 + 2 + ``` + + ```bash + Shell > awk 'BEGIN{ \ + for(i=1;i<=10;i++) + { + if(i==3) {continue}; + print i + } + }' + + 1 + 2 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + ``` 5. Istruzione **exit** - È possibile specificare un valore di ritorno nell'intervallo [0,255]. + È possibile specificare un valore di ritorno nell'intervallo [0,255]. - Il formato della sintassi di base è - `exit [espressione]` + Il formato della sintassi di base è - `exit [espressione]` - ```bash - Shell > seq 1 10 | awk '{ - if($0~/5/) exit "135" - }' + ```bash + Shell > seq 1 10 | awk '{ + if($0~/5/) exit "135" + }' - Shell > echo $? - 135 - ``` + Shell > echo $? + 135 + ``` ## Array @@ -1190,277 +1190,277 @@ Come la maggior parte dei linguaggi di programmazione, `awk` supporta anche gli 1. Array personalizzato - Formato - \`Nome_array[Indice]=Valore' + Formato - \`Nome_array[Indice]=Valore' - ```bash - Shell > awk 'BEGIN{a1[0]="test0" ; a1[1]="s1"; print a1[0]}' - test0 - ``` + ```bash + Shell > awk 'BEGIN{a1[0]="test0" ; a1[1]="s1"; print a1[0]}' + test0 + ``` - Ottiene la lunghezza dell'array: + Ottiene la lunghezza dell'array: - ```bash - Shell > awk 'BEGIN{name[-1]="jimcat8" ; name[3]="jack" ; print length(name)}' - 2 - ``` + ```bash + Shell > awk 'BEGIN{name[-1]="jimcat8" ; name[3]="jack" ; print length(name)}' + 2 + ``` - Memorizza tutti gli utenti GNU/Linux in un array: + Memorizza tutti gli utenti GNU/Linux in un array: - ```bash - Shell > cat /etc/passwd | awk -F ":" '{username[NR]=$1}END{print username[2]}' - bin - Shell > cat /etc/passwd | awk -F ":" '{username[NR]=$1}END{print username[1]}' - root - ``` + ```bash + Shell > cat /etc/passwd | awk -F ":" '{username[NR]=$1}END{print username[2]}' + bin + Shell > cat /etc/passwd | awk -F ":" '{username[NR]=$1}END{print username[1]}' + root + ``` - !!! info "Informazione" + !!! info "Informazione" - ```` - Il pedice numerico di un array `awk` può essere un intero positivo, un intero negativo, una stringa o 0, quindi il pedice numerico di un array `awk` non ha il concetto di valore iniziale. Non è la stessa cosa degli array in `bash`. + ```` + Il pedice numerico di un array `awk` può essere un intero positivo, un intero negativo, una stringa o 0, quindi il pedice numerico di un array `awk` non ha il concetto di valore iniziale. Non è la stessa cosa degli array in `bash`. - ```bash - Shell > arr1=(2 10 30 string1) - Shell > echo "${arr1[0]}" - 2 - Shell > unset arr1 - ``` - ```` + ```bash + Shell > arr1=(2 10 30 string1) + Shell > echo "${arr1[0]}" + 2 + Shell > unset arr1 + ``` + ```` 2. Eliminare l'array - Formato `delete Array_Name` + Formato `delete Array_Name` 3. Eliminare un elemento da un array - Formato `delete Array_Name[Index]` + Formato `delete Array_Name[Index]` 4. Array di attraversamento - È possibile utilizzare l'istruzione **for**, adatta ai casi in cui il pedice della matrice è sconosciuto: - - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" ' \ - { - username[NR]=$1 - } - END { - for(i in username) - print username[i],i - } - ' - - root 1 - bin 2 - daemon 3 - adm 4 - lp 5 - ``` - - Se il pedice di una matrice è regolare, è possibile utilizzare questa forma dell'istruzione **for**: - - ```bash - Shell > cat /etc/passwd | awk -F ":" ' \ - { - username[NR]=$1 - } - END{ - for(i=1;i<=NR;i++) - print username[i],i - } - ' - - root 1 - bin 2 - daemon 3 - adm 4 - lp 5 - sync 6 - shutdown 7 - halt 8 - ... - ``` + È possibile utilizzare l'istruzione **for**, adatta ai casi in cui il pedice della matrice è sconosciuto: + + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" ' \ + { + username[NR]=$1 + } + END { + for(i in username) + print username[i],i + } + ' + + root 1 + bin 2 + daemon 3 + adm 4 + lp 5 + ``` + + Se il pedice di una matrice è regolare, è possibile utilizzare questa forma dell'istruzione **for**: + + ```bash + Shell > cat /etc/passwd | awk -F ":" ' \ + { + username[NR]=$1 + } + END{ + for(i=1;i<=NR;i++) + print username[i],i + } + ' + + root 1 + bin 2 + daemon 3 + adm 4 + lp 5 + sync 6 + shutdown 7 + halt 8 + ... + ``` 5. Utilizzare "++" come pedice della matrice - ```bash - Shell > tail -n 5 /etc/group | awk -F ":" '\ - { - a[x++]=$1 - } - END{ - for(i in a) - print a[i],i - } - ' - - slocate 0 - unbound 1 - docker 2 - cgred 3 - redis 4 - ``` + ```bash + Shell > tail -n 5 /etc/group | awk -F ":" '\ + { + a[x++]=$1 + } + END{ + for(i in a) + print a[i],i + } + ' + + slocate 0 + unbound 1 + docker 2 + cgred 3 + redis 4 + ``` 6. Utilizzare un campo come pedice di un array - ```bash - Shell > tail -n 5 /etc/group | awk -F ":" '\ - { - a[$1]=$3 - } - END{ - for(i in a) - print a[i],i - } - ' - - 991 docker - 21 slocate - 989 redis - 992 unbound - 990 cgred - ``` + ```bash + Shell > tail -n 5 /etc/group | awk -F ":" '\ + { + a[$1]=$3 + } + END{ + for(i in a) + print a[i],i + } + ' + + 991 docker + 21 slocate + 989 redis + 992 unbound + 990 cgred + ``` 7. Conta il numero di occorrenze dello stesso campo - Conta il numero di occorrenze dello stesso indirizzo IPv4. Idea di base: - - - Utilizzare innanzitutto il comando `grep` per filtrare tutti gli indirizzi IPv4 - - Poi lo si consegna al programma `awk` per l'elaborazione + Conta il numero di occorrenze dello stesso indirizzo IPv4. Idea di base: - ```bash - Shell > cat /var/log/secure | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | awk ' \ - { - a[$1]++ - } - END{ - for(v in a) print a[v],v - } - ' + - Utilizzare innanzitutto il comando `grep` per filtrare tutti gli indirizzi IPv4 + - Poi lo si consegna al programma `awk` per l'elaborazione - 4 0.0.0.0 - 4 192.168.100.2 - ``` + ```bash + Shell > cat /var/log/secure | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | awk ' \ + { + a[$1]++ + } + END{ + for(v in a) print a[v],v + } + ' + + 4 0.0.0.0 + 4 192.168.100.2 + ``` - !!! info "Informazione" + !!! info "Informazione" - ``` - `a[$1]++` equivale a `a[$1]+=1` - ``` + ``` + `a[$1]++` equivale a `a[$1]+=1` + ``` - Conta il numero di occorrenze delle parole, indipendentemente dal caso. Idea di base: + Conta il numero di occorrenze delle parole, indipendentemente dal caso. Idea di base: - - Dividere tutti i campi in più righe di record - - Poi lo si consegna al programma `awk` per l'elaborazione + - Dividere tutti i campi in più righe di record + - Poi lo si consegna al programma `awk` per l'elaborazione - ```bash - Shell > cat /etc/services | awk -F " " '{for(i=1;i<=NF;i++) print $i}' + ```bash + Shell > cat /etc/services | awk -F " " '{for(i=1;i<=NF;i++) print $i}' - Shell > cat /etc/services | awk -F " " '{for(i=1;i<=NF;i++) print $i}' | awk '\ - BEGIN{IGNORECASE=1;OFS="\t"} /^netbios$/ || /^ftp$/ {a[$1]++} END{for(v in a) print a[v],v} - ' + Shell > cat /etc/services | awk -F " " '{for(i=1;i<=NF;i++) print $i}' | awk '\ + BEGIN{IGNORECASE=1;OFS="\t"} /^netbios$/ || /^ftp$/ {a[$1]++} END{for(v in a) print a[v],v} + ' - 3 NETBIOS - 18 FTP - 7 ftp + 3 NETBIOS + 18 FTP + 7 ftp - Shell > cat /etc/services | awk -F " " '{ for(i=1;i<=NF;i++) print $i }' | awk '\ - BEGIN{IGNORECASE=1;OFS="\t"} /^netbios$/ || /^ftp$/ {a[$1]++} END{for(v in a) \ - if(a[v]>=5) print a[v],v} - ' + Shell > cat /etc/services | awk -F " " '{ for(i=1;i<=NF;i++) print $i }' | awk '\ + BEGIN{IGNORECASE=1;OFS="\t"} /^netbios$/ || /^ftp$/ {a[$1]++} END{for(v in a) \ + if(a[v]>=5) print a[v],v} + ' - 18 FTP - 7 ftp - ``` + 18 FTP + 7 ftp + ``` - È possibile prima filtrare record di riga specifici e poi eseguire statistiche, ad esempio: + È possibile prima filtrare record di riga specifici e poi eseguire statistiche, ad esempio: - ```bash - Shell > ss -tulnp | awk -F " " '/tcp/ {a[$2]++} END{for(i in a) print a[i],i}' - 2 LISTEN - ``` + ```bash + Shell > ss -tulnp | awk -F " " '/tcp/ {a[$2]++} END{for(i in a) print a[i],i}' + 2 LISTEN + ``` 8. Stampa delle righe in base al numero di occorrenze di un campo specifico - ```bash - Shell > tail /etc/services - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > tail /etc/services | awk 'a[$1]++ {print $0}' - axio-disc 35100/udp # Axiomatic discovery protocol - ``` - - Inverso: - - ```bash - Shell > tail /etc/services | awk '!a[$1]++ {print $0}' - aigairserver 21221/tcp # Services for Air Server - ka-kdp 31016/udp # Kollective Agent Kollective Delivery - ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - edi_service 34567/udp # dhanalakshmi.org EDI Service - axio-disc 35100/tcp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - ``` + ```bash + Shell > tail /etc/services + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > tail /etc/services | awk 'a[$1]++ {print $0}' + axio-disc 35100/udp # Axiomatic discovery protocol + ``` + + Inverso: + + ```bash + Shell > tail /etc/services | awk '!a[$1]++ {print $0}' + aigairserver 21221/tcp # Services for Air Server + ka-kdp 31016/udp # Kollective Agent Kollective Delivery + ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + edi_service 34567/udp # dhanalakshmi.org EDI Service + axio-disc 35100/tcp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + ``` 9. Array multidimensionale - Il programma \`awk' non supporta gli array multidimensionali, ma il supporto per gli array multidimensionali è ottenibile attraverso la simulazione. Per impostazione predefinita, "\034" è il delimitatore per il pedice di una matrice multidimensionale. - - Tenere presente le seguenti differenze quando si utilizzano array multidimensionali: - - ```bash - Shell > awk 'BEGIN{ a["1,0"]=100 ; a[2,0]=200 ; a["3","0"]=300 ; for(i in a) print a[i],i }' - 200 20 - 300 30 - 100 1,0 - ``` - - Ridefinire il delimitatore: - - ```bash - Shell > awk 'BEGIN{ SUBSEP="----" ; a["1,0"]=100 ; a[2,0]=200 ; a["3","0"]=300 ; for(i in a) print a[i],i }' - 300 3----0 - 200 2----0 - 100 1,0 - ``` - - Riordina: - - ```bash - Shell > awk 'BEGIN{ SUBSEP="----" ; a["1,0"]=100 ; a[2,0]=200 ; a["3","0"]=300 ; for(i in a) print a[i],i | "sort" }' - 100 1,0 - 200 2----0 - 300 3----0 - ``` - - Contare il numero di volte in cui il campo appare: - - ```bash - Shell > cat c.txt - A 192.168.1.1 HTTP - B 192.168.1.2 HTTP - B 192.168.1.2 MYSQL - C 192.168.1.1 MYSQL - C 192.168.1.1 MQ - D 192.168.1.4 NGINX - - Shell > cat c.txt | awk 'BEGIN{SUBSEP="----"} {a[$1,$2]++} END{for(i in a) print a[i],i}' - 1 A----192.168.1.1 - 2 B----192.168.1.2 - 2 C----192.168.1.1 - 1 D----192.168.1.4 - ``` + Il programma \`awk' non supporta gli array multidimensionali, ma il supporto per gli array multidimensionali è ottenibile attraverso la simulazione. Per impostazione predefinita, "\034" è il delimitatore per il pedice di una matrice multidimensionale. + + Tenere presente le seguenti differenze quando si utilizzano array multidimensionali: + + ```bash + Shell > awk 'BEGIN{ a["1,0"]=100 ; a[2,0]=200 ; a["3","0"]=300 ; for(i in a) print a[i],i }' + 200 20 + 300 30 + 100 1,0 + ``` + + Ridefinire il delimitatore: + + ```bash + Shell > awk 'BEGIN{ SUBSEP="----" ; a["1,0"]=100 ; a[2,0]=200 ; a["3","0"]=300 ; for(i in a) print a[i],i }' + 300 3----0 + 200 2----0 + 100 1,0 + ``` + + Riordina: + + ```bash + Shell > awk 'BEGIN{ SUBSEP="----" ; a["1,0"]=100 ; a[2,0]=200 ; a["3","0"]=300 ; for(i in a) print a[i],i | "sort" }' + 100 1,0 + 200 2----0 + 300 3----0 + ``` + + Contare il numero di volte in cui il campo appare: + + ```bash + Shell > cat c.txt + A 192.168.1.1 HTTP + B 192.168.1.2 HTTP + B 192.168.1.2 MYSQL + C 192.168.1.1 MYSQL + C 192.168.1.1 MQ + D 192.168.1.4 NGINX + + Shell > cat c.txt | awk 'BEGIN{SUBSEP="----"} {a[$1,$2]++} END{for(i in a) print a[i],i}' + 1 A----192.168.1.1 + 2 B----192.168.1.2 + 2 C----192.168.1.1 + 1 D----192.168.1.4 + ``` ## Funzione integrata @@ -1487,331 +1487,331 @@ Come la maggior parte dei linguaggi di programmazione, `awk` supporta anche gli 1. Funzione **int** - ```bash - Shell > echo -e "qwer123\n123\nabc\n123abc123\n100.55\n-155.27" - qwer123 - 123 - abc - 123abc123 - 100.55 - -155.27 - - Shell > echo -e "qwer123\n123\nabc\n123abc123\n100.55\n-155.27" | awk '{print int($1)}' - 0 - 123 - 0 - 123 - 100 - -155 - ``` - - Come si può notare, la funzione int funziona solo per i numeri e, quando incontra una stringa, la converte a 0. Quando incontra una stringa che inizia con un numero, la tronca. + ```bash + Shell > echo -e "qwer123\n123\nabc\n123abc123\n100.55\n-155.27" + qwer123 + 123 + abc + 123abc123 + 100.55 + -155.27 + + Shell > echo -e "qwer123\n123\nabc\n123abc123\n100.55\n-155.27" | awk '{print int($1)}' + 0 + 123 + 0 + 123 + 100 + -155 + ``` + + Come si può notare, la funzione int funziona solo per i numeri e, quando incontra una stringa, la converte a 0. Quando incontra una stringa che inizia con un numero, la tronca. 2. Funzione **sqrt** - ```bash - Shell > awk 'BEGIN{print sqrt(9)}' - 3 - ``` + ```bash + Shell > awk 'BEGIN{print sqrt(9)}' + 3 + ``` 3. Funzioni **rand** e **srand** - L'esempio di utilizzo della funzione rand è il seguente: - - ```bash - Shell > awk 'BEGIN{print rand()}' - 0.924046 - Shell > awk 'BEGIN{print rand()}' - 0.924046 - Shell > awk 'BEGIN{print rand()}' - 0.924046 - ``` - - L'esempio di utilizzo della funzione srand è il seguente: - - ```bash - Shell > awk 'BEGIN{srand() ; print rand()}' - 0.975495 - Shell > awk 'BEGIN{srand() ; print rand()}' - 0.99187 - Shell > awk 'BEGIN{srand() ; print rand()}' - 0.069002 - ``` - - Genera un numero intero compreso nell'intervallo (0,100): - - ```bash - Shell > awk 'BEGIN{srand() ; print int(rand()*100)}' - 56 - Shell > awk 'BEGIN{srand() ; print int(rand()*100)}' - 33 - Shell > awk 'BEGIN{srand() ; print int(rand()*100)}' - 42 - ``` + L'esempio di utilizzo della funzione rand è il seguente: + + ```bash + Shell > awk 'BEGIN{print rand()}' + 0.924046 + Shell > awk 'BEGIN{print rand()}' + 0.924046 + Shell > awk 'BEGIN{print rand()}' + 0.924046 + ``` + + L'esempio di utilizzo della funzione srand è il seguente: + + ```bash + Shell > awk 'BEGIN{srand() ; print rand()}' + 0.975495 + Shell > awk 'BEGIN{srand() ; print rand()}' + 0.99187 + Shell > awk 'BEGIN{srand() ; print rand()}' + 0.069002 + ``` + + Genera un numero intero compreso nell'intervallo (0,100): + + ```bash + Shell > awk 'BEGIN{srand() ; print int(rand()*100)}' + 56 + Shell > awk 'BEGIN{srand() ; print int(rand()*100)}' + 33 + Shell > awk 'BEGIN{srand() ; print int(rand()*100)}' + 42 + ``` 4. Funzioni **asort** e **asorti** - ```bash - Shell > cat /etc/passwd | awk -F ":" '{a[NR]=$1} END{anu=asort(a,b) ; for(i=1;i<=anu;i++) print i,b[i]}' - 1 adm - 2 bin - 3 chrony - 4 daemon - 5 dbus - 6 ftp - 7 games - 8 halt - 9 lp - 10 mail - 11 nobody - 12 operator - 13 polkitd - 14 redis - 15 root - 16 shutdown - 17 sshd - 18 sssd - 19 sync - 20 systemd-coredump - 21 systemd-resolve - 22 tss - 23 unbound - - Shell > awk 'BEGIN{a[1]=1000 ; a[2]=200 ; a[3]=30 ; a[4]="admin" ; a[5]="Admin" ; \ - a[6]="12string" ; a[7]=-1 ; a[8]=-10 ; a[9]=-20 ; a[10]=-21 ;nu=asort(a,b) ; for(i=1;i<=nu;i++) print i,b[i]}' - 1 -21 - 2 -20 - 3 -10 - 4 -1 - 5 30 - 6 200 - 7 1000 - 8 12string - 9 Admin - 10 admin - ``` - - !!! info "Informazione" - - ``` - Regole di ordinamento: - - * I numeri hanno una priorità maggiore rispetto alle stringhe e sono disposti in ordine crescente. - * Disporre le stringhe in ordine crescente nel dizionario - ``` - - Se si utilizza la funzione **asorti**, l'esempio è il seguente: - - ```bash - Shell > awk 'BEGIN{ a[-11]=1000 ; a[-2]=200 ; a[-10]=30 ; a[-21]="admin" ; a[41]="Admin" ; \ - a[30]="12string" ; a["root"]="rootstr" ; a["Root"]="r1" ; nu=asorti(a,b) ; for(i in b) print i,b[i] }' - 1 -10 - 2 -11 - 3 -2 - 4 -21 - 5 30 - 6 41 - 7 Root - 8 root - ``` - - !!! info "Informazione" - - ``` - Regole di ordinamento: - - * I numeri hanno la priorità sulle stringhe - * Se si incontra un numero negativo, viene confrontata la prima cifra da sinistra. Se è uguale, viene confrontata la seconda cifra e così via. - * Se viene incontrato un numero positivo, verrà disposto in ordine crescente. - * Disporre le stringhe in ordine crescente nel dizionario - ``` + ```bash + Shell > cat /etc/passwd | awk -F ":" '{a[NR]=$1} END{anu=asort(a,b) ; for(i=1;i<=anu;i++) print i,b[i]}' + 1 adm + 2 bin + 3 chrony + 4 daemon + 5 dbus + 6 ftp + 7 games + 8 halt + 9 lp + 10 mail + 11 nobody + 12 operator + 13 polkitd + 14 redis + 15 root + 16 shutdown + 17 sshd + 18 sssd + 19 sync + 20 systemd-coredump + 21 systemd-resolve + 22 tss + 23 unbound + + Shell > awk 'BEGIN{a[1]=1000 ; a[2]=200 ; a[3]=30 ; a[4]="admin" ; a[5]="Admin" ; \ + a[6]="12string" ; a[7]=-1 ; a[8]=-10 ; a[9]=-20 ; a[10]=-21 ;nu=asort(a,b) ; for(i=1;i<=nu;i++) print i,b[i]}' + 1 -21 + 2 -20 + 3 -10 + 4 -1 + 5 30 + 6 200 + 7 1000 + 8 12string + 9 Admin + 10 admin + ``` + + !!! info "Informazione" + + ``` + Regole di ordinamento: + + * I numeri hanno una priorità maggiore rispetto alle stringhe e sono disposti in ordine crescente. + * Disporre le stringhe in ordine crescente nel dizionario + ``` + + Se si utilizza la funzione **asorti**, l'esempio è il seguente: + + ```bash + Shell > awk 'BEGIN{ a[-11]=1000 ; a[-2]=200 ; a[-10]=30 ; a[-21]="admin" ; a[41]="Admin" ; \ + a[30]="12string" ; a["root"]="rootstr" ; a["Root"]="r1" ; nu=asorti(a,b) ; for(i in b) print i,b[i] }' + 1 -10 + 2 -11 + 3 -2 + 4 -21 + 5 30 + 6 41 + 7 Root + 8 root + ``` + + !!! info "Informazione" + + ``` + Regole di ordinamento: + + * I numeri hanno la priorità sulle stringhe + * Se si incontra un numero negativo, viene confrontata la prima cifra da sinistra. Se è uguale, viene confrontata la seconda cifra e così via. + * Se viene incontrato un numero positivo, verrà disposto in ordine crescente. + * Disporre le stringhe in ordine crescente nel dizionario + ``` 5. Funzioni **sub** e **gsub** - ```bash - Shell > cat /etc/services | awk '/netbios/ {sub(/tcp/,"test") ; print $0 }' - netbios-ns 137/test # NETBIOS Name Service - netbios-ns 137/udp - netbios-dgm 138/test # NETBIOS Datagram Service - netbios-dgm 138/udp - netbios-ssn 139/test # NETBIOS session service - netbios-ssn 139/udp - - Shell > cat /etc/services | awk '/^ftp/ && /21\/tcp/ {print $0}' - ftp 21/tcp - ↑ ↑ - Shell > cat /etc/services | awk 'BEGIN{OFS="\t"} /^ftp/ && /21\/tcp/ {gsub(/p/,"P",$2) ; print $0}' - ftp 21/tcP - ↑ - Shell > cat /etc/services | awk 'BEGIN{OFS="\t"} /^ftp/ && /21\/tcp/ {gsub(/p/,"P") ; print $0}' - ftP 21/tcP - ↑ ↑ - ``` - - Come per il comando \`sed', è possibile utilizzare il simbolo "&" per fare riferimento a stringhe già abbinate. - - ```bash - Shell > vim /tmp/tmp-file1.txt - A 192.168.1.1 HTTP - B 192.168.1.2 HTTP - B 192.168.1.2 MYSQL - C 192.168.1.1 MYSQL - C 192.168.1.1 MQ - D 192.168.1.4 NGINX - - # Add a line of text before the second line - Shell > cat /tmp/tmp-file1.txt | awk 'NR==2 {gsub(/.*/,"add a line\n&")} {print $0}' - A 192.168.1.1 HTTP - add a line - B 192.168.1.2 HTTP - B 192.168.1.2 MYSQL - C 192.168.1.1 MYSQL - C 192.168.1.1 MQ - D 192.168.1.4 NGINX - - # Add a string after the IP address in the second line - Shell > cat /tmp/tmp-file1.txt | awk 'NR==2 {gsub(/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/,"&\tSTRING")} {print $0}' - A 192.168.1.1 HTTP - B 192.168.1.2 STRING HTTP - B 192.168.1.2 MYSQL - C 192.168.1.1 MYSQL - C 192.168.1.1 MQ - D 192.168.1.4 NGINX - ``` + ```bash + Shell > cat /etc/services | awk '/netbios/ {sub(/tcp/,"test") ; print $0 }' + netbios-ns 137/test # NETBIOS Name Service + netbios-ns 137/udp + netbios-dgm 138/test # NETBIOS Datagram Service + netbios-dgm 138/udp + netbios-ssn 139/test # NETBIOS session service + netbios-ssn 139/udp + + Shell > cat /etc/services | awk '/^ftp/ && /21\/tcp/ {print $0}' + ftp 21/tcp + ↑ ↑ + Shell > cat /etc/services | awk 'BEGIN{OFS="\t"} /^ftp/ && /21\/tcp/ {gsub(/p/,"P",$2) ; print $0}' + ftp 21/tcP + ↑ + Shell > cat /etc/services | awk 'BEGIN{OFS="\t"} /^ftp/ && /21\/tcp/ {gsub(/p/,"P") ; print $0}' + ftP 21/tcP + ↑ ↑ + ``` + + Come per il comando \`sed', è possibile utilizzare il simbolo "&" per fare riferimento a stringhe già abbinate. + + ```bash + Shell > vim /tmp/tmp-file1.txt + A 192.168.1.1 HTTP + B 192.168.1.2 HTTP + B 192.168.1.2 MYSQL + C 192.168.1.1 MYSQL + C 192.168.1.1 MQ + D 192.168.1.4 NGINX + + # Add a line of text before the second line + Shell > cat /tmp/tmp-file1.txt | awk 'NR==2 {gsub(/.*/,"add a line\n&")} {print $0}' + A 192.168.1.1 HTTP + add a line + B 192.168.1.2 HTTP + B 192.168.1.2 MYSQL + C 192.168.1.1 MYSQL + C 192.168.1.1 MQ + D 192.168.1.4 NGINX + + # Add a string after the IP address in the second line + Shell > cat /tmp/tmp-file1.txt | awk 'NR==2 {gsub(/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/,"&\tSTRING")} {print $0}' + A 192.168.1.1 HTTP + B 192.168.1.2 STRING HTTP + B 192.168.1.2 MYSQL + C 192.168.1.1 MYSQL + C 192.168.1.1 MQ + D 192.168.1.4 NGINX + ``` 6. Funzione **index** - ```bash - Shell > tail -n 5 /etc/services - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > tail -n 5 /etc/services | awk '{print index($2,"tcp")}' - 0 - 7 - 0 - 7 - 7 - ``` + ```bash + Shell > tail -n 5 /etc/services + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > tail -n 5 /etc/services | awk '{print index($2,"tcp")}' + 0 + 7 + 0 + 7 + 7 + ``` 7. Funzione **length** - ```bash - # La lunghezza del campo di output - Shell > tail -n 5 /etc/services | awk '{print length($1)}' - 9 - 8 - 15 - 10 - 14 - - # La lunghezza dell'insieme di output - Shell > cat /etc/passwd | awk -F ":" 'a[NR]=$1 END{print length(a)}' - 22 - ``` + ```bash + # La lunghezza del campo di output + Shell > tail -n 5 /etc/services | awk '{print length($1)}' + 9 + 8 + 15 + 10 + 14 + + # La lunghezza dell'insieme di output + Shell > cat /etc/passwd | awk -F ":" 'a[NR]=$1 END{print length(a)}' + 22 + ``` 8. Funzione **match** - ```bash - Shell > echo -e "1592abc144qszd\n144bc\nbn" - 1592abc144qszd - 144bc - bn - - Shell > echo -e "1592abc144qszd\n144bc\nbn" | awk '{print match($1,144)}' - 8 - 1 - 0 - ``` + ```bash + Shell > echo -e "1592abc144qszd\n144bc\nbn" + 1592abc144qszd + 144bc + bn + + Shell > echo -e "1592abc144qszd\n144bc\nbn" | awk '{print match($1,144)}' + 8 + 1 + 0 + ``` 9. Funzione **split** - ```bash - Shell > echo "365%tmp%dir%number" | awk '{split($1,a1,"%") ; for(i in a1) print i,a1[i]}' - 1 365 - 2 tmp - 3 dir - 4 number - ``` + ```bash + Shell > echo "365%tmp%dir%number" | awk '{split($1,a1,"%") ; for(i in a1) print i,a1[i]}' + 1 365 + 2 tmp + 3 dir + 4 number + ``` 10. Funzione **substr** - ```bash - Shell > head -n 5 /etc/passwd - root:x:0:0:root:/root:/bin/bash - bin:x:1:1:bin:/bin:/sbin/nologin - daemon:x:2:2:daemon:/sbin:/sbin/nologin - adm:x:3:4:adm:/var/adm:/sbin/nologin - lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin - - # I need this part of the content - "emon:/sbin:/sbin/nologin" - Shell > head -n 5 /etc/passwd | awk '/daemon/ {print substr($0,16)}' - emon:/sbin:/sbin/nologin - - Shell > tail -n 5 /etc/services - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures - - # I need this part of the content - "tablet" - Shell > tail -n 5 /etc/services | awk '/^sp/ {print substr($1,9)}' - tablet - ``` + ```bash + Shell > head -n 5 /etc/passwd + root:x:0:0:root:/root:/bin/bash + bin:x:1:1:bin:/bin:/sbin/nologin + daemon:x:2:2:daemon:/sbin:/sbin/nologin + adm:x:3:4:adm:/var/adm:/sbin/nologin + lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin + + # I need this part of the content - "emon:/sbin:/sbin/nologin" + Shell > head -n 5 /etc/passwd | awk '/daemon/ {print substr($0,16)}' + emon:/sbin:/sbin/nologin + + Shell > tail -n 5 /etc/services + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures + + # I need this part of the content - "tablet" + Shell > tail -n 5 /etc/services | awk '/^sp/ {print substr($1,9)}' + tablet + ``` 11. Funzioni **tolower** e **toupper** - ```bash - Shell > echo -e "AbcD123\nqweR" | awk '{print tolower($0)}' - abcd123 - qwer + ```bash + Shell > echo -e "AbcD123\nqweR" | awk '{print tolower($0)}' + abcd123 + qwer - Shell > tail -n 5 /etc/services | awk '{print toupper($0)}' - AXIO-DISC 35100/UDP # AXIOMATIC DISCOVERY PROTOCOL - PMWEBAPI 44323/TCP # PERFORMANCE CO-PILOT CLIENT HTTP API - CLOUDCHECK-PING 45514/UDP # ASSIA CLOUDCHECK WIFI MANAGEMENT KEEPALIVE - CLOUDCHECK 45514/TCP # ASSIA CLOUDCHECK WIFI MANAGEMENT SYSTEM - SPREMOTETABLET 46998/TCP # CAPTURE HANDWRITTEN SIGNATURES - ``` + Shell > tail -n 5 /etc/services | awk '{print toupper($0)}' + AXIO-DISC 35100/UDP # AXIOMATIC DISCOVERY PROTOCOL + PMWEBAPI 44323/TCP # PERFORMANCE CO-PILOT CLIENT HTTP API + CLOUDCHECK-PING 45514/UDP # ASSIA CLOUDCHECK WIFI MANAGEMENT KEEPALIVE + CLOUDCHECK 45514/TCP # ASSIA CLOUDCHECK WIFI MANAGEMENT SYSTEM + SPREMOTETABLET 46998/TCP # CAPTURE HANDWRITTEN SIGNATURES + ``` 12. Funzioni che trattano l'ora e la data - \*\*Che cos'è un timestamp UNIX? - Secondo la storia dello sviluppo di GNU/Linux, UNIX V1 è nato nel 1971 e il libro "UNIX Programmer's Manual" è stato pubblicato il 3 novembre dello stesso anno, il che definisce il 1970-01-01 come data di riferimento dell'inizio di UNIX. + \*\*Che cos'è un timestamp UNIX? + Secondo la storia dello sviluppo di GNU/Linux, UNIX V1 è nato nel 1971 e il libro "UNIX Programmer's Manual" è stato pubblicato il 3 novembre dello stesso anno, il che definisce il 1970-01-01 come data di riferimento dell'inizio di UNIX. - La conversione tra un timestamp e una data naturale in giorni: + La conversione tra un timestamp e una data naturale in giorni: - ```bash - Shell > echo "$(( $(date --date="2024/01/06" +%s)/86400 + 1 ))" - 19728 + ```bash + Shell > echo "$(( $(date --date="2024/01/06" +%s)/86400 + 1 ))" + 19728 - Shell > date -d "1970-01-01 19728days" - Sat Jan 6 00:00:00 CST 2024 - ``` + Shell > date -d "1970-01-01 19728days" + Sat Jan 6 00:00:00 CST 2024 + ``` - La conversione tra un timestamp e una data naturale in secondi: + La conversione tra un timestamp e una data naturale in secondi: - ```bash - Shell > echo "$(date --date="2024/01/06 17:12:00" +%s)" - 1704532320 + ```bash + Shell > echo "$(date --date="2024/01/06 17:12:00" +%s)" + 1704532320 - Shell > echo "$(date --date='@1704532320')" - Sat Jan 6 17:12:00 CST 2024 - ``` + Shell > echo "$(date --date='@1704532320')" + Sat Jan 6 17:12:00 CST 2024 + ``` - La conversione tra la data naturale e il timestamp UNIX nel programma `awk`: + La conversione tra la data naturale e il timestamp UNIX nel programma `awk`: - ```bash - Shell > awk 'BEGIN{print systime()}' - 1704532597 + ```bash + Shell > awk 'BEGIN{print systime()}' + 1704532597 - Shell > echo "1704532597" | awk '{print strftime("%Y-%m-%d %H:%M:%S",$0)}' - 2024-01-06 17:16:37 - ``` + Shell > echo "1704532597" | awk '{print strftime("%Y-%m-%d %H:%M:%S",$0)}' + 2024-01-06 17:16:37 + ``` ## Istruzione I/O @@ -1829,204 +1829,204 @@ Come la maggior parte dei linguaggi di programmazione, `awk` supporta anche gli 1. getline - ```bash - Shell > seq 1 10 | awk '/3/ || /6/ {getline ; print $0}' - 4 - 7 - - Shell > seq 1 10 | awk '/3/ || /6/ {print $0 ; getline ; print $0}' - 3 - 4 - 6 - 7 - ``` - - Utilizzando le funzioni che abbiamo imparato in precedenza e il simbolo "&", possiamo: - - ```bash - Shell > tail -n 5 /etc/services | awk '/45514\/tcp/ {getline ; gsub(/.*/ , "&\tSTRING1") ; print $0}' - spremotetablet 46998/tcp # Capture handwritten signatures STRING1 - - Shell > tail -n 5 /etc/services | awk '/45514\/tcp/ {print $0 ; getline; gsub(/.*/,"&\tSTRING2") } {print $0}' - axio-disc 35100/udp # Axiomatic discovery protocol - pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - spremotetablet 46998/tcp # Capture handwritten signatures STRING2 - ``` - - Stampa le righe pari e dispari: - - ```bash - Shell > tail -n 10 /etc/services | cat -n | awk '{ if( (getline) <= 1) print $0}' - 2 ka-kdp 31016/udp # Kollective Agent Kollective Delivery - 4 edi_service 34567/udp # dhanalakshmi.org EDI Service - 6 axio-disc 35100/udp # Axiomatic discovery protocol - 8 cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive - 10 spremotetablet 46998/tcp # Capture handwritten signatures - - Shell > tail -n 10 /etc/services | cat -n | awk '{if(NR==1) print $0} { if(NR%2==0) {if(getline > 0) print $0} }' - 1 aigairserver 21221/tcp # Services for Air Server - 3 ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery - 5 axio-disc 35100/tcp # Axiomatic discovery protocol - 7 pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API - 9 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System - ``` + ```bash + Shell > seq 1 10 | awk '/3/ || /6/ {getline ; print $0}' + 4 + 7 + + Shell > seq 1 10 | awk '/3/ || /6/ {print $0 ; getline ; print $0}' + 3 + 4 + 6 + 7 + ``` + + Utilizzando le funzioni che abbiamo imparato in precedenza e il simbolo "&", possiamo: + + ```bash + Shell > tail -n 5 /etc/services | awk '/45514\/tcp/ {getline ; gsub(/.*/ , "&\tSTRING1") ; print $0}' + spremotetablet 46998/tcp # Capture handwritten signatures STRING1 + + Shell > tail -n 5 /etc/services | awk '/45514\/tcp/ {print $0 ; getline; gsub(/.*/,"&\tSTRING2") } {print $0}' + axio-disc 35100/udp # Axiomatic discovery protocol + pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + spremotetablet 46998/tcp # Capture handwritten signatures STRING2 + ``` + + Stampa le righe pari e dispari: + + ```bash + Shell > tail -n 10 /etc/services | cat -n | awk '{ if( (getline) <= 1) print $0}' + 2 ka-kdp 31016/udp # Kollective Agent Kollective Delivery + 4 edi_service 34567/udp # dhanalakshmi.org EDI Service + 6 axio-disc 35100/udp # Axiomatic discovery protocol + 8 cloudcheck-ping 45514/udp # ASSIA CloudCheck WiFi Management keepalive + 10 spremotetablet 46998/tcp # Capture handwritten signatures + + Shell > tail -n 10 /etc/services | cat -n | awk '{if(NR==1) print $0} { if(NR%2==0) {if(getline > 0) print $0} }' + 1 aigairserver 21221/tcp # Services for Air Server + 3 ka-sddp 31016/tcp # Kollective Agent Secure Distributed Delivery + 5 axio-disc 35100/tcp # Axiomatic discovery protocol + 7 pmwebapi 44323/tcp # Performance Co-Pilot client HTTP API + 9 cloudcheck 45514/tcp # ASSIA CloudCheck WiFi Management System + ``` 2. getline var - Aggiungere ogni riga del file b alla fine di ogni riga del file C: - - ```bash - Shell > cat /tmp/b.txt - b1 - b2 - b3 - b4 - b5 - b6 - - Shell > cat /tmp/c.txt - A 192.168.1.1 HTTP - B 192.168.1.2 HTTP - B 192.168.1.2 MYSQL - C 192.168.1.1 MYSQL - C 192.168.1.1 MQ - D 192.168.1.4 NGINX - - Shell > awk '{getline var1 <"/tmp/b.txt" ; print $0 , var1}' /tmp/c.txt - A 192.168.1.1 HTTP b1 - B 192.168.1.2 HTTP b2 - B 192.168.1.2 MYSQL b3 - C 192.168.1.1 MYSQL b4 - C 192.168.1.1 MQ b5 - D 192.168.1.4 NGINX b6 - ``` - - Sostituisce il campo specificato del file c con la riga del contenuto del file b: - - ```bash - Shell > awk '{ getline var2 < "/tmp/b.txt" ; gsub($2 , var2 , $2) ; print $0 }' /tmp/c.txt - A b1 HTTP - B b2 HTTP - B b3 MYSQL - C b4 MYSQL - C b5 MQ - D b6 NGINX - ``` + Aggiungere ogni riga del file b alla fine di ogni riga del file C: + + ```bash + Shell > cat /tmp/b.txt + b1 + b2 + b3 + b4 + b5 + b6 + + Shell > cat /tmp/c.txt + A 192.168.1.1 HTTP + B 192.168.1.2 HTTP + B 192.168.1.2 MYSQL + C 192.168.1.1 MYSQL + C 192.168.1.1 MQ + D 192.168.1.4 NGINX + + Shell > awk '{getline var1 <"/tmp/b.txt" ; print $0 , var1}' /tmp/c.txt + A 192.168.1.1 HTTP b1 + B 192.168.1.2 HTTP b2 + B 192.168.1.2 MYSQL b3 + C 192.168.1.1 MYSQL b4 + C 192.168.1.1 MQ b5 + D 192.168.1.4 NGINX b6 + ``` + + Sostituisce il campo specificato del file c con la riga del contenuto del file b: + + ```bash + Shell > awk '{ getline var2 < "/tmp/b.txt" ; gsub($2 , var2 , $2) ; print $0 }' /tmp/c.txt + A b1 HTTP + B b2 HTTP + B b3 MYSQL + C b4 MYSQL + C b5 MQ + D b6 NGINX + ``` 3. command | getline [var] - ```bash - Shell > awk 'BEGIN{ "date +%Y%m%d" | getline datenow ; print datenow}' - 20240107 - ``` + ```bash + Shell > awk 'BEGIN{ "date +%Y%m%d" | getline datenow ; print datenow}' + 20240107 + ``` - !!! tip "Suggerimento" + !!! tip "Suggerimento" - ``` - Utilizzare le doppie virgolette per includere il comando Shell. - ``` + ``` + Utilizzare le doppie virgolette per includere il comando Shell. + ``` 4. next - In precedenza abbiamo introdotto l'istruzione **break** e l'istruzione **continue**, la prima utilizzata per terminare il ciclo e la seconda per uscire dal ciclo corrente. Vedi [qui](#bc). Per **next**, quando le condizioni sono soddisfatte, interrompe la registrazione dell'ingresso che soddisfa le condizioni e continua con le azioni successive. + In precedenza abbiamo introdotto l'istruzione **break** e l'istruzione **continue**, la prima utilizzata per terminare il ciclo e la seconda per uscire dal ciclo corrente. Vedi [qui](#bc). Per **next**, quando le condizioni sono soddisfatte, interrompe la registrazione dell'ingresso che soddisfa le condizioni e continua con le azioni successive. - ```bash - Shell > seq 1 5 | awk '{if(NR==3) {next} print $0}' - 1 - 2 - 4 - 5 - - # equivalent to - Shell > seq 1 5 | awk '{if($1!=3) print $0}' - ``` + ```bash + Shell > seq 1 5 | awk '{if(NR==3) {next} print $0}' + 1 + 2 + 4 + 5 - Saltare i record di linea ammissibili: + # equivalent to + Shell > seq 1 5 | awk '{if($1!=3) print $0}' + ``` - ```bash - Shell > cat /etc/passwd | awk -F ":" 'NR>5 {next} {print $0}' - root:x:0:0:root:/root:/bin/bash - bin:x:1:1:bin:/bin:/sbin/nologin - daemon:x:2:2:daemon:/sbin:/sbin/nologin - adm:x:3:4:adm:/var/adm:/sbin/nologin - lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin + Saltare i record di linea ammissibili: - # equivalent to - Shell > cat /etc/passwd | awk -F ":" 'NR>=1 && NR<=5 {print $0}' - ``` + ```bash + Shell > cat /etc/passwd | awk -F ":" 'NR>5 {next} {print $0}' + root:x:0:0:root:/root:/bin/bash + bin:x:1:1:bin:/bin:/sbin/nologin + daemon:x:2:2:daemon:/sbin:/sbin/nologin + adm:x:3:4:adm:/var/adm:/sbin/nologin + lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin + + # equivalent to + Shell > cat /etc/passwd | awk -F ":" 'NR>=1 && NR<=5 {print $0}' + ``` - !!! tip "Suggerimento" + !!! tip "Suggerimento" - ``` - "**next**" non può essere usato in "BEGIN{}" e "END{}". - ``` + ``` + "**next**" non può essere usato in "BEGIN{}" e "END{}". + ``` 5. Funzione **system** - Questa funzione può essere utilizzata per richiamare comandi nella shell, come ad esempio: + Questa funzione può essere utilizzata per richiamare comandi nella shell, come ad esempio: - ```bash - Shell > awk 'BEGIN{ system("echo nginx http") }' - nginx http - ``` + ```bash + Shell > awk 'BEGIN{ system("echo nginx http") }' + nginx http + ``` - !!! tip "Suggerimento" + !!! tip "Suggerimento" - ```` - Si noti di aggiungere le doppie virgolette quando si utilizza la funzione **system**. Se non vengono aggiunte, il programma `awk` la considererà una variabile del programma `awk`. + ```` + Si noti di aggiungere le doppie virgolette quando si utilizza la funzione **system**. Se non vengono aggiunte, il programma `awk` la considererà una variabile del programma `awk`. - ```bash - Shell > awk 'BEGIN{ cmd1="date +%Y" ; system(cmd1)}' - 2024 - ``` - ```` + ```bash + Shell > awk 'BEGIN{ cmd1="date +%Y" ; system(cmd1)}' + 2024 + ``` + ```` - \*\*Cosa succede se il comando stesso della shell contiene doppi apici? \*\* Utilizzando i caratteri di escape - "\", come ad esempio: + \*\*Cosa succede se il comando stesso della shell contiene doppi apici? \*\* Utilizzando i caratteri di escape - "\", come ad esempio: - ```bash - Shell > egrep "^root|^nobody" /etc/passwd - Shell > awk 'BEGIN{ system("egrep \"^root|^nobody\" /etc/passwd") }' - root:x:0:0:root:/root:/bin/bash - nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin - ``` + ```bash + Shell > egrep "^root|^nobody" /etc/passwd + Shell > awk 'BEGIN{ system("egrep \"^root|^nobody\" /etc/passwd") }' + root:x:0:0:root:/root:/bin/bash + nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin + ``` - Un altro esempio: + Un altro esempio: - ```bash - Shell > awk 'BEGIN{ if ( system("xmind &> /dev/null") == 0 ) print "True"; else print "False" }' - False - ``` + ```bash + Shell > awk 'BEGIN{ if ( system("xmind &> /dev/null") == 0 ) print "True"; else print "False" }' + False + ``` 6. Scrivere l'output del programma `awk` su un file - ```bash - Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{OFS="\t"} {print $1,$2 > "/tmp/user.txt"}' - Shell > cat /tmp/user.txt - root x - bin x - daemon x - adm x - lp x - ``` + ```bash + Shell > head -n 5 /etc/passwd | awk -F ":" 'BEGIN{OFS="\t"} {print $1,$2 > "/tmp/user.txt"}' + Shell > cat /tmp/user.txt + root x + bin x + daemon x + adm x + lp x + ``` - !!! tip "Suggerimento" + !!! tip "Suggerimento" - ``` - "**>**" indica la scrittura sul file come sovrapposizione. Se si desidera scrivere sul file come append, utilizzare "**>>**". Si ricorda ancora una volta di usare le doppie virgolette per includere il percorso del file. - ``` + ``` + "**>**" indica la scrittura sul file come sovrapposizione. Se si desidera scrivere sul file come append, utilizzare "**>>**". Si ricorda ancora una volta di usare le doppie virgolette per includere il percorso del file. + ``` 7. carattere della pipe 8. Funzioni personalizzate - sintassi - `funzione NOME(elenco di parametri) { corpo della funzione }`. Come ad esempio: + sintassi - `funzione NOME(elenco di parametri) { corpo della funzione }`. Come ad esempio: - ```bash - Shell > awk 'function mysum(a,b) {return a+b} BEGIN{print mysum(1,6)}' - 7 - ``` + ```bash + Shell > awk 'function mysum(a,b) {return a+b} BEGIN{print mysum(1,6)}' + 7 + ``` ## Osservazioni conclusive From b293700eaf39549f5f6d7ba2b4f032a10057410b Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:45 -0400 Subject: [PATCH 109/167] New translations lab8-system_and_process_monitoring-i.md (Italian) --- ...lab8-system_and_process_monitoring-I.it.md | 986 +++++++++--------- 1 file changed, 493 insertions(+), 493 deletions(-) diff --git a/docs/labs/systems_administration_I/lab8-system_and_process_monitoring-I.it.md b/docs/labs/systems_administration_I/lab8-system_and_process_monitoring-I.it.md index af476e4f1c..7ad0f9e6ce 100644 --- a/docs/labs/systems_administration_I/lab8-system_and_process_monitoring-I.it.md +++ b/docs/labs/systems_administration_I/lab8-system_and_process_monitoring-I.it.md @@ -43,57 +43,57 @@ Questi esercizi trattano vari argomenti relativi al monitoraggio e alla gestione 2. Trovare il nome del processo con ID 1 utilizzando /proc. - ```bash - cat /proc/1/comm - ``` + ```bash + cat /proc/1/comm + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Qual è il nome del processo con PID 1? - ``` + ``` + Qual è il nome del processo con PID 1? + ``` 3. Visualizzare il nome e il percorso dell'eseguibile che si trova dietro al processo con PID 1. - ```bash - ls -l /proc/1/exe - ``` + ```bash + ls -l /proc/1/exe + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Qual è il percorso dell'eseguibile dietro il PID 1? - ``` + ``` + Qual è il percorso dell'eseguibile dietro il PID 1? + ``` 4. Utilizzare il comando `ps` per scoprire il nome del processo o del programma associato al PID 1. - ```bash - ps -p 1 -o comm= - ``` + ```bash + ps -p 1 -o comm= + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Il comando `ps` conferma il nome del processo? - ``` + ``` + Il comando `ps` conferma il nome del processo? + ``` 5. Utilizzare il comando `ps` per visualizzare il percorso completo e gli eventuali argomenti della riga di comando del processo o del programma associato al PID 1. - ```bash - ps -p 1 -o args= - ``` + ```bash + ps -p 1 -o args= + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Qual è il percorso completo e gli argomenti della riga di comando per il processo con PID 1? - ``` + ``` + Qual è il percorso completo e gli argomenti della riga di comando per il processo con PID 1? + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Perché il processo con PID 1 è importante su un sistema Linux? - ``` + ``` + Perché il processo con PID 1 è importante su un sistema Linux? + ``` #### Visualizzazione delle informazioni dettagliate sul processo utilizzando `ps` @@ -101,47 +101,47 @@ I seguenti passaggi mostrano come utilizzare `ps` per visualizzare le informazio 1. Utilizzare il comando `ps` per visualizzare un elenco di tutti i processi in una struttura ad albero. - ```bash - ps auxf - ``` + ```bash + ps auxf + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Qual è la struttura dell'elenco dei processi e quali informazioni vengono visualizzate? - ``` + ``` + Qual è la struttura dell'elenco dei processi e quali informazioni vengono visualizzate? + ``` 2. Filtrare l'elenco in modo da visualizzare solo i processi associati a un utente specifico, ad esempio l'utente “root”. - ```bash - ps -U root - ``` + ```bash + ps -U root + ``` - Verificare che vengano visualizzati solo i processi relativi all'utente “root”. + Verificare che vengano visualizzati solo i processi relativi all'utente “root”. 3. Mostrare i processi in un formato dettagliato, inclusi l'albero dei processi e i thread. Digitare: - ```bash - ps -eH - ``` + ```bash + ps -eH + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Quali ulteriori dettagli vengono mostrati in questo formato? - ``` + ``` + Quali ulteriori dettagli vengono mostrati in questo formato? + ``` 4. Visualizzare i processi ordinati in base all'utilizzo della CPU in ordine decrescente. - ```bash - ps aux --sort=-%cpu - ``` + ```bash + ps aux --sort=-%cpu + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Quale processo sta consumando più CPU? - ``` + ``` + Quale processo sta consumando più CPU? + ``` ## Esercizio 2 @@ -151,91 +151,91 @@ I seguenti passaggi mostrano come utilizzare `ps` per visualizzare le informazio 1. Avviare un processo di sospensione a lungo termine in background e visualizzare il PID sul terminale. Digitare: - ```bash - (sleep 3600 & MYPROC1=$! && echo PID is: $MYPROC1) 2>/dev/null - ``` + ```bash + (sleep 3600 & MYPROC1=$! && echo PID is: $MYPROC1) 2>/dev/null + ``` - OUTPUT: + OUTPUT: - ```bash - PID is: 1331933 - ``` + ```bash + PID is: 1331933 + ``` - Prendere nota del PID del nuovo processo sul sistema. Il PID viene salvato anche nella variabile $MYPROC1. + Prendere nota del PID del nuovo processo sul sistema. Il PID viene salvato anche nella variabile $MYPROC1. 2. Inviare un segnale di chiusura (SIGTERM) al processo `sleep`. - ```bash - kill $MYPROC1 - ``` + ```bash + kill $MYPROC1 + ``` - Sostituire $MYPROC1 con il PID effettivo ottenuto al punto 1. + Sostituire $MYPROC1 con il PID effettivo ottenuto al punto 1. 3. Verificare se il processo è terminato utilizzando `ps` e `ps aux`. - ```bash - ps aux | grep -v grep | grep sleep - ``` + ```bash + ps aux | grep -v grep | grep sleep + ``` #### Per terminare i processi utilizzando i segnali `kill` 1. Avviare un nuovo processo in sospeso e prendere nota del suo PID. Digitare: - ```bash - (sleep 3600 & MYPROC2=$! && echo PID is: $MYPROC2) 2>/dev/null - ``` + ```bash + (sleep 3600 & MYPROC2=$! && echo PID is: $MYPROC2) 2>/dev/null + ``` - OUTPUT: + OUTPUT: - ```bash - PID is: 1333258 - ``` + ```bash + PID is: 1333258 + ``` 2. Inviare un segnale diverso (ad esempio, SIGHUP) al nuovo processo in sospeso. Digitare: - ```bash - kill -1 $MYPROC2 - ``` + ```bash + kill -1 $MYPROC2 + ``` - Verificare che $MYPROC2 non sia più presente nella tabella dei processi. + Verificare che $MYPROC2 non sia più presente nella tabella dei processi. 3. Avviare un nuovo processo ping e prendere nota del suo PID. Digitare: - ```bash - { ping localhost > /dev/null 2>&1 & MYPROC3=$!; } \ - 2>/dev/null; echo "PID is: $MYPROC3" - ``` + ```bash + { ping localhost > /dev/null 2>&1 & MYPROC3=$!; } \ + 2>/dev/null; echo "PID is: $MYPROC3" + ``` 4. Utilizzare il comando `kill` per inviare un segnale `SIGTERM` al processo ping. Digitare: - ```bash - kill -15 $MYPROC3 - ``` + ```bash + kill -15 $MYPROC3 + ``` - Sostituire MYPROC3 con il PID effettivo del processo sul vostro sistema. + Sostituire MYPROC3 con il PID effettivo del processo sul vostro sistema. 5. Avviare un processo di lunga durata utilizzando il comando `cat`. Digitare: - ```bash - { cat /dev/random > /dev/null 2>&1 & MYPROC4=$!; } \ - 2>/dev/null; echo PID is: $MYPROC4 - ``` + ```bash + { cat /dev/random > /dev/null 2>&1 & MYPROC4=$!; } \ + 2>/dev/null; echo PID is: $MYPROC4 + ``` - Prendere nota del PID del processo sul vostro sistema. + Prendere nota del PID del processo sul vostro sistema. 6. Utilizzare `kill` per terminare forzatamente il processo inviando un segnale SIGKILL. - ```bash - kill -9 $MYPROC4 - ``` + ```bash + kill -9 $MYPROC4 + ``` - Verificare che il processo sia terminato. + Verificare che il processo sia terminato. - !!! question "Domanda" + !!! question "Domanda" - ``` - Spiegare lo scopo dell'invio di segnali ai processi utilizzando il comando `kill` e il significato dei diversi tipi di segnale. - ``` + ``` + Spiegare lo scopo dell'invio di segnali ai processi utilizzando il comando `kill` e il significato dei diversi tipi di segnale. + ``` ## Esercizio 3 @@ -245,67 +245,67 @@ I seguenti passaggi mostrano come utilizzare `ps` per visualizzare le informazio 1. Eseguire il comando top per visualizzare le statistiche di sistema in tempo reale. - ```bash - top - ``` + ```bash + top + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Quali informazioni vengono visualizzate nell'interfaccia superiore? - ``` + ``` + Quali informazioni vengono visualizzate nell'interfaccia superiore? + ``` 2. Osservare l'utilizzo della CPU e della memoria dei processi nell'interfaccia superiore. - !!! question "Domanda" + !!! question "Domanda" - ``` - Quali processi consumano più CPU e memoria? - ``` + ``` + Quali processi consumano più CPU e memoria? + ``` 3. Ordinare i processi in `top` in base all'utilizzo della CPU (premere P) e all'utilizzo della memoria (premere M). - !!! question "Domanda" + !!! question "Domanda" - ``` - Quali sono i processi che consumano più CPU e memoria dopo l'ordinamento? - ``` + ``` + Quali sono i processi che consumano più CPU e memoria dopo l'ordinamento? + ``` #### Monitorare l'utilizzo della CPU e della memoria per processi specifici utilizzando `top` 1. Creare un file di dimensioni arbitrarie pari a 512 Mb contenente dati casuali. - ```bash - sudo fallocate -l 512M ~/large-file.data - ``` + ```bash + sudo fallocate -l 512M ~/large-file.data + ``` 2. Avviare un processo che richieda molte risorse, come la compressione di file di grandi dimensioni. - ```bash - tar -czf archive.tar.gz /path/to/large/directory - ``` + ```bash + tar -czf archive.tar.gz /path/to/large/directory + ``` 3. Aprire il comando `top` per monitorare l'utilizzo della CPU e della memoria. - ```bash - top - ``` + ```bash + top + ``` 4. Individuare e selezionare il processo che richiede molte risorse nell'interfaccia superiore. - !!! question "Domanda" + !!! question "Domanda" - ``` - Qual è l'ID del processo e l'utilizzo delle risorse del processo intensivo? - ``` + ``` + Qual è l'ID del processo e l'utilizzo delle risorse del processo intensivo? + ``` 5. Modificare l'ordine di ordinamento in `top` per visualizzare i processi che utilizzano più CPU o memoria (premere P o M). - !!! question "Domanda" + !!! question "Domanda" - ``` - Qual è il processo che si trova in cima alla lista dopo l'ordinamento? - ``` + ``` + Qual è il processo che si trova in cima alla lista dopo l'ordinamento? + ``` 6. Uscire da `top` premendo `q`. @@ -313,47 +313,47 @@ I seguenti passaggi mostrano come utilizzare `ps` per visualizzare le informazio 1. Avviare il comando `top` in modalità interattiva. - ```bash - top - ``` + ```bash + top + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Quali informazioni vengono visualizzate nella schermata superiore? - ``` + ``` + Quali informazioni vengono visualizzate nella schermata superiore? + ``` 2. Utilizzare il tasto 1 per visualizzare un riepilogo dell'utilizzo dei singoli core della CPU. - !!! question "Domanda" + !!! question "Domanda" - ``` - Qual è la ripartizione dell'utilizzo del core della CPU per ciascun core? - ``` + ``` + Qual è la ripartizione dell'utilizzo del core della CPU per ciascun core? + ``` 3. Premere u per visualizzare i processi di un utente specifico. Inserire il vostro nome utente. - !!! question "Domanda" + !!! question "Domanda" - ``` - Quali processi sono attualmente in esecuzione per il vostro utente? - ``` + ``` + Quali processi sono attualmente in esecuzione per il vostro utente? + ``` 4. Ordinare i processi in base all'utilizzo della memoria (premere M) e osservare i processi che consumano più memoria. - !!! question "Domanda" + !!! question "Domanda" - ``` - Quali processi stanno utilizzando più memoria? - ``` + ``` + Quali processi stanno utilizzando più memoria? + ``` 5. Uscire da top premendo ++"q"++. - !!! question "Domanda" + !!! question "Domanda" - ``` - Spiegare l'importanza del monitoraggio delle risorse di sistema mediante il comando `top` e come questo possa aiutare a risolvere i problemi relativi alle prestazioni. - ``` + ``` + Spiegare l'importanza del monitoraggio delle risorse di sistema mediante il comando `top` e come questo possa aiutare a risolvere i problemi relativi alle prestazioni. + ``` ## Esercizio 4 @@ -363,78 +363,78 @@ I seguenti passaggi mostrano come utilizzare `ps` per visualizzare le informazio 1. Avviare un processo che richieda un uso intensivo della CPU con priorità predefinita/normale. Digitare: - ```bash - bash -c 'while true; do echo "Default priority: The PID is $$"; done' - ``` + ```bash + bash -c 'while true; do echo "Default priority: The PID is $$"; done' + ``` - OUTPUT: + OUTPUT: - ```bash - Default priority: The PID is 2185209 - Default priority: The PID is 2185209 - Default priority: The PID is 2185209 - ....... - ``` + ```bash + Default priority: The PID is 2185209 + Default priority: The PID is 2185209 + Default priority: The PID is 2185209 + ....... + ``` - Dall'output, il valore del PID sul nostro sistema di esempio è `2185209`. + Dall'output, il valore del PID sul nostro sistema di esempio è `2185209`. - Il valore del PID sarà diverso sul vostro sistema. + Il valore del PID sarà diverso sul vostro sistema. - Si noti il valore del PID visualizzato continuamente sullo schermo del vostro sistema. + Si noti il valore del PID visualizzato continuamente sullo schermo del vostro sistema. 2. In un altro terminale, utilizzando il valore PID, controllare la priorità predefinita del processo utilizzando `ps`. Digitare: - ```bash - ps -p -o ni - ``` + ```bash + ps -p -o ni + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Qual è la priorità predefinita del processo in esecuzione (valore `nice`)? - ``` + ``` + Qual è la priorità predefinita del processo in esecuzione (valore `nice`)? + ``` 3. Utilizzando il PID del processo stampato, terminare il processo utilizzando il comando `kill`. 4. Utilizzando il comando `nice`, riavviare un processo simile con un valore di niceness inferiore (ovvero più favorevole al processo O con priorità più alta). Utilizzare un valore `nice` pari a `-20`. Digitare: - ```bash - nice -n -20 bash -c 'while true; do echo "High priority: The PID is $$"; done' - ``` + ```bash + nice -n -20 bash -c 'while true; do echo "High priority: The PID is $$"; done' + ``` 5. Utilizzando il valore del PID, controllare la priorità del processo utilizzando `ps`. Digitare: - ```bash - ps -p -o ni - ``` + ```bash + ps -p -o ni + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - La priorità del processo è stata impostata correttamente? - ``` + ``` + La priorità del processo è stata impostata correttamente? + ``` 6. Premendo contemporaneamente i tasti ++ctrl+c++ sulla tastiera `terminare` il nuovo processo ad alta priorità. 7. Utilizzando nuovamente il comando `nice`, riavviare un altro processo, ma questa volta con un valore di niceness più alto (cioè meno favorevole al processo O con priorità inferiore). Utilizzare un valore `nice` pari a `19` Digitare: - ```bash - nice -n 19 bash -c 'while true; do echo "Low priority: The PID is $$"; done' - ``` + ```bash + nice -n 19 bash -c 'while true; do echo "Low priority: The PID is $$"; done' + ``` - OUTPUT: + OUTPUT: - ```bash - Low priority: The PID is 2180254 - Low priority: The PID is 2180254 - ...... - ``` + ```bash + Low priority: The PID is 2180254 + Low priority: The PID is 2180254 + ...... + ``` 8. Controllare la priorità personalizzata del processo utilizzando `ps`. Digitare: - ```bash - ps -p -o ni - ``` + ```bash + ps -p -o ni + ``` 9. Premere contemporaneamente i tasti ++ctrl+c++ sulla tastiera per terminare il nuovo processo a bassa priorità. @@ -444,73 +444,73 @@ I seguenti passaggi mostrano come utilizzare `ps` per visualizzare le informazio 1. Avviare un processo che richieda un uso intensivo della CPU, come un calcolo matematico complesso con l'utilità md5sum. Digitare: - ```bash - find / -path '/proc/*' -prune -o -type f -exec md5sum {} \; > /dev/null - ``` + ```bash + find / -path '/proc/*' -prune -o -type f -exec md5sum {} \; > /dev/null + ``` 2. Utilizzare il comando `ps` per individuare il PID del processo `find/md5sum` precedente. Digitare: - ```bash - ps -C find -o pid= - ``` + ```bash + ps -C find -o pid= + ``` - OUTPUT: + OUTPUT: - ```bash - 2577072 - ``` + ```bash + 2577072 + ``` - Dall'output, il valore del PID sul sistema di esempio è `2577072`. + Dall'output, il valore del PID sul sistema di esempio è `2577072`. - Il valore del PID sarà diverso sul vostro sistema. + Il valore del PID sarà diverso sul vostro sistema. - Prendere nota del valore del PID sul sistema. + Prendere nota del valore del PID sul sistema. 3. Utilizzare il comando `renice` per impostare la priorità del processo `find/md5sum` in esecuzione su un valore di niceness inferiore (ad esempio, -10, priorità più alta). Digitare: - ```bash - renice -n -10 -p $(ps -C find -o pid=) - ``` + ```bash + renice -n -10 -p $(ps -C find -o pid=) + ``` - OUTPUT: + OUTPUT: - ```bash - (process ID) old priority 0, new priority -10 - ``` + ```bash + (process ID) old priority 0, new priority -10 + ``` - Sostituire `` (sopra) con il PID effettivo del processo in esecuzione. + Sostituire `` (sopra) con il PID effettivo del processo in esecuzione. 4. Monitorare l'utilizzo delle risorse per il processo `find/md5sum`, utilizzando `top` (o `htop`). Digitare: - ```bash - top -cp $(ps -C find -o pid=) - ``` + ```bash + top -cp $(ps -C find -o pid=) + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Il processo ora riceve una quota maggiore di risorse della CPU? - ``` + ``` + Il processo ora riceve una quota maggiore di risorse della CPU? + ``` 5. Modificare la priorità del processo `find/md5sum` impostando un valore `nice` più alto (ad esempio 10, priorità più bassa). Digitare: - ```bash - renice -n 10 -p - ``` + ```bash + renice -n 10 -p + ``` - OUTPUT: + OUTPUT: - ```bash - 2338530 (process ID) old priority -10, new priority 10 - ``` + ```bash + 2338530 (process ID) old priority -10, new priority 10 + ``` - Sostituire `` (sopra) con il PID effettivo del processo in esecuzione. + Sostituire `` (sopra) con il PID effettivo del processo in esecuzione. - !!! question "Domanda" + !!! question "Domanda" - ``` - Spiegare come viene utilizzato il comando `nice` per regolare le priorità dei processi e come influisce sull'allocazione delle risorse di sistema. - ``` + ``` + Spiegare come viene utilizzato il comando `nice` per regolare le priorità dei processi e come influisce sull'allocazione delle risorse di sistema. + ``` 6. Premere contemporaneamente i tasti ++ctrl+c++ sulla tastiera per interrompere il processo `find/md5sum` . È anche possibile utilizzare il comando `kill` per ottenere lo stesso risultato. @@ -522,41 +522,41 @@ I seguenti passaggi mostrano come utilizzare `ps` per visualizzare le informazio 1. Utilizzare il comando `pgrep` per identificare tutti i processi associati a un programma o servizio specifico, come ad esempio `sshd`. - ```bash - pgrep sshd - ``` + ```bash + pgrep sshd + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Quali sono gli ID dei processi `sshd`? - ``` + ``` + Quali sono gli ID dei processi `sshd`? + ``` 2. Verificare l'esistenza dei processi identificati utilizzando il comando `ps`. - ```bash - ps -p - ``` + ```bash + ps -p + ``` - Sostituire “” con gli ID di processo ottenuti al punto 1. + Sostituire “” con gli ID di processo ottenuti al punto 1. 3. Utilizzare il comando `pgrep` per identificare i processi con un nome specifico, ad esempio “cron”. - ```bash - pgrep cron - ``` + ```bash + pgrep cron + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Esistono processi con il nome “cron”? - ``` + ``` + Esistono processi con il nome “cron”? + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Spiegare la differenza tra l'uso di `ps` e `pgrep` per identificare e gestire i processi. - ``` + ``` + Spiegare la differenza tra l'uso di `ps` e `pgrep` per identificare e gestire i processi. + ``` ## Esercizio 6 @@ -568,81 +568,81 @@ Questo esercizio riguarda la gestione dei processi con `fg` e `bg`. 1. Avviare un processo long-running in foreground. Ad esempio, si può usare un comando semplice come `sleep`. Digitare: - ```bash - sleep 300 - ``` + ```bash + sleep 300 + ``` 2. Sospendere il processo in foreground premendo ++ctrl+z++ sulla tastiera. Questo dovrebbe riportarvi al prompt della shell. 3. Elencare i processi sospesi utilizzando il comando `jobs`. Digitare: - ```bash - jobs - ``` + ```bash + jobs + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Qual è lo stato del lavoro sospeso? - ``` + ``` + Qual è lo stato del lavoro sospeso? + ``` 4. Riportare il processo sospeso in foreground utilizzando il comando `fg`. - ```bash - fg - ``` + ```bash + fg + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Cosa succede quando si riporta il lavoro in foreground? - ``` + ``` + Cosa succede quando si riporta il lavoro in foreground? + ``` 5. Sospendere nuovamente il processo utilizzando ++ctrl+z++, quindi spostarlo in background utilizzando il comando `bg`. - ```bash - bg - ``` + ```bash + bg + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Qual è lo stato attuale del lavoro? - ``` + ``` + Qual è lo stato attuale del lavoro? + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Spiegare lo scopo dei processi in primo piano e in background e come vengono gestiti utilizzando i comandi `fg` e `bg`. - ``` + ``` + Spiegare lo scopo dei processi in primo piano e in background e come vengono gestiti utilizzando i comandi `fg` e `bg`. + ``` #### Avviare un processo in background 1. Il simbolo `&` può avviare un processo che viene immediatamente eseguito in background. Ad esempio, per avviare il comando `sleep` in background, digitare: - ```bash - sleep 300 & - ``` + ```bash + sleep 300 & + ``` - Sospendere il processo in esecuzione utilizzando ++ctrl+z++. + Sospendere il processo in esecuzione utilizzando ++ctrl+z++. 2. Elencare lo stato di tutti i jobs attivi. Digitare: - ```bash - jobs -l - ``` + ```bash + jobs -l + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Qual è lo stato del processo “sleep 300”? - ``` + ``` + Qual è lo stato del processo “sleep 300”? + ``` 3. Riportare il processo in background in primo piano utilizzando il comando `fg`. - ```bash - fg - ``` + ```bash + fg + ``` 4. Terminare anticipatamente il processo `sleep` inviandogli il segnale SIGSTOP premendo ++ctrl+c++. @@ -650,23 +650,23 @@ Questo esercizio riguarda la gestione dei processi con `fg` e `bg`. 1. Avviare un processo interattivo come l'editor di testo `vi` per creare e modificare un file di testo di esempio denominato “foobar.txt”. Digitare: - ```bash - vi foobar1.txt - ``` + ```bash + vi foobar1.txt + ``` - Sospendere il processo in esecuzione utilizzando `Ctrl` + `Z`. + Sospendere il processo in esecuzione utilizzando `Ctrl` + `Z`. - Utilizzare il comando `bg` per spostare il processo sospeso in background. + Utilizzare il comando `bg` per spostare il processo sospeso in background. - ```bash - bg - ``` + ```bash + bg + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Il processo è ora in esecuzione in background? - ``` + ``` + Il processo è ora in esecuzione in background? + ``` 2. Inserire “Hello” all'interno del file `foobar1.txt` nel vostro editor `vi`. @@ -674,9 +674,9 @@ Questo esercizio riguarda la gestione dei processi con `fg` e `bg`. 4. Avviare un'altra sessione separata dell'editor `vi` per creare un altro file di testo denominato “foobar2.txt”. Digitare: - ```bash - vi foobar2.txt - ``` + ```bash + vi foobar2.txt + ``` 5. Inserire il testo di esempio “Hi inside foobar2.txt” nella seconda sessione di vi. @@ -684,45 +684,45 @@ Questo esercizio riguarda la gestione dei processi con `fg` e `bg`. 7. Elencare lo stato di tutti i `job` sul terminale corrente. Digitare: - ```bash - jobs -l - ``` + ```bash + jobs -l + ``` - OUTPUT: + OUTPUT: - ```bash - [1]- 2977364 Stopped vi foobar1.txt - [2]+ 2977612 Stopped vi foobar2.txt - ``` + ```bash + [1]- 2977364 Stopped vi foobar1.txt + [2]+ 2977612 Stopped vi foobar2.txt + ``` - Si dovrebbero avere almeno 2 job elencati nell'output. Il numero nella prima colonna dell'output mostra i numeri dei job: [1] e [2]. + Si dovrebbero avere almeno 2 job elencati nell'output. Il numero nella prima colonna dell'output mostra i numeri dei job: [1] e [2]. 8. Riprendere ==e portare in primo piano== la prima sessione `vi` digitando: - ```bash - fg %1 - ``` + ```bash + fg %1 + ``` 9. Sospendere nuovamente la prima sessione `vi` utilizzando ++ctrl+z++. 10. Riprendere ==e portare in foreground== la seconda sessione `vi` digitando: - ```bash - fg %2 - ``` + ```bash + fg %2 + ``` 11. Terminare in modo non corretto entrambe le sessioni di modifica `vi` inviando il segnale KILL a entrambi i processi. Eseguire il comando `kill` seguito dal comando jobs. Digitare: - ```bash - kill -SIGKILL %1 %2 && jobs - ``` + ```bash + kill -SIGKILL %1 %2 && jobs + ``` - OUTPUT: + OUTPUT: - ```bash - [1]- Killed vi foobar1.txt - [2]+ Killed vi foobar2.txt - ``` + ```bash + [1]- Killed vi foobar1.txt + [2]+ Killed vi foobar2.txt + ``` ## Esercizio 7 @@ -734,25 +734,25 @@ Questo esercizio riguarda la gestione dei processi con `fg` e `bg`. 2. Utilizzare il comando `pidof` per trovare l'ID del processo di `systemd`. Digitare: - ```bash - pidof systemd - ``` + ```bash + pidof systemd + ``` - Prendere nota del ID di processo di `systemd`. + Prendere nota del ID di processo di `systemd`. 3. Verificare l'esistenza del processo identificato utilizzando il comando `ps`. - ```bash - ps -p - ``` + ```bash + ps -p + ``` - Sostituire `` con l'ID del processo ottenuto al punto 2. + Sostituire `` con l'ID del processo ottenuto al punto 2. - !!! question "Domanda" + !!! question "Domanda" - ``` - Spiegare la differenza tra `pgrep` e `pidof` per trovare l'ID di processo di un comando in esecuzione. - ``` + ``` + Spiegare la differenza tra `pgrep` e `pidof` per trovare l'ID di processo di un comando in esecuzione. + ``` ## Esercizio 8 @@ -762,39 +762,39 @@ Questo esercizio riguarda la gestione dei processi con `fg` e `bg`. 1. Elencare il contenuto della directory /sys. Digitare: - ```bash - ls /sys - ``` + ```bash + ls /sys + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Che tipo di informazioni sono memorizzate nella directory /sys? - ``` + ``` + Che tipo di informazioni sono memorizzate nella directory /sys? + ``` 2. Passare a una voce specifica di /sys, ad esempio le informazioni sulla CPU. - ```bash - cd /sys/devices/system/cpu - ``` + ```bash + cd /sys/devices/system/cpu + ``` 3. Elencare il contenuto della directory corrente per esplorare le informazioni relative alla CPU. - ```bash - ls - ``` + ```bash + ls + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Quali informazioni relative alla CPU sono disponibili nel filesystem /sys? - ``` + ``` + Quali informazioni relative alla CPU sono disponibili nel filesystem /sys? + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Spiegare lo scopo del filesystem /sys in Linux e il suo ruolo nella gestione dell'hardware e della configurazione del sistema. - ``` + ``` + Spiegare lo scopo del filesystem /sys in Linux e il suo ruolo nella gestione dell'hardware e della configurazione del sistema. + ``` ## Esercizio 9 @@ -804,41 +804,41 @@ Questo esercizio riguarda la gestione dei processi con `fg` e `bg`. 1. Identificare i processi con un nome specifico, come “firefox”. - ```bash - pkill firefox - ``` + ```bash + pkill firefox + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Sono stati terminati tutti i processi con il nome “firefox”? - ``` + ``` + Sono stati terminati tutti i processi con il nome “firefox”? + ``` 2. Controllare che lo stato dei processi sia terminato utilizzando `ps`. - ```bash - ps aux | grep firefox - ``` + ```bash + ps aux | grep firefox + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Ci sono processi rimanenti con il nome “firefox”? - ``` + ``` + Ci sono processi rimanenti con il nome “firefox”? + ``` - Utilizza `pkill` per terminare forzatamente tutti i processi con un nome specifico. + Utilizza `pkill` per terminare forzatamente tutti i processi con un nome specifico. - ```bash - pkill -9 firefox - ``` + ```bash + pkill -9 firefox + ``` - Verificare che tutti i processi con il nome “firefox” siano stati terminati. + Verificare che tutti i processi con il nome “firefox” siano stati terminati. - !!! question "Domanda" + !!! question "Domanda" - ``` - Qual è la differenza tra l'uso di `kill` e `pkill` per terminare i processi in base al nome? - ``` + ``` + Qual è la differenza tra l'uso di `kill` e `pkill` per terminare i processi in base al nome? + ``` ## Esercizio 10 @@ -850,41 +850,41 @@ Questo esercizio riguarda l'uso del potente comando `exec`. 1. Avviare una nuova sessione shell. Digitare: - ```bash - bash - ``` + ```bash + bash + ``` 2. Lanciare un comando che non esce dalla nuova shell, come un semplice ciclo while. - ```bash - while true; do echo "Running..."; done - ``` + ```bash + while true; do echo "Running..."; done + ``` 3. Nella shell corrente, sostituire il comando in esecuzione con uno diverso utilizzando `exec`. - ```bash - exec echo "This replaces the previous command." - ``` + ```bash + exec echo "This replaces the previous command." + ``` - Da notare che il comando precedente è stato chiuso e quello nuovo è in esecuzione. + Da notare che il comando precedente è stato chiuso e quello nuovo è in esecuzione. 4. Verificare che il vecchio comando non sia più in esecuzione utilizzando `ps`. - ```bash - ps aux | grep "while true" - ``` + ```bash + ps aux | grep "while true" + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Il comando precedente è ancora in esecuzione? - ``` + ``` + Il comando precedente è ancora in esecuzione? + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Spiega come il comando `exec` può sostituire il processo della shell corrente con un comando diverso. - ``` + ``` + Spiega come il comando `exec` può sostituire il processo della shell corrente con un comando diverso. + ``` ## Esercizio 11 @@ -896,41 +896,41 @@ Come `kill`, `killall` è un comando che consente di terminare i processi in bas 1. Identificare i processi con un nome specifico, come “chrome”. - ```bash - killall chrome - ``` + ```bash + killall chrome + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Sono stati terminati tutti i processi con il nome “chrome”? - ``` + ``` + Sono stati terminati tutti i processi con il nome “chrome”? + ``` 2. Controllare che lo stato dei processi sia terminato utilizzando `ps`. - ```bash - ps aux | grep chrome - ``` + ```bash + ps aux | grep chrome + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Ci sono processi rimanenti con il nome “chrome”? - ``` + ``` + Ci sono processi rimanenti con il nome “chrome”? + ``` 3. Utilizzare `killall` per terminare forzatamente tutti i processi con un nome specifico. - ```bash - killall -9 chrome - ``` + ```bash + killall -9 chrome + ``` - Verificare che tutti i processi con il nome “chrome” siano stati chiusi. + Verificare che tutti i processi con il nome “chrome” siano stati chiusi. - !!! question "Domanda" + !!! question "Domanda" - ``` - In che modo `killall` differisce da `pkill` e `kill` quando si terminano i processi in base al nome? - ``` + ``` + In che modo `killall` differisce da `pkill` e `kill` quando si terminano i processi in base al nome? + ``` ## Esercizio 12 @@ -940,47 +940,47 @@ Come `kill`, `killall` è un comando che consente di terminare i processi in bas 1. Elencare i `cgroups` esistenti sul vostro sistema. - ```bash - cat /proc/cgroups - ``` + ```bash + cat /proc/cgroups + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Quali sono i controller `cgroup` disponibili sul vostro sistema? - ``` + ``` + Quali sono i controller `cgroup` disponibili sul vostro sistema? + ``` 2. Creare un nuovo cgroup utilizzando il controller della CPU. Nominarlo “mygroup”. - ```bash - sudo mkdir -p /sys/fs/cgroup/cpu/mygroup - ``` + ```bash + sudo mkdir -p /sys/fs/cgroup/cpu/mygroup + ``` 3. Spostare un processo specifico (ad esempio, un comando sleep in esecuzione) nel `cgroup` “mygroup”. - ```bash - echo | sudo tee /sys/fs/cgroup/cpu/mygroup/cgroup.procs - ``` + ```bash + echo | sudo tee /sys/fs/cgroup/cpu/mygroup/cgroup.procs + ``` - Sostituire `` con il PID effettivo del processo. + Sostituire `` con il PID effettivo del processo. 4. Verificare se il processo è stato spostato nel `cgroup` “mygroup”. - ```bash - cat /sys/fs/cgroup/cpu/mygroup/cgroup.procs - ``` + ```bash + cat /sys/fs/cgroup/cpu/mygroup/cgroup.procs + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Il processo è elencato nel cgroup “mygroup”? - ``` + ``` + Il processo è elencato nel cgroup “mygroup”? + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Spiegare il concetto di “cgroups” in Linux e come questi possono gestire e controllare l'allocazione delle risorse per i processi. - ``` + ``` + Spiegare il concetto di “cgroups” in Linux e come questi possono gestire e controllare l'allocazione delle risorse per i processi. + ``` ## Esercizio 13 @@ -990,46 +990,46 @@ Come `kill`, `killall` è un comando che consente di terminare i processi in bas 1. Identificare un processo in esecuzione con un PID e una priorità specifici utilizzando `ps`. - ```bash - ps -p -o ni - ``` + ```bash + ps -p -o ni + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Qual è l'attuale priorità (valore nice) del processo? - ``` + ``` + Qual è l'attuale priorità (valore nice) del processo? + ``` 2. Utilizzare il comando `renice` per modificare la priorità (valore nice) del processo in esecuzione. - ```bash - renice -p - ``` + ```bash + renice -p + ``` - Sostituire `` con il nuovo valore di priorità che si desidera impostare e `` con il PID effettivo del processo. + Sostituire `` con il nuovo valore di priorità che si desidera impostare e `` con il PID effettivo del processo. 3. Verificare che la priorità del processo sia cambiata utilizzando `ps`. - ```bash - ps -p -o ni - ``` + ```bash + ps -p -o ni + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - La priorità ora è diversa? - ``` + ``` + La priorità ora è diversa? + ``` 4. Provare a modificare la priorità impostando un valore più alto o più basso e osservare l'impatto sull'utilizzo delle risorse del processo. - !!! question "Domanda" + !!! question "Domanda" - ``` - Cosa succede al consumo di risorse del processo con valori nice diversi? - ``` + ``` + Cosa succede al consumo di risorse del processo con valori nice diversi? + ``` - !!! question "Domanda" + !!! question "Domanda" - ``` - Spiegare come viene utilizzato il comando renice per regolare la priorità dei processi in esecuzione e i suoi effetti sull'utilizzo delle risorse di processo. - ``` + ``` + Spiegare come viene utilizzato il comando renice per regolare la priorità dei processi in esecuzione e i suoi effetti sull'utilizzo delle risorse di processo. + ``` From 6d586b5b8a27e6e9b5f1c0d3458020a4bae9ebdc Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:50 -0400 Subject: [PATCH 110/167] New translations lab4-advanced_system_process_monitoring.md (Italian) --- ...4-advanced_system_process_monitoring.it.md | 928 +++++++++--------- 1 file changed, 464 insertions(+), 464 deletions(-) diff --git a/docs/labs/systems_administration_II/lab4-advanced_system_process_monitoring.it.md b/docs/labs/systems_administration_II/lab4-advanced_system_process_monitoring.it.md index 85526a8f33..a4103aa23b 100644 --- a/docs/labs/systems_administration_II/lab4-advanced_system_process_monitoring.it.md +++ b/docs/labs/systems_administration_II/lab4-advanced_system_process_monitoring.it.md @@ -47,59 +47,59 @@ Il comando `fuser` in Linux è utilizzato per identificare i processi che utiliz 1. Per prima cosa, creare un file di prova vuoto a cui si vuole accedere. Digitare: - ```bash - touch ~/testfile.txt - ``` + ```bash + touch ~/testfile.txt + ``` 2. Creare lo script che verrà utilizzato per simulare l'accesso a `testfile.txt`. Digitare: - ```bash - cat > ~/simulate_file_usage.sh << EOF - #!/bin/bash - tail -f ~/testfile.txt - EOF - ``` + ```bash + cat > ~/simulate_file_usage.sh << EOF + #!/bin/bash + tail -f ~/testfile.txt + EOF + ``` 3. Rendere lo script eseguibile. Digitare: - ```bash - chmod +x ~/simulate_file_usage.sh - ``` + ```bash + chmod +x ~/simulate_file_usage.sh + ``` 4. Avviare lo script. Digitare: - ```bash - ~/simulate_file_usage.sh & - ``` + ```bash + ~/simulate_file_usage.sh & + ``` #### Identificazione dei processi che accedono a un file 1. Identificare i processi che utilizzano o accedono a `testfile.txt`, eseguire: - ```bash - fuser ~/testfile.txt - ``` + ```bash + fuser ~/testfile.txt + ``` 2. Esplorare altre opzioni `fuser` usando l'opzione `-v`. Digitare: - ```bash - fuser -v ~/testfile.txt - ``` + ```bash + fuser -v ~/testfile.txt + ``` 3. Il tutto è stato fatto con `testfile.txt` e `simulate_file_usage.sh`. Ora è possibile rimuovere i file. Digitare: - ```bash - kill %1 - rm ~/testfile.txt ~/simulate_file_usage.sh - ``` + ```bash + kill %1 + rm ~/testfile.txt ~/simulate_file_usage.sh + ``` #### Identificazione di un processo che accede a una porta TCP/UDP 1. Utilizzare il comando `fuser` per identificare il processo di accesso alla porta TCP 22 del server. Digitare: - ```bash - sudo fuser 22/tcp - ``` + ```bash + sudo fuser 22/tcp + ``` ## Esercizio 2 @@ -111,137 +111,137 @@ Il comando `fuser` in Linux è utilizzato per identificare i processi che utiliz 1. Installare l'applicazione `perf` se non è installata sul server. Digitare: - ```bash - sudo dnf -y install perf - ``` + ```bash + sudo dnf -y install perf + ``` 2. L'applicazione `bc` è una calcolatrice di precisione a riga di comando. In questo esercizio verrà utilizzato `bc` per simulare un elevato carico della CPU. Se `bc` non è già installato sul server, installarlo con: - ```bash - sudo dnf -y install bc - ``` + ```bash + sudo dnf -y install bc + ``` #### Per creare uno script per generare il carico della CPU 1. Creare uno script di carico della CPU e renderlo eseguibile eseguendo: - ```bash - cat > ~/generate_cpu_load.sh << EOF - #!/bin/bash + ```bash + cat > ~/generate_cpu_load.sh << EOF + #!/bin/bash - # Check if the number of decimal places is passed as an argument - if [ "$#" -ne 1 ]; then - echo "Usage: $0 " - exit 1 - fi + # Check if the number of decimal places is passed as an argument + if [ "$#" -ne 1 ]; then + echo "Usage: $0 " + exit 1 + fi - # Calculate Pi to the specified number of decimal places - for i in {1..10}; do echo "scale=$1; 4*a(1)" | bc -l; done + # Calculate Pi to the specified number of decimal places + for i in {1..10}; do echo "scale=$1; 4*a(1)" | bc -l; done - EOF - chmod +x ~/generate_cpu_load.sh - ``` + EOF + chmod +x ~/generate_cpu_load.sh + ``` - !!! tip "Suggerimento" + !!! tip "Suggerimento" - ``` - Lo script `generate_cpu_load.sh` è un semplice strumento per generare il carico della CPU calcolando il Pi greco (π) ad alta precisione. Lo stesso calcolo viene eseguito 10 volte. Lo script accetta un intero come parametro per specificare il numero di cifre decimali per il calcolo del Pi greco. - ``` + ``` + Lo script `generate_cpu_load.sh` è un semplice strumento per generare il carico della CPU calcolando il Pi greco (π) ad alta precisione. Lo stesso calcolo viene eseguito 10 volte. Lo script accetta un intero come parametro per specificare il numero di cifre decimali per il calcolo del Pi greco. + ``` #### Simulazione del carico supplementare della CPU 1. Eseguire un semplice test e calcolare il Pi greco con 50 cifre decimali. Eseguite lo script digitando: - ```bash - ~/generate_cpu_load.sh 50 & - ``` + ```bash + ~/generate_cpu_load.sh 50 & + ``` 2. Eseguire nuovamente lo script, ma utilizzare `perf` per registrare le prestazioni dello script e analizzare l'utilizzo della CPU e altre metriche. Digitare: - ```bash + ```bash - ./generate_cpu_load.sh 1000 & perf record -p $! sleep 5 - ``` + ./generate_cpu_load.sh 1000 & perf record -p $! sleep 5 + ``` - !!! tip "Suggerimento" + !!! tip "Suggerimento" - ``` - L'opzione `sleep 5` con il comando `perf record` definisce la finestra temporale in cui `perf` raccoglie i dati sulle prestazioni del carico della CPU generato dallo script generate_cpu_load.sh. Consente a `perf di registrare le metriche delle prestazioni del sistema per 5 secondi prima di fermarsi automaticamente. - ``` + ``` + L'opzione `sleep 5` con il comando `perf record` definisce la finestra temporale in cui `perf` raccoglie i dati sulle prestazioni del carico della CPU generato dallo script generate_cpu_load.sh. Consente a `perf di registrare le metriche delle prestazioni del sistema per 5 secondi prima di fermarsi automaticamente. + ``` #### Per analizzare i dati sulle prestazioni e monitorare gli eventi in tempo reale 1. Usare il comando `perf report` per esaminare il report dei dati sulle prestazioni e capire i modelli di utilizzo della CPU e della memoria. Digitare: - ```bash - sudo perf report - ``` + ```bash + sudo perf report + ``` - È possibile utilizzare vari tasti della tastiera per esplorare ulteriormente il rapporto. - Digitare ++"q"++ per uscire dall'interfaccia di visualizzazione dei rapporti `perf`. + È possibile utilizzare vari tasti della tastiera per esplorare ulteriormente il rapporto. + Digitare ++"q"++ per uscire dall'interfaccia di visualizzazione dei rapporti `perf`. 2. Osservare/capire gli eventi della cache della CPU in tempo reale per 40 secondi per identificare potenziali colli di bottiglia delle prestazioni. Digitare: - ```bash - sudo perf stat -e cache-references,cache-misses sleep 40 - ``` + ```bash + sudo perf stat -e cache-references,cache-misses sleep 40 + ``` #### Per registrare le prestazioni complete del sistema 1. Acquisizione di dati sulle prestazioni dell'intero sistema che possono essere utilizzati per ulteriori analisi. Digitare: - ```bash - sudo perf record -a sleep 10 - ``` + ```bash + sudo perf record -a sleep 10 + ``` 2. Esplorare i contatori di eventi specifici. Contare eventi specifici come i cicli della CPU per valutare le prestazioni di un determinato script o applicazione. Eseguiamo un test con un comando `find` di base, digitando: - ```bash - sudo perf stat -e cycles find /proc - ``` + ```bash + sudo perf stat -e cycles find /proc + ``` 3. Fare la stessa cosa ma con lo script `generate_cpu_load.sh`. Acquisire eventi specifici come i cicli della CPU per valutare le prestazioni dello script `generate_cpu_load.sh`. Digitare: - ```bash - sudo perf stat -e cycles ./generate_cpu_load.sh 500 - ``` + ```bash + sudo perf stat -e cycles ./generate_cpu_load.sh 500 + ``` - OUTPUT: + OUTPUT: - ```bash - ...... - 3.141592653589793238462643383279502884197169399375105820974944592307\ - 81640628620899862803482534211..... + ```bash + ...... + 3.141592653589793238462643383279502884197169399375105820974944592307\ + 81640628620899862803482534211..... - Performance counter stats for './generate_cpu_load.sh 500': + Performance counter stats for './generate_cpu_load.sh 500': - 1,670,638,886 cycles + 1,670,638,886 cycles - 0.530479014 seconds time elapsed + 0.530479014 seconds time elapsed - 0.488580000 seconds user - 0.034628000 seconds sys - ``` + 0.488580000 seconds user + 0.034628000 seconds sys + ``` - !!! note "Nota" + !!! note "Nota" - ``` - Ecco la ripartizione dell'output finale del comando `perf stat`: - - *1,670,638,886 cycles*: Indica il numero totale di cicli della CPU consumati durante l'esecuzione dello script. Ogni ciclo rappresenta un singolo passo nell'esecuzione delle istruzioni della CPU. + ``` + Ecco la ripartizione dell'output finale del comando `perf stat`: + + *1,670,638,886 cycles*: Indica il numero totale di cicli della CPU consumati durante l'esecuzione dello script. Ogni ciclo rappresenta un singolo passo nell'esecuzione delle istruzioni della CPU. - *0.530479014 seconds time elapsed*: È il tempo totale trascorso nel mondo reale (o tempo wall-clock) dall'inizio alla fine dell'esecuzione dello script. Questa durata include tutti i tipi di attesa (come l'attesa di I/O su disco o le chiamate di sistema). + *0.530479014 seconds time elapsed*: È il tempo totale trascorso nel mondo reale (o tempo wall-clock) dall'inizio alla fine dell'esecuzione dello script. Questa durata include tutti i tipi di attesa (come l'attesa di I/O su disco o le chiamate di sistema). - *0.488580000 seconds user*: È il tempo di CPU trascorso in modalità utente. Questo tempo esclude esplicitamente il tempo dedicato alle attività a livello di sistema. + *0.488580000 seconds user*: È il tempo di CPU trascorso in modalità utente. Questo tempo esclude esplicitamente il tempo dedicato alle attività a livello di sistema. - *0.034628000 seconds sys*: È il tempo trascorso dalla CPU in modalità kernel o di sistema. Include il tempo che la CPU trascorre eseguendo chiamate di sistema o eseguendo altre attività a livello di sistema per conto dello script. - ``` + *0.034628000 seconds sys*: È il tempo trascorso dalla CPU in modalità kernel o di sistema. Include il tempo che la CPU trascorre eseguendo chiamate di sistema o eseguendo altre attività a livello di sistema per conto dello script. + ``` 4. Tutto fatto con lo strumento `perf`. Assicurarsi che tutti gli script in background garantiscano un ambiente di lavoro pulito. - ```bash - kill %1 - ``` + ```bash + kill %1 + ``` ## Esercizio 3 @@ -253,92 +253,92 @@ Il comando `fuser` in Linux è utilizzato per identificare i processi che utiliz 1. Creare un semplice script chiamato `strace_script.sh` e renderlo eseguibile. Digitare: - ```bash - cat > ~/strace_script.sh << EOF - #!/bin/bash - while true; do - date - sleep 1 - done - EOF - chmod +x ~/strace_script.sh - ``` + ```bash + cat > ~/strace_script.sh << EOF + #!/bin/bash + while true; do + date + sleep 1 + done + EOF + chmod +x ~/strace_script.sh + ``` #### Per usare `strace` sui processi in esecuzione 1. Eseguire lo script e allegare `strace`. Digitare: - ```bash - ~/strace_script.sh & - ``` + ```bash + ~/strace_script.sh & + ``` 2. Trovare il PID del processo `strace_script.sh` in un terminale separato. Memorizzare il PID in una variabile denominata MYPID. A tale scopo, utilizzare il comando `pgrep` eseguendo: - ```bash - export MYPID=$(pgrep strace_script) ; echo $MYPID - ``` + ```bash + export MYPID=$(pgrep strace_script) ; echo $MYPID + ``` - OUTPUT: + OUTPUT: - ```bash - 4006301 - ``` + ```bash + 4006301 + ``` 3. Iniziate a tracciare le chiamate di sistema dello script per capire come interagisce con il kernel. Collegare `strace` al processo di script in esecuzione digitando: - ```bash - sudo strace -p $MYPID - ``` + ```bash + sudo strace -p $MYPID + ``` 4. Interrompi o arresta il processo `strace` digitando ++ctrl+c++ 5. L'output di `strace` può essere filtrato concentrandosi su specifiche chiamate di sistema come `open` e `read` per analizzarne il comportamento. Provate a farlo per le chiamate di sistema `open` e `read`. Digitare: - ```bash - sudo strace -e trace=open,read -p $MYPID - ``` + ```bash + sudo strace -e trace=open,read -p $MYPID + ``` - Una volta terminato il tentativo di decifrare l'output di `strace`, interrompere il processo `strace` digitando ++ctrl+c++ + Una volta terminato il tentativo di decifrare l'output di `strace`, interrompere il processo `strace` digitando ++ctrl+c++ 6. Reindirizzare l'output in un file per un'analisi successiva, che può aiutare a diagnosticare i problemi. Salvare l'output di `strace` in un file eseguendo: - ```bash - sudo strace -o strace_output.txt -p $MYPID - ``` + ```bash + sudo strace -o strace_output.txt -p $MYPID + ``` #### Per analizzare la frequenza delle chiamate di sistema 1. Riassumere il conteggio delle chiamate di sistema per identificare le chiamate di sistema più frequentemente utilizzate dal processo. Eseguire questa operazione per soli 10 secondi, aggiungendo il comando `timeout`. Digitare: - ```bash - sudo timeout 10 strace -c -p $MYPID - ``` - - Il sistema di esempio mostra un report di riepilogo come questo: - - OUTPUT: - - ```bash - strace: Process 4006301 attached - strace: Process 4006301 detached - % time seconds usecs/call calls errors syscall - ------ ----------- ----------- --------- --------- ---------------- - 89.59 0.042553 1182 36 18 wait4 - 7.68 0.003648 202 18 clone - 1.67 0.000794 5 144 rt_sigprocmask - 0.45 0.000215 5 36 rt_sigaction - 0.36 0.000169 9 18 ioctl - 0.25 0.000119 6 18 rt_sigreturn - ------ ----------- ----------- --------- --------- ---------------- - 100.00 0.047498 175 270 18 total - ``` + ```bash + sudo timeout 10 strace -c -p $MYPID + ``` + + Il sistema di esempio mostra un report di riepilogo come questo: + + OUTPUT: + + ```bash + strace: Process 4006301 attached + strace: Process 4006301 detached + % time seconds usecs/call calls errors syscall + ------ ----------- ----------- --------- --------- ---------------- + 89.59 0.042553 1182 36 18 wait4 + 7.68 0.003648 202 18 clone + 1.67 0.000794 5 144 rt_sigprocmask + 0.45 0.000215 5 36 rt_sigaction + 0.36 0.000169 9 18 ioctl + 0.25 0.000119 6 18 rt_sigreturn + ------ ----------- ----------- --------- --------- ---------------- + 100.00 0.047498 175 270 18 total + ``` 2. Terminare lo script e rimuovere i file creati. - ```bash - kill $MYPID - rm ~/strace_script.sh ~/strace_output.txt - ``` + ```bash + kill $MYPID + rm ~/strace_script.sh ~/strace_output.txt + ``` ## Esercizio 4 @@ -350,45 +350,45 @@ Il comando `fuser` in Linux è utilizzato per identificare i processi che utiliz 1. Installare l'applicazione `atop` se non è installata sul server. Digitare: - ```bash - sudo dnf -y install atop - ``` + ```bash + sudo dnf -y install atop + ``` 2. Eseguire `atop` digitando: - ```bash - sudo atop - ``` + ```bash + sudo atop + ``` 3. All'interno dell'interfaccia `atop`, è possibile esplorare varie metriche `atop` premendo tasti specifici sulla tastiera. - È possibile utilizzare i tasti 'm', 'd' o 'n' per passare dalla visualizzazione della memoria a quella del disco o della rete. Osservare l'utilizzo delle risorse in tempo reale. + È possibile utilizzare i tasti 'm', 'd' o 'n' per passare dalla visualizzazione della memoria a quella del disco o della rete. Osservare l'utilizzo delle risorse in tempo reale. 4. Monitorare le prestazioni del sistema a un intervallo personalizzato di 2 secondi, consentendo una visione più granulare dell'attività del sistema. Digitare: - ```bash - sudo atop 2 - ``` + ```bash + sudo atop 2 + ``` 5. Passare da una visualizzazione all'altra delle risorse per concentrarsi su aspetti specifici delle prestazioni del sistema. 6. Generare un report su file di registro per l'attività del sistema, acquisendo i dati ogni 60 secondi, per tre volte. Digitare: - ```bash - sudo atop -w /tmp/atop_log 60 3 - ``` + ```bash + sudo atop -w /tmp/atop_log 60 3 + ``` 7. Una volta completato il comando precedente, è possibile esaminare con calma il file binario in cui sono stati salvati i registri. Per rileggere il file di registro salvato, digitare: - ```bash - sudo atop -r /tmp/atop_log - ``` + ```bash + sudo atop -r /tmp/atop_log + ``` 8. Pulire rimuovendo i log o i file generati. - ```bash - sudo rm /tmp/atop_log - ``` + ```bash + sudo rm /tmp/atop_log + ``` ## Esercizio 5 @@ -403,54 +403,54 @@ L'applicazione `numactl` gestisce la politica NUMA, ottimizzando le prestazioni 1. Installare l'applicazione `numactl` se non è installata sul server. Digitare: - ```bash - sudo dnf -y install numactl - ``` + ```bash + sudo dnf -y install numactl + ``` #### Per creare uno script ad alta intensità di memoria 1. Create un semplice script per simulare un carico di lavoro ad alta intensità di memoria sul vostro server. Digitare: - ```bash - cat > ~/memory_intensive.sh << EOF - #!/bin/bash + ```bash + cat > ~/memory_intensive.sh << EOF + #!/bin/bash - awk 'BEGIN{for(i=0;i<1000000;i++)for(j=0;j<1000;j++);}{}' - EOF - chmod +x ~/memory_intensive.sh - ``` + awk 'BEGIN{for(i=0;i<1000000;i++)for(j=0;j<1000;j++);}{}' + EOF + chmod +x ~/memory_intensive.sh + ``` #### Utilizzo di `numactl` 1. Eseguire lo script con `numactl`, digitare: - ```bash - numactl --membind=0 ~/memory_intensive.sh - ``` + ```bash + numactl --membind=0 ~/memory_intensive.sh + ``` 2. Se il sistema dispone di più di un nodo NUMA, è possibile eseguire lo script su più nodi NUMA tramite: - ```bash - numactl --cpunodebind=0,1 --membind=0,1 ~/memory_intensive.sh - ``` + ```bash + numactl --cpunodebind=0,1 --membind=0,1 ~/memory_intensive.sh + ``` 3. Visualizzare l'allocazione della memoria sui nodi NUMA - ```bash - numactl --show - ``` + ```bash + numactl --show + ``` 4. Legare la memoria a un nodo specifico eseguendo: - ```bash - numactl --membind=0 ~/memory_intensive.sh - ``` + ```bash + numactl --membind=0 ~/memory_intensive.sh + ``` 5. Pulite l'ambiente di lavoro rimuovendo lo script. - ```bash - rm ~/memory_intensive.sh - ``` + ```bash + rm ~/memory_intensive.sh + ``` ## Esercizio 6 @@ -462,19 +462,19 @@ Il comando `iotop` monitora l'utilizzo dell'I/O (input/output) del disco da part 1. Installare l'utilità `iotop` se non è installata. Digitare: - ```bash - sudo dnf -y install iotop - ``` + ```bash + sudo dnf -y install iotop + ``` #### Per usare `iotop` per monitorare l'I/O del disco 1. Eseguire il comando \`iotop' senza alcuna opzione per utilizzarlo nella sua modalità interattiva predefinita. Digitare: - ```bash - sudo iotop - ``` + ```bash + sudo iotop + ``` - Osservare l'utilizzo del disco live I/O da parte dei vari processi. Si usa per identificare i processi che stanno leggendo o scrivendo sul disco. + Osservare l'utilizzo del disco live I/O da parte dei vari processi. Si usa per identificare i processi che stanno leggendo o scrivendo sul disco. 2. Digitare ++"q"++ per uscire da `iotop`. @@ -482,27 +482,27 @@ Il comando `iotop` monitora l'utilizzo dell'I/O (input/output) del disco da part 1. Eseguire `iotop` in modalità batch (-b) per ottenere una visione non interattiva e immediata dell'utilizzo dell'I/O. L'opzione `-n 10` indica a `iotop` di prelevare 10 campioni prima di uscire. - ```bash - sudo iotop -b -n 10 - ``` + ```bash + sudo iotop -b -n 10 + ``` 2. `iotop` può filtrare l'I/O per processi specifici. Identificare l'ID di un processo (PID) dal sistema utilizzando il comando ps o la visualizzazione `iotop`. Quindi, filtrare l'uscita `iotop` per quel PID specifico. Ad esempio, filtrare il PID del processo `sshd`, eseguendo: - ```bash - sudo iotop -p $(pgrep sshd | head -1) - ``` + ```bash + sudo iotop -p $(pgrep sshd | head -1) + ``` 3. L'opzione -`o` con `iotop` può essere usata per mostrare i processi o i thread che eseguono l'I/O effettivo, invece di visualizzare tutti i processi o i thread. Visualizzare solo i processi di I/O in esecuzione: - ```bash - sudo iotop -o - ``` + ```bash + sudo iotop -o + ``` - !!! Question "Discussione" + !!! Question "Discussione" - ``` - Discutere l'impatto dell'I/O del disco sulle prestazioni complessive del sistema e come strumenti come `iotop` possono aiutare nell'ottimizzazione del sistema. - ``` + ``` + Discutere l'impatto dell'I/O del disco sulle prestazioni complessive del sistema e come strumenti come `iotop` possono aiutare nell'ottimizzazione del sistema. + ``` ## Esercizio 7 @@ -516,141 +516,141 @@ Questo esercizio dimostra l'interazione diretta con il filesystem `cgroup` v2. 1. Usare il comando `ls` per esplorare il contenuto e la struttura del filesystem `cgroup`. Digitare: - ```bash - ls /sys/fs/cgroup/ - ``` + ```bash + ls /sys/fs/cgroup/ + ``` 2. Usare di nuovo il comando `ls` per elencare le cartelle \*.slice sotto il filesystem `cgroup`. Digitare: - ```bash - ls -d /sys/fs/cgroup/*.slice - ``` + ```bash + ls -d /sys/fs/cgroup/*.slice + ``` - Le cartelle con estensione .slice sono solitamente utilizzate in `systemd` per rappresentare una porzione delle risorse di sistema. Si tratta di `cgroups` standard gestiti da `systemd` per organizzare e gestire i processi di sistema. + Le cartelle con estensione .slice sono solitamente utilizzate in `systemd` per rappresentare una porzione delle risorse di sistema. Si tratta di `cgroups` standard gestiti da `systemd` per organizzare e gestire i processi di sistema. ### Per creare un `cgroup` personalizzato 1. Creare una directory denominata "exercise_group" nel file system /sys/fs/cgroup. Questa nuova cartella ospiterà le strutture dei gruppi di controllo necessarie per il resto dell'esercizio. Utilizzare il comando `mkdir` digitando: - ```bash - sudo mkdir -p /sys/fs/cgroup/exercise_group - ``` + ```bash + sudo mkdir -p /sys/fs/cgroup/exercise_group + ``` 2. Elenca i file e le directory sotto la struttura /sys/fs/cgroup/exercise_group. Digitare: - ```bash - sudo ls /sys/fs/cgroup/exercise_group/ - ``` + ```bash + sudo ls /sys/fs/cgroup/exercise_group/ + ``` - L'output mostra i file e le directory creati automaticamente dal sottosistema `cgroup` per gestire e monitorare le risorse del `cgroup`. + L'output mostra i file e le directory creati automaticamente dal sottosistema `cgroup` per gestire e monitorare le risorse del `cgroup`. #### Per impostare un nuovo limite di risorse di memoria 1. Impostare un limite di risorse di memoria per limitare l'uso della memoria a 4096 byte (4kB). Per limitare i processi nel `cgroup` affinché utilizzino un massimo di 4 kB di memoria, digitare: - ```bash - echo 4096 | sudo tee /sys/fs/cgroup/exercise_group/memory.max - ``` + ```bash + echo 4096 | sudo tee /sys/fs/cgroup/exercise_group/memory.max + ``` 2. Confermare l'impostazione del limite di memoria. Digitare: - ```bash - cat /sys/fs/cgroup/exercise_group/memory.max - ``` + ```bash + cat /sys/fs/cgroup/exercise_group/memory.max + ``` #### Per creare lo script di test memory_stress 1. Creare un semplice script eseguibile usando il comando `dd` per testare il limite delle risorse di memoria. Digitare: - ```bash - cat > ~/memory_stress.sh << EOF - #!/bin/bash - dd if=/dev/zero of=/tmp/stress_test bs=10M count=2000 - EOF - chmod +x ~/memory_stress.sh - ``` + ```bash + cat > ~/memory_stress.sh << EOF + #!/bin/bash + dd if=/dev/zero of=/tmp/stress_test bs=10M count=2000 + EOF + chmod +x ~/memory_stress.sh + ``` #### Per eseguire e aggiungere processi/script alla memoria `cgroup` 1. Avviare lo script `memory_stress.sh`, catturare il suo PID e aggiungere il PID a `cgroup.procs`. Digitare: - ```bash - ~/memory_stress.sh & - echo $! | sudo tee /sys/fs/cgroup/exercise_group/cgroup.procs - ``` + ```bash + ~/memory_stress.sh & + echo $! | sudo tee /sys/fs/cgroup/exercise_group/cgroup.procs + ``` - Utilizzare il file /sys/fs/cgroup/exercise_group/cgroup.procs per aggiungere o visualizzare i PID (Process ID) dei processi che sono membri di un determinato `cgroup`. La scrittura di un PID in questo file assegna il processo di script `memory_stress.sh` al `cgroup`. + Utilizzare il file /sys/fs/cgroup/exercise_group/cgroup.procs per aggiungere o visualizzare i PID (Process ID) dei processi che sono membri di un determinato `cgroup`. La scrittura di un PID in questo file assegna il processo di script `memory_stress.sh` al `cgroup`. 2. Il comando precedente terminerà molto rapidamente prima del completamento, perché ha superato i limiti di memoria di `cgroup`. È possibile eseguire il seguente comando `journalctl` in un altro terminale per visualizzare l'errore mentre si verifica. Digitare: - ```bash - journalctl -xe -f | grep -i memory - ``` + ```bash + journalctl -xe -f | grep -i memory + ``` - !!! tip "Suggerimento" + !!! tip "Suggerimento" - ```` - È possibile utilizzare rapidamente il comando ps per verificare l'utilizzo approssimativo della memoria di un processo se si conosce il PID del processo in esecuzione: + ```` + È possibile utilizzare rapidamente il comando ps per verificare l'utilizzo approssimativo della memoria di un processo se si conosce il PID del processo in esecuzione: - ```bash - pidof | xargs ps -o pid,comm,rss - ``` + ```bash + pidof | xargs ps -o pid,comm,rss + ``` - Questo output dovrebbe mostrare il Resident Set Size (RSS) in KB, che indica la memoria utilizzata dal processo specificato in un determinato momento. Ogni volta che il valore RSS di un processo supera il limite di memoria specificato nel valore memory.max di `cgroup`, il processo può essere soggetto alle politiche di gestione della memoria applicate dal kernel o dallo stesso `cgroup`. A seconda della configurazione del sistema, il sistema può intraprendere azioni quali la limitazione dell'uso della memoria del processo, l'arresto del processo o l'attivazione di un evento OOM (Out-of-Memory). - ```` + Questo output dovrebbe mostrare il Resident Set Size (RSS) in KB, che indica la memoria utilizzata dal processo specificato in un determinato momento. Ogni volta che il valore RSS di un processo supera il limite di memoria specificato nel valore memory.max di `cgroup`, il processo può essere soggetto alle politiche di gestione della memoria applicate dal kernel o dallo stesso `cgroup`. A seconda della configurazione del sistema, il sistema può intraprendere azioni quali la limitazione dell'uso della memoria del processo, l'arresto del processo o l'attivazione di un evento OOM (Out-of-Memory). + ```` #### Per impostare un nuovo limite di risorse della CPU 1. Limitare l'uso dello script solo al 10% di un core della CPU. Digitare: - ```bash - echo 10000 | sudo tee /sys/fs/cgroup/exercise_group/cpu.max - ``` + ```bash + echo 10000 | sudo tee /sys/fs/cgroup/exercise_group/cpu.max + ``` - 10000 rappresenta il limite di larghezza di banda della CPU. È impostato sul 10% della capacità totale di un singolo core della CPU. + 10000 rappresenta il limite di larghezza di banda della CPU. È impostato sul 10% della capacità totale di un singolo core della CPU. 2. Confermare che è stato impostato il limite della CPU. Digitare: - ```bash - cat /sys/fs/cgroup/exercise_group/cpu.max - ``` + ```bash + cat /sys/fs/cgroup/exercise_group/cpu.max + ``` #### Per creare lo script del test di stress della CPU 1. Creare e impostare le autorizzazioni di esecuzione per uno script che genera un elevato utilizzo della CPU. Digitare: - ```bash - cat > ~/cpu_stress.sh << EOF - #!/bin/bash - exec yes > /dev/null - EOF - chmod +x ~/cpu_stress.sh - ``` + ```bash + cat > ~/cpu_stress.sh << EOF + #!/bin/bash + exec yes > /dev/null + EOF + chmod +x ~/cpu_stress.sh + ``` - !!! note "Nota" + !!! note "Nota" - ``` - `yes > /dev/null` è un comando semplice che genera un elevato carico di CPU. - ``` + ``` + `yes > /dev/null` è un comando semplice che genera un elevato carico di CPU. + ``` #### Per eseguire e aggiungere un processo/script al `cgroup` della CPU 1. Eseguire lo script e aggiungere contemporaneamente il suo PID al `cgroup`, digitando: - ```bash - ~/cpu_stress.sh & - echo $! | sudo tee /sys/fs/cgroup/exercise_group/cgroup.procs - ``` + ```bash + ~/cpu_stress.sh & + echo $! | sudo tee /sys/fs/cgroup/exercise_group/cgroup.procs + ``` #### Per confermare il controllo dell'utilizzo della CPU del processo 1. Controllare l'utilizzo della CPU del processo. - ```bash - pidof yes | xargs top -b -n 1 -p - ``` + ```bash + pidof yes | xargs top -b -n 1 -p + ``` - L'output dovrebbe mostrare l'utilizzo della CPU in tempo reale del processo yes. La %CPU per yes dovrebbe essere limitata in base alla configurazione di `cgroup` (ad esempio, circa il 10% se il limite è impostato a 10000). + L'output dovrebbe mostrare l'utilizzo della CPU in tempo reale del processo yes. La %CPU per yes dovrebbe essere limitata in base alla configurazione di `cgroup` (ad esempio, circa il 10% se il limite è impostato a 10000). 2. Impostate e sperimentate altri valori per cpu.max per il gruppo di esercizio `cgroup` e poi osservate l'effetto ogni volta che rieseguite lo script ~/cpu_stress.sh nel gruppo di controllo. @@ -660,74 +660,74 @@ Il dispositivo di archiviazione primario può essere un obiettivo per impostare 1. Per prima cosa, creare una serie di variabili ausiliarie per rilevare e memorizzare il numero di dispositivo del dispositivo di archiviazione primario sul server. Digitare: - ```bash - primary_device=$(lsblk | grep disk | awk '{print $1}' | head -n 1) - primary_device_num=$(ls -l /dev/$primary_device | awk '{print $5, $6}' | sed 's/,/:/') - ``` + ```bash + primary_device=$(lsblk | grep disk | awk '{print $1}' | head -n 1) + primary_device_num=$(ls -l /dev/$primary_device | awk '{print $5, $6}' | sed 's/,/:/') + ``` 2. Visualizzare il valore della variabile `$primary_device_num`. Digitare: - ```bash - echo "Primary Storage Device Number: $primary_device_num" - ``` + ```bash + echo "Primary Storage Device Number: $primary_device_num" + ``` 3. I numeri di dispositivo maggiore e minore dovrebbero corrispondere a quelli visualizzati nell'output di ls: - ```bash - ls -l /dev/$primary_device - ``` + ```bash + ls -l /dev/$primary_device + ``` #### Per impostare un nuovo limite di risorse di I/O 1. Impostare le operazioni di I/O a 1 MB/s per i processi di lettura e scrittura sotto il gruppo di esercizio `cgroup`. Digitare: - ```bash - echo "$primary_device_num rbps=1048576 wbps=1048576" | \ - sudo tee /sys/fs/cgroup/exercise_group/io.max - ``` + ```bash + echo "$primary_device_num rbps=1048576 wbps=1048576" | \ + sudo tee /sys/fs/cgroup/exercise_group/io.max + ``` 2. Confermare i limiti di I/O impostati. Digitare: - ```bash - cat /sys/fs/cgroup/exercise_group/io.max - ``` + ```bash + cat /sys/fs/cgroup/exercise_group/io.max + ``` #### Per creare il processo di stress test I/O 1. Avviare un processo `dd` per creare un file di grandi dimensioni chiamato `/tmp/io_stress`. Inoltre, catturare e memorizzare il PID del processo `dd` in una variabile chiamata `MYPID`. Digitare: - ```bash - dd if=/dev/zero of=/tmp/io_stress bs=10M count=500 oflag=dsync \ - & export MYPID=$! - ``` + ```bash + dd if=/dev/zero of=/tmp/io_stress bs=10M count=500 oflag=dsync \ + & export MYPID=$! + ``` #### Per aggiungere un processo/script al `cgroup` di I/O 1. Aggiungere il PID del processo `dd` precedente al controllo `cgroup` di exercise_group. Digitare: - ```bash - echo $MYPID | sudo tee /sys/fs/cgroup/exercise_group/cgroup.procs - ``` + ```bash + echo $MYPID | sudo tee /sys/fs/cgroup/exercise_group/cgroup.procs + ``` #### Per confermare il controllo delle risorse di utilizzo dell'I/O del processo 1. Controllare l'utilizzo dell'I/O del processo eseguendo: - ```bash - iotop -p $MYPID - ``` + ```bash + iotop -p $MYPID + ``` - L'output mostrerà la velocità di I/O in lettura/scrittura del processo io_stress.sh, che non dovrebbe superare 1 MB/s come da limite. + L'output mostrerà la velocità di I/O in lettura/scrittura del processo io_stress.sh, che non dovrebbe superare 1 MB/s come da limite. #### Eliminazione di `cgroups` 1. Digitare i seguenti comandi per terminare qualsiasi processo in background, eliminare il `cgroup` non più necessario e rimuovere il file /tmp/io_stress. - ```bash - kill %1 - sudo rmdir /sys/fs/cgroup/exercise_group/ - sudo rm -rf /tmp/io_stress - ``` + ```bash + kill %1 + sudo rmdir /sys/fs/cgroup/exercise_group/ + sudo rm -rf /tmp/io_stress + ``` ## Esercizio 8 @@ -739,89 +739,89 @@ L'affinità della CPU associa processi o thread specifici a particolari core del 1. Utilizzare `lscpu` per elencare le CPU disponibili sul sistema. Digitare: - ```bash - lscpu | grep "On-line" - ``` + ```bash + lscpu | grep "On-line" + ``` 2. Creare un processo campione utilizzando l'utilità `dd` e memorizzare il suo PID in una variabile `MYPID`. Digitare: - ```bash - dd if=/dev/zero of=/dev/null & export MYPID="$!" - echo $MYPID - ``` + ```bash + dd if=/dev/zero of=/dev/null & export MYPID="$!" + echo $MYPID + ``` 3. Recupera l'affinità corrente per il processo `dd`. Digitare: - ```bash - taskset -p $MYPID - ``` + ```bash + taskset -p $MYPID + ``` - OUTPUT: + OUTPUT: - ```bash - pid 1211483's current affinity mask: f - ``` + ```bash + pid 1211483's current affinity mask: f + ``` - L'output mostra la maschera di affinità della CPU del processo con PID 1211483 (`$MYPID`), rappresentata in formato esadecimale. Nel nostro sistema campione, la maschera di affinità visualizzata è "f", che in genere significa che il processo può essere eseguito su qualsiasi core della CPU. + L'output mostra la maschera di affinità della CPU del processo con PID 1211483 (`$MYPID`), rappresentata in formato esadecimale. Nel nostro sistema campione, la maschera di affinità visualizzata è "f", che in genere significa che il processo può essere eseguito su qualsiasi core della CPU. - !!! note "Nota" + !!! note "Nota" - ``` - La maschera di affinità della CPU "f" rappresenta una configurazione in cui tutti i core della CPU sono abilitati. In notazione esadecimale, "f" corrisponde al valore binario "1111". Ogni bit nella rappresentazione binaria corrisponde a un core della CPU, con "1" che indica che il core è abilitato e disponibile per l'esecuzione del processo. + ``` + La maschera di affinità della CPU "f" rappresenta una configurazione in cui tutti i core della CPU sono abilitati. In notazione esadecimale, "f" corrisponde al valore binario "1111". Ogni bit nella rappresentazione binaria corrisponde a un core della CPU, con "1" che indica che il core è abilitato e disponibile per l'esecuzione del processo. - Pertanto, su una CPU a quattro core, con la maschera "f": + Pertanto, su una CPU a quattro core, con la maschera "f": - Core 0: Enabled - Core 1: Enabled - Core 2: Enabled - Core 3: Enabled - ``` + Core 0: Enabled + Core 1: Enabled + Core 2: Enabled + Core 3: Enabled + ``` ### Impostazione/modifica dell'affinità della CPU 1. Imposta l'affinità della CPU del processo `dd` su una sola CPU (CPU 0). Digitare: - ```bash - taskset -p 0x1 $MYPID - ``` + ```bash + taskset -p 0x1 $MYPID + ``` - OUTPUT + OUTPUT - ```bash - pid 1211483's current affinity mask: f - pid 1211483's new affinity mask: 1 - ``` + ```bash + pid 1211483's current affinity mask: f + pid 1211483's new affinity mask: 1 + ``` 2. Verificate la modifica eseguendo il seguente comando: - ```bash - taskset -p $MYPID - ``` + ```bash + taskset -p $MYPID + ``` - L'output indica la maschera di affinità della CPU del processo con PID `$MYPID`. La maschera di affinità è "1" in decimale, che si traduce in "1" in binario. Ciò significa che il processo è attualmente legato al core 0 della CPU. + L'output indica la maschera di affinità della CPU del processo con PID `$MYPID`. La maschera di affinità è "1" in decimale, che si traduce in "1" in binario. Ciò significa che il processo è attualmente legato al core 0 della CPU. 3. Ora, impostare l'affinità della CPU del processo `dd` su più CPU (CPU 0 e 1). Digitare: - ```bash - taskset -p 0x3 $MYPID - ``` + ```bash + taskset -p 0x3 $MYPID + ``` 4. Eseguire il comando `tasksel` corretto per verificare l'ultima modifica. - ```bash - taskset -p $MYPID - ``` + ```bash + taskset -p $MYPID + ``` - Sul nostro server demo a 4 core, l'output mostra che la maschera di affinità della CPU del processo è "3" (in decimale). Ciò si traduce in "11" in binario. + Sul nostro server demo a 4 core, l'output mostra che la maschera di affinità della CPU del processo è "3" (in decimale). Ciò si traduce in "11" in binario. - !!! tip "Suggerimento" + !!! tip "Suggerimento" - ``` - Il "3" decimale corrisponde a "11" (o 0011) in binario. - Ogni cifra binaria corrisponde a un core della CPU: core 0, core 1, core 2, core 3 (da destra a sinistra). - La cifra "1" nella quarta e terza posizione (da destra) indica che il processo può essere eseguito sui core 0 e 1. - Pertanto, "3" indica che il processo è legato ai core 0 e 1 della CPU. - ``` + ``` + Il "3" decimale corrisponde a "11" (o 0011) in binario. + Ogni cifra binaria corrisponde a un core della CPU: core 0, core 1, core 2, core 3 (da destra a sinistra). + La cifra "1" nella quarta e terza posizione (da destra) indica che il processo può essere eseguito sui core 0 e 1. + Pertanto, "3" indica che il processo è legato ai core 0 e 1 della CPU. + ``` 5. Lanciate l'utilità `top` o `htop` in un terminale separato e osservate se vedete qualcosa di interessante mentre sperimentate diverse configurazioni di `taskset` per un processo. @@ -839,86 +839,86 @@ Questo esercizio mostra come usare `systemd-run` per creare unità di servizio t 1. Eseguire il semplice comando sleep 300 come servizio transitorio `systemd` usando `systemd-run`. Digitare: - ```bash - systemd-run --unit=mytransient.service --description="Example Service" sleep 300 - ``` + ```bash + systemd-run --unit=mytransient.service --description="Example Service" sleep 300 + ``` 2. Controllare lo stato del servizio transitorio usando `systemctl status`. Digitare: - ```bash - systemctl status mytransient.service - ``` + ```bash + systemctl status mytransient.service + ``` #### Impostazione di un limite di risorse di memoria per un servizio transitorio 1. Usare il parametro `--property` con `systemd-run` per limitare l'uso massimo della memoria per il processo transitorio a 200M. Digitare: - ```bash - systemd-run --unit=mylimited.service --property=MemoryMax=200M sleep 300 - ``` + ```bash + systemd-run --unit=mylimited.service --property=MemoryMax=200M sleep 300 + ``` 2. Cercare il processo nel file system `cgroup` corrispondente per verificare l'impostazione. Digitare: - ```bash - sudo cat /sys/fs/cgroup/system.slice/mytransient.service/memory.max - ``` + ```bash + sudo cat /sys/fs/cgroup/system.slice/mytransient.service/memory.max + ``` - !!! tip "Suggerimento" + !!! tip "Suggerimento" - ``` - `systemd.resource-control` è un'entità di configurazione o di gestione (concetto) all'interno del framework `systemd`, progettata per controllare e allocare le risorse del sistema ai processi e ai servizi. E `systemd.exec` è un componente di `systemd` responsabile della definizione dell'ambiente di esecuzione in cui vengono eseguiti i comandi. Per visualizzare le varie impostazioni (proprietà) che si possono modificare quando si usa `systemd-run`, consultare le pagine di manuale di `systemd.resource-control` e `systemd.exec`. Qui si trova la documentazione delle proprietà come MemoryMax, CPUAccounting, IOWeight, ecc. - ``` + ``` + `systemd.resource-control` è un'entità di configurazione o di gestione (concetto) all'interno del framework `systemd`, progettata per controllare e allocare le risorse del sistema ai processi e ai servizi. E `systemd.exec` è un componente di `systemd` responsabile della definizione dell'ambiente di esecuzione in cui vengono eseguiti i comandi. Per visualizzare le varie impostazioni (proprietà) che si possono modificare quando si usa `systemd-run`, consultare le pagine di manuale di `systemd.resource-control` e `systemd.exec`. Qui si trova la documentazione delle proprietà come MemoryMax, CPUAccounting, IOWeight, ecc. + ``` #### Impostazione del limite delle risorse della CPU per un servizio transitorio 1. Creare un'unità transitoria `systemd` chiamata "myrealtime.service". Eseguire `myrealtime.service` con una specifica politica di schedulazione round robin (rr) e priorità. Digitare: - ```bash - systemd-run --unit=myrealtime.service \ - --property=CPUSchedulingPolicy=rr --property=CPUSchedulingPriority=50 sleep 300 - ``` + ```bash + systemd-run --unit=myrealtime.service \ + --property=CPUSchedulingPolicy=rr --property=CPUSchedulingPriority=50 sleep 300 + ``` 2. Visualizzare lo stato di `myrealtime.service`. Inoltre, catturare/memorizzare il PID principale [sleep] in una variabile MYPID. Digitare: - ```bash - MYPID=$(systemctl status myrealtime.service | awk '/Main PID/ {print $3}') - ``` + ```bash + MYPID=$(systemctl status myrealtime.service | awk '/Main PID/ {print $3}') + ``` 3. Verificare la politica di programmazione della CPU mentre il servizio è ancora in esecuzione. Digitare: - ```bash - chrt -p $MYPID - pid 2553792's current scheduling policy: SCHED_RR - pid 2553792's current scheduling priority: 50 - ``` + ```bash + chrt -p $MYPID + pid 2553792's current scheduling policy: SCHED_RR + pid 2553792's current scheduling priority: 50 + ``` ### Creazione di una unità timer transitoria 1. Creare una semplice unità timer che esegua un semplice comando di eco. L'opzione `--on-active=2m` imposta l'attivazione del timer 2 minuti dopo l'attivazione dell'unità timer. Digitare: - ```bash - systemd-run --on-active=2m --unit=mytimer.timer \ - --description="Example Timer" echo "Timer triggered" - ``` + ```bash + systemd-run --on-active=2m --unit=mytimer.timer \ + --description="Example Timer" echo "Timer triggered" + ``` - Il timer inizia il conto alla rovescia dal momento in cui l'unità viene attivata e, dopo 2 minuti, attiva l'azione specificata. + Il timer inizia il conto alla rovescia dal momento in cui l'unità viene attivata e, dopo 2 minuti, attiva l'azione specificata. 2. Visualizza i dettagli/stato dell'unità timer appena creata. Digitare: - ```bash - systemctl status mytimer.timer - ``` + ```bash + systemctl status mytimer.timer + ``` #### Arresto e pulizia delle unità transitorie di `systemd` 1. Digitare i seguenti comandi per assicurarsi che i vari servizi/processi transitori avviati per questa esercitazione siano correttamente arrestati e rimossi dal sistema. Digitare: - ```bash - systemctl stop mytransient.service - systemctl stop mylimited.service - systemctl stop myrealtime.service - systemctl stop mytimer.timer - ``` + ```bash + systemctl stop mytransient.service + systemctl stop mylimited.service + systemctl stop myrealtime.service + systemctl stop mytimer.timer + ``` ## Esercizio 10 @@ -930,97 +930,97 @@ Questo esercizio dimostra l'uso di `schedtool` per comprendere e manipolare la s 1. Installare l'applicazione `schedtool` se non è installata sul server. Digitare: - ```bash - sudo dnf -y install schedtool - ``` + ```bash + sudo dnf -y install schedtool + ``` #### Creazione di uno script di processo simulato 1. Creare uno script che generi il carico della CPU a scopo di test. Digitare: - ```bash - cat > ~/cpu_load_generator.sh << EOF - #!/bin/bash - while true; do - openssl speed > /dev/null 2>&1 - openssl speed > /dev/null 2>&1 - - done - EOF - chmod +x ~/cpu_load_generator.sh - ``` + ```bash + cat > ~/cpu_load_generator.sh << EOF + #!/bin/bash + while true; do + openssl speed > /dev/null 2>&1 + openssl speed > /dev/null 2>&1 + + done + EOF + chmod +x ~/cpu_load_generator.sh + ``` 2. Avviare lo script in background. Digitare: - ```bash - ~/cpu_load_generator.sh & echo $! - ``` + ```bash + ~/cpu_load_generator.sh & echo $! + ``` 3. Acquisire il PID del processo principale `openssl` avviato all'interno dello script `cpu_load_generator.sh`. Memorizzare il PID in una variabile denominata `$MYPID`. Digitare: - ```bash - export MYPID=$(pidof openssl) ; echo $MYPID - ``` + ```bash + export MYPID=$(pidof openssl) ; echo $MYPID + ``` #### Utilizzo di `schedtool` per controllare la politica di schedulazione corrente 1. Usare il comando `schedtool` per visualizzare le informazioni di pianificazione del processo con PID `$MYPID`. Digitare: - ```bash - schedtool $MYPID - ``` + ```bash + schedtool $MYPID + ``` - OUTPUT: + OUTPUT: - ```bash - PID 2565081: PRIO 0, POLICY N: SCHED_NORMAL , NICE 0, AFFINITY 0xf - ``` + ```bash + PID 2565081: PRIO 0, POLICY N: SCHED_NORMAL , NICE 0, AFFINITY 0xf + ``` #### Utilizzo di `schedtool` per modificare la politica di scheduling 1. Modificare la politica di schedulazione e la priorità dei processi FIFO e 10, rispettivamente. Digitare: - ```bash - sudo schedtool -F -p 10 $! - ``` + ```bash + sudo schedtool -F -p 10 $! + ``` 2. Visualizzare l'effetto delle modifiche. Digitare: - ```bash - schedtool $MYPID - ``` + ```bash + schedtool $MYPID + ``` 3. Modificare la politica di schedulazione e la priorità del processo in round robin o SCHED_RR (RR) e 50, rispettivamente. Digitare: - ```bash - sudo schedtool -R -p 50 $MYPID - ``` + ```bash + sudo schedtool -R -p 50 $MYPID + ``` 4. Visualizzare l'effetto delle modifiche. Digitare: - ```bash - schedtool $MYPID - ``` + ```bash + schedtool $MYPID + ``` 5. Modificare la politica di pianificazione del processo in Idle o SCHED_IDLEPRIO (D). Digitare: - ```bash - sudo schedtool -D $MYPID - ``` + ```bash + sudo schedtool -D $MYPID + ``` 6. Visualizzare l'effetto delle modifiche. 7. Infine, ripristinare la politica di schedulazione del processo al valore predefinito originale SCHED_NORMAL (N o altro). Digitare: - ```bash - sudo schedtool -N $MYPID - ``` + ```bash + sudo schedtool -N $MYPID + ``` #### Arresto e puliza del processo `cpu_load_generator.sh` 1. Tutto fatto. Terminare lo script e cancellare lo script `cpu_load_generator.sh`. - ```bash - kill $MYPID - rm ~/cpu_load_generator.sh - ``` + ```bash + kill $MYPID + rm ~/cpu_load_generator.sh + ``` From 984d4ed0cd468afcfcd85de722827538a98555e4 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:52 -0400 Subject: [PATCH 111/167] New translations iftop.md (Italian) --- docs/gemstones/network/iftop.it.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/gemstones/network/iftop.it.md b/docs/gemstones/network/iftop.it.md index 60b36b57b8..55aa3b61ed 100644 --- a/docs/gemstones/network/iftop.it.md +++ b/docs/gemstones/network/iftop.it.md @@ -83,21 +83,21 @@ TOTAL: 60.5MB 242Mb 242Mb 242Mb 242Mb Sezionando le righe finali del pannello: -- TX - Utilizzo dei dati di trasmissione/caricamento -- RX - Utilizzo dei dati di ricezione/download -- TOTAL - Utilizzo combinato di upload/download + - TX - Utilizzo dei dati di trasmissione/caricamento + - RX - Utilizzo dei dati di ricezione/download + - TOTAL - Utilizzo combinato di upload/download ## Tasti di scelta rapida per l'interazione -- \++s++ - aggrega tutto il traffico per ogni origine -- \++d++ - aggrega tutto il traffico per ogni destinazione -- \++shift+s++ - attiva/disattiva la visualizzazione della porta di origine -- \++shift+d++ - attiva/disattiva la visualizzazione della porta di destinazione -- \++t++ - passa da una modalità di visualizzazione all'altra: visualizzazione predefinita a due righe con traffico in invio e in ricezione e visualizzazione a tre righe con traffico in invio, in ricezione e totale -- \++1++, ++2++, ++3++ - ordina per prima, seconda o terza colonna -- \++l++ - inserisce un'espressione regolare POSIX per filtrare i nomi di host -- \++shift+p++ - mette in pausa la visualizzazione corrente -- \++o++ - blocca il conteggio della larghezza di banda totale -- \++j++ - scorre verso il basso -- \++k++ - scorre verso l'alto -- \++f++ - modifica il codice del filtro + - \++s++ - aggrega tutto il traffico per ogni origine + - \++d++ - aggrega tutto il traffico per ogni destinazione + - \++shift+s++ - attiva/disattiva la visualizzazione della porta di origine + - \++shift+d++ - attiva/disattiva la visualizzazione della porta di destinazione + - \++t++ - passa da una modalità di visualizzazione all'altra: visualizzazione predefinita a due righe con traffico in invio e in ricezione e visualizzazione a tre righe con traffico in invio, in ricezione e totale + - \++1++, ++2++, ++3++ - ordina per prima, seconda o terza colonna + - \++l++ - inserisce un'espressione regolare POSIX per filtrare i nomi di host + - \++shift+p++ - mette in pausa la visualizzazione corrente + - \++o++ - blocca il conteggio della larghezza di banda totale + - \++j++ - scorre verso il basso + - \++k++ - scorre verso l'alto + - \++f++ - modifica il codice del filtro From 9f0e4399d5373ca285b9a00fad0d2185eadf9418 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:54 -0400 Subject: [PATCH 112/167] New translations test_cpu_compat.md (Italian) --- docs/gemstones/test_cpu_compat.it.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/gemstones/test_cpu_compat.it.md b/docs/gemstones/test_cpu_compat.it.md index fd1d44feea..29d4c9b14b 100644 --- a/docs/gemstones/test_cpu_compat.it.md +++ b/docs/gemstones/test_cpu_compat.it.md @@ -18,18 +18,18 @@ Dal rilascio di Rocky Linux 9, alcune installazioni su piattaforme x86-64 sono f 3. Al termine dell'avvio, aprire una finestra del terminale ed eseguire questa operazione: - ```bash - /lib64/ld-linux-x86-64.so.2 --help | grep x86-64 - ``` + ```bash + /lib64/ld-linux-x86-64.so.2 --help | grep x86-64 + ``` - Si dovrebbe ottenere un risultato simile a questo: + Si dovrebbe ottenere un risultato simile a questo: - ```bash - Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] - This program interpreter self-identifies as: /lib64/ld-linux-x86-64.so.2 - x86-64-v4 - x86-64-v3 - x86-64-v2 (supported, searched) - ``` + ```bash + Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] + This program interpreter self-identifies as: /lib64/ld-linux-x86-64.so.2 + x86-64-v4 + x86-64-v3 + x86-64-v2 (supported, searched) + ``` - Questo output indica la versione minima richiesta per x86-64 (v2). In questo caso, l'installazione può continuare. Se accanto alla voce "x86-64-v2" non compare "(supported, searched)", allora la vostra CPU non è **compatibile** con Rocky Linux 9.x. Se il test indica che l'installazione può procedere e indica anche x86-64-v3 (richiesto per Rocky Linux 10) e x86-64-v4 come "(supported, searched)", la vostra CPU è ben supportata per 9.x e le versioni future. + Questo output indica la versione minima richiesta per x86-64 (v2). In questo caso, l'installazione può continuare. Se accanto alla voce "x86-64-v2" non compare "(supported, searched)", allora la vostra CPU non è **compatibile** con Rocky Linux 9.x. Se il test indica che l'installazione può procedere e indica anche x86-64-v3 (richiesto per Rocky Linux 10) e x86-64-v4 come "(supported, searched)", la vostra CPU è ben supportata per 9.x e le versioni future. From 72d9ea5396135d58684db4b8df00dacc305b5f10 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:56 -0400 Subject: [PATCH 113/167] New translations 00-gh_cli_installation.md (Italian) --- .../git/00-gh_cli_installation.it.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/gemstones/git/00-gh_cli_installation.it.md b/docs/gemstones/git/00-gh_cli_installation.it.md index 292ce56d7e..4734f413f2 100644 --- a/docs/gemstones/git/00-gh_cli_installation.it.md +++ b/docs/gemstones/git/00-gh_cli_installation.it.md @@ -27,28 +27,28 @@ Gli utenti hanno bisogno di un modo comodo per interagire con GitHub senza lasci ## Procedura 1. **Installare il repo GitHub CLI usando curl**: - Utilizzare il comando curl per scaricare il file del repository ufficiale di `gh`. Il file scaricato deve essere salvato nella directory /etc/yum.repos.d/. Una volta scaricato, usare il comando dnf per installare `gh` dal repository. Digitare: + Utilizzare il comando curl per scaricare il file del repository ufficiale di `gh`. Il file scaricato deve essere salvato nella directory /etc/yum.repos.d/. Una volta scaricato, usare il comando dnf per installare `gh` dal repository. Digitare: - ```bash - curl -fsSL https://cli.github.com/packages/rpm/gh-cli.repo | sudo tee /etc/yum.repos.d/github-cli.repo - sudo dnf -y install gh - ``` + ```bash + curl -fsSL https://cli.github.com/packages/rpm/gh-cli.repo | sudo tee /etc/yum.repos.d/github-cli.repo + sudo dnf -y install gh + ``` 2. **Verificare l'installazione**: - Assicurarsi che `gh` sia installato correttamente. Digitare: + Assicurarsi che `gh` sia installato correttamente. Digitare: - ```bash - gh --version - ``` + ```bash + gh --version + ``` 3. **Autenticazione con GitHub**: - Accedere al proprio account GitHub. Digitare: + Accedere al proprio account GitHub. Digitare: - ```bash - gh auth login - ``` + ```bash + gh auth login + ``` - Seguire le istruzioni per l'autenticazione. + Seguire le istruzioni per l'autenticazione. ## Conclusione From 90cae972e006eeb8823e7523c290e5ecff6c809f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:57 -0400 Subject: [PATCH 114/167] New translations 01-gh_cli_1st_pr.md (Italian) --- docs/gemstones/git/01-gh_cli_1st_pr.it.md | 58 +++++++++++------------ 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/gemstones/git/01-gh_cli_1st_pr.it.md b/docs/gemstones/git/01-gh_cli_1st_pr.it.md index 95d685bcf7..97efa331b1 100644 --- a/docs/gemstones/git/01-gh_cli_1st_pr.it.md +++ b/docs/gemstones/git/01-gh_cli_1st_pr.it.md @@ -28,56 +28,56 @@ I collaboratori possono preferire o avere bisogno di eseguire tutte le azioni tr ## Passi della soluzione 1. **Fork del repository usando GitHub CLI**: - Fare il fork del repository upstream sul proprio account. + Fare il fork del repository upstream sul proprio account. - ```bash - gh repo fork https://github.com/rocky-linux/documentation --clone - ``` + ```bash + gh repo fork https://github.com/rocky-linux/documentation --clone + ``` 2. **Andare alla directory del repository**: - ```bash - cd documentation - ``` + ```bash + cd documentation + ``` 3. **Aggiungere il repository Upstream**: - ```bash - git remote add upstream https://github.com/rocky-linux/documentation.git - ``` + ```bash + git remote add upstream https://github.com/rocky-linux/documentation.git + ``` 4. **Creare un Nuovo Ramo**: - Creare un nuovo ramo per il proprio contributo. Digitare: + Creare un nuovo ramo per il proprio contributo. Digitare: - ```bash - git checkout -b new-gemstone - ``` + ```bash + git checkout -b new-gemstone + ``` 5. **Aggiungere il nuovo documento**: - Utilizzate il vostro editor di testo preferito per creare e modificare il vostro nuovo file di contributo. - Per questo esempio, creeremo un nuovo file chiamato `gemstome_new_pr.md` e lo salveremo nella cartella `docs/gemstones/`. + Utilizzate il vostro editor di testo preferito per creare e modificare il vostro nuovo file di contributo. + Per questo esempio, creeremo un nuovo file chiamato `gemstome_new_pr.md` e lo salveremo nella cartella `docs/gemstones/`. 6. **Effettuare il commit delle modifiche**: - Eseguire il commit del nuovo file. Digitare: + Eseguire il commit del nuovo file. Digitare: - ```bash - git add docs/gemstones/gemstome_new_pr.md - git commit -m "Add new Gemstone document" - ``` + ```bash + git add docs/gemstones/gemstome_new_pr.md + git commit -m "Add new Gemstone document" + ``` 7. **Spingere nel proprio fork**: - Inviare le modifiche al proprio fork/copia del repo della documentazione di Rocky Linux. Digitare: + Inviare le modifiche al proprio fork/copia del repo della documentazione di Rocky Linux. Digitare: - ```bash - git push origin new-gemstone - ``` + ```bash + git push origin new-gemstone + ``` 8. **Creare una richiesta di pull**: - Creare una richiesta di pull al repository upstream. + Creare una richiesta di pull al repository upstream. - ```bash - gh pr create --base main --head wsoyinka:new-gemstone --title "New Gemstone: Creating PRs via CLI" --body "Guide on how to contribute to documentation using CLI" - ``` + ```bash + gh pr create --base main --head wsoyinka:new-gemstone --title "New Gemstone: Creating PRs via CLI" --body "Guide on how to contribute to documentation using CLI" + ``` ## Informazioni aggiuntive (facoltative) From 210319b8d8db37558d706497542f3e4b1eaf040d Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:58 -0400 Subject: [PATCH 115/167] New translations 02-gh_cli_edit_pr_title.md (Italian) --- .../git/02-gh_cli_edit_pr_title.it.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/gemstones/git/02-gh_cli_edit_pr_title.it.md b/docs/gemstones/git/02-gh_cli_edit_pr_title.it.md index bde44b3691..01d3969884 100644 --- a/docs/gemstones/git/02-gh_cli_edit_pr_title.it.md +++ b/docs/gemstones/git/02-gh_cli_edit_pr_title.it.md @@ -27,20 +27,20 @@ A volte, il titolo di un PR dopo la sua creazione può dover essere modificato p ### Utilizzare la CLI di GitHub 1. **Controllare il ramo corrispondente**: - - Assicurarsi di essere nel ramo associato al PR. + - Assicurarsi di essere nel ramo associato al PR. - ```bash - git checkout branch-name - ``` + ```bash + git checkout branch-name + ``` 2. **Modificare il PR usando la CLI**: - - Utilizzare il seguente comando per modificare il PR: + - Utilizzare il seguente comando per modificare il PR: - ```bash - gh pr edit PR_NUMBER --title "New PR Title" - ``` + ```bash + gh pr edit PR_NUMBER --title "New PR Title" + ``` - - Sostituire `PR_NUMBER` con il numero della richiesta di pull e `"New PR Title"` con il titolo desiderato. + - Sostituire `PR_NUMBER` con il numero della richiesta di pull e `"New PR Title"` con il titolo desiderato. ## Informazioni aggiuntive (facoltative) From a1c716d4c9b92dda5b9e7ffd67154520a8900978 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:18:59 -0400 Subject: [PATCH 116/167] New translations 02_github_web_edit_pr_title.md (Italian) --- docs/gemstones/git/02_github_web_edit_pr_title.it.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/gemstones/git/02_github_web_edit_pr_title.it.md b/docs/gemstones/git/02_github_web_edit_pr_title.it.md index 0081e1e13d..7fae014f4f 100644 --- a/docs/gemstones/git/02_github_web_edit_pr_title.it.md +++ b/docs/gemstones/git/02_github_web_edit_pr_title.it.md @@ -26,13 +26,13 @@ A volte può essere necessario modificare il titolo di un PR dopo la sua creazio ### Utilizzare l'interfaccia web di GitHub 1. **Andare alla richiesta di pull**: - - Andare al repository dove si trova il PR. - - Cliccare su "Pull requests" e selezionare il PR che si desidera modificare. + - Andare al repository dove si trova il PR. + - Cliccare su "Pull requests" e selezionare il PR che si desidera modificare. 2. **Modificare il titolo del PR**: - - Cliccare sul titolo del PR. - - Apparirà una casella di testo modificabile. - - Modificare il titolo, premere ++enter++ o cliccare al di fuori della casella di testo per salvare le modifiche. + - Cliccare sul titolo del PR. + - Apparirà una casella di testo modificabile. + - Modificare il titolo, premere ++enter++ o cliccare al di fuori della casella di testo per salvare le modifiche. ## Informazioni aggiuntive (facoltative) From 07f8f4b1531d89ed7938440f4bf72da10b2c2455 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:00 -0400 Subject: [PATCH 117/167] New translations gemstone_template.md (Italian) --- docs/gemstones/gemstone_template.it.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/gemstones/gemstone_template.it.md b/docs/gemstones/gemstone_template.it.md index af37a07554..191b2e07a6 100644 --- a/docs/gemstones/gemstone_template.it.md +++ b/docs/gemstones/gemstone_template.it.md @@ -30,15 +30,15 @@ Delineare la procedura o la soluzione con passi numerati: 1. **Primo passo**: - Istruzioni ed esempi di comandi. + Istruzioni ed esempi di comandi. - ```bash - Comando o frammento di codice - ``` + ```bash + Comando o frammento di codice + ``` 2. **Secondo passo**: - Proseguire con le istruzioni dettagliate. + Proseguire con le istruzioni dettagliate. ## Informazioni aggiuntive (facoltative) From 66f8ec0829dcf93b3f6d78c8e74b1b391908cd49 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:01 -0400 Subject: [PATCH 118/167] New translations feature_branch_workflow.md (Italian) --- .../git/feature_branch_workflow.it.md | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/docs/gemstones/git/feature_branch_workflow.it.md b/docs/gemstones/git/feature_branch_workflow.it.md index 220ee1c23d..95cf3b5332 100644 --- a/docs/gemstones/git/feature_branch_workflow.it.md +++ b/docs/gemstones/git/feature_branch_workflow.it.md @@ -31,53 +31,53 @@ L'utente "rockstar" ha effettuato il fork di questo repository e useremo `https: 1. Se non è stato ancora fatto, clonare il vostro fork: - ```bash - git clone https://github.com/rockstar/documentation.git - cd documentation - ``` + ```bash + git clone https://github.com/rockstar/documentation.git + cd documentation + ``` 2. Aggiungere l'upstream remoto: - ```bash - git remote add upstream https://github.com/rocky-linux/documentation.git - ``` + ```bash + git remote add upstream https://github.com/rocky-linux/documentation.git + ``` 3. Recuperare le modifiche a monte: - ```bash - git fetch upstream - ``` + ```bash + git fetch upstream + ``` 4. Creare una nuova Feature Branch: - ```bash - git checkout -b feature-branch-name - ``` + ```bash + git checkout -b feature-branch-name + ``` 5. Apportare modifiche, aggiungere nuovi file e fare il commit: - ```bash - git add . - git commit -m "Implementing feature X" - ``` + ```bash + git add . + git commit -m "Implementing feature X" + ``` 6. Tenete aggiornata il vostro Ramo. Unire regolarmente le modifiche provenienti dall'upstream per evitare conflitti: - ```bash - git pull upstream main --rebase - ``` + ```bash + git pull upstream main --rebase + ``` 7. Spingere verso il vostro fork, digitare: - ```bash - git push origin feature-branch-name - ``` + ```bash + git push origin feature-branch-name + ``` 8. Creare una Pull Request: - ```bash - gh pr create --base main --head rockstar:feature-branch-name --title "New Feature X" --body "Long Description of the feature" - ``` + ```bash + gh pr create --base main --head rockstar:feature-branch-name --title "New Feature X" --body "Long Description of the feature" + ``` ## Conclusione From b843550b707d241d983f121c153c18de737635e6 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:02 -0400 Subject: [PATCH 119/167] New translations fork_and_branch_workflow.md (Italian) --- .../git/fork_and_branch_workflow.it.md | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/docs/gemstones/git/fork_and_branch_workflow.it.md b/docs/gemstones/git/fork_and_branch_workflow.it.md index 58c52fb425..6e40df9390 100644 --- a/docs/gemstones/git/fork_and_branch_workflow.it.md +++ b/docs/gemstones/git/fork_and_branch_workflow.it.md @@ -29,70 +29,70 @@ Questa Gemma spiega come impostare un repository locale per contribuire a un pro 1. Se non esiste già, creare un fork del progetto usando l'utilità gh. Digitare: - ```bash - gh repo fork rocky-linux/documentation --clone=true --remote=true - ``` + ```bash + gh repo fork rocky-linux/documentation --clone=true --remote=true + ``` - Le opzioni utilizzate in questo comando _gh repo fork_ sono: + Le opzioni utilizzate in questo comando _gh repo fork_ sono: - - `--clone=true`: Clona il forked repository sulla macchina locale. - - `--remote=true`: Aggiunge il repository originale come remoto, consentendo di sincronizzare gli aggiornamenti futuri. + - `--clone=true`: Clona il forked repository sulla macchina locale. + - `--remote=true`: Aggiunge il repository originale come remoto, consentendo di sincronizzare gli aggiornamenti futuri. 2. Navigare nella directory del repository locale. Digitare: - ```bash - cd documentation - ``` + ```bash + cd documentation + ``` 3. Verificare che tutti i repo remoti siano stati configurati correttamente nel repo locale, digitare: - ```bash - git remote -vv - ``` + ```bash + git remote -vv + ``` 4. Recuperare le ultime modifiche dal telecomando upstream: - ```bash - git fetch upstream - ``` + ```bash + git fetch upstream + ``` 5. Creare e fare il checkout di un nuovo ramo di funzionalità chiamato your-feature-branch: - ```bash - git checkout -b your-feature-branch - ``` + ```bash + git checkout -b your-feature-branch + ``` 6. Apportare le modifiche, aggiungere nuovi file e fare il commit delle modifiche al repo locale: - ```bash - git add . - git commit -m "Your commit message" - ``` + ```bash + git add . + git commit -m "Your commit message" + ``` 7. Sincronizzare con il ramo principale del repo remoto chiamato `upstream`: - ```bash - git pull upstream main - ``` + ```bash + git pull upstream main + ``` 8. Spingere le modifiche al vostro Fork\*\*: - ```bash - git push origin your-feature-branch - ``` + ```bash + git push origin your-feature-branch + ``` 9. Infine, si può creare una richiesta di pull (PR) usando l'applicazione CLI `gh`: - ```bash - gh pr create --base main --head your-feature-branch --title "Your PR Title" --body "Description of your changes" - ``` + ```bash + gh pr create --base main --head your-feature-branch --title "Your PR Title" --body "Description of your changes" + ``` - Le opzioni utilizzate in questo comando _gh pr create_ sono: + Le opzioni utilizzate in questo comando _gh pr create_ sono: - `--base` main: Specifica il ramo di base del repository upstream in cui verranno unite le modifiche. - `--head` your-feature-branch: Indica il ramo principale del fork che contiene le modifiche. - `--title` "Your PR Title": Imposta il titolo della richiesta di pull. - `--body` "Description of your changes": Fornisce una descrizione dettagliata delle modifiche apportate alla richiesta di pull. + `--base` main: Specifica il ramo di base del repository upstream in cui verranno unite le modifiche. + `--head` your-feature-branch: Indica il ramo principale del fork che contiene le modifiche. + `--title` "Your PR Title": Imposta il titolo della richiesta di pull. + `--body` "Description of your changes": Fornisce una descrizione dettagliata delle modifiche apportate alla richiesta di pull. ## Conclusione From b3fb5cbda83e6b107cc6a3ac11e6a9bdbe107892 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:03 -0400 Subject: [PATCH 120/167] New translations git_pull_vs_git_fetch.md (Italian) --- .../gemstones/git/git_pull_vs_git_fetch.it.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/gemstones/git/git_pull_vs_git_fetch.it.md b/docs/gemstones/git/git_pull_vs_git_fetch.it.md index 53476a9d7e..14982bd047 100644 --- a/docs/gemstones/git/git_pull_vs_git_fetch.it.md +++ b/docs/gemstones/git/git_pull_vs_git_fetch.it.md @@ -22,21 +22,21 @@ Vedere cosa hanno fatto gli altri senza unire le modifiche nel proprio ramo loca 1. Elencare il ramo attualmente controllato - ```bash - git branch - ``` + ```bash + git branch + ``` 2. Recupera le modifiche dal ramo principale di un repo remoto chiamato origin. Digitare: - ```bash - git fetch origin main - ``` + ```bash + git fetch origin main + ``` 3. Confrontare le modifiche tra l'HEAD del repo locale e il repo remoto origin/main. - ```bash - git log HEAD..origin/main - ``` + ```bash + git log HEAD..origin/main + ``` ### Git Pull @@ -45,15 +45,15 @@ Git Pull scarica le modifiche e le unisce al ramo corrente. 1. **Modifiche di Pull e Merge**: - ```bash - git pull origin main - ``` + ```bash + git pull origin main + ``` 2. **Rivedere le modifiche unite**: - ```bash - git log - ``` + ```bash + git log + ``` ## Note Aggiuntive From 04f067efb4bc087e054024cd0d50b6036583d5e0 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:04 -0400 Subject: [PATCH 121/167] New translations git_remote_add.md (Italian) --- docs/gemstones/git/git_remote_add.it.md | 44 ++++++++++++------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/gemstones/git/git_remote_add.it.md b/docs/gemstones/git/git_remote_add.it.md index 908913717e..c5d9a57844 100644 --- a/docs/gemstones/git/git_remote_add.it.md +++ b/docs/gemstones/git/git_remote_add.it.md @@ -23,46 +23,46 @@ Utilizzeremo il repository del progetto di documentazione Rocky Linux come esemp ## Procedura 1. Aprite un terminale e cambiate la vostra directory di lavoro nella cartella contenente il clone locale del progetto. - Per esempio, se si è clonato il repo github in ~/path/to/your/rl-documentation-clone, digitare + Per esempio, se si è clonato il repo github in ~/path/to/your/rl-documentation-clone, digitare - ```bash - cd ~/path/to/your/rl-documentation-clone - ``` + ```bash + cd ~/path/to/your/rl-documentation-clone + ``` 2. Prima di apportare qualsiasi modifica, elencare i remotes configurati. Digitare: - ```bash - git remote -vv - ``` + ```bash + git remote -vv + ``` - Se si tratta di un repo appena clonato, è probabile che nell'output si veda un solo remote chiamato `origin`. + Se si tratta di un repo appena clonato, è probabile che nell'output si veda un solo remote chiamato `origin`. 3. Aggiungere il Rocky Linux Documentation Repository (`https://github.com/rocky-linux/documentation.git`) come nuovo remote al proprio repository locale. Qui assegneremo upstream come nome per questo particolare remote. Digitare: - ```bash - git remote add upstream https://github.com/rocky-linux/documentation.git - ``` + ```bash + git remote add upstream https://github.com/rocky-linux/documentation.git + ``` 4. Per sottolineare ulteriormente che i nomi assegnati ai repository remoti sono arbitrari, creare un altro remoto chiamato rocky-docs che punta allo stesso repo eseguendo: - ```bash - git remote add rocky-docs https://github.com/rocky-linux/documentation.git - ``` + ```bash + git remote add rocky-docs https://github.com/rocky-linux/documentation.git + ``` 5. Confermare che il nuovo repository remoto è stato aggiunto con successo: - ```bash - git remote -v - ``` + ```bash + git remote -v + ``` - Si dovrebbe vedere `upstream` elencato insieme al suo URL. + Si dovrebbe vedere `upstream` elencato insieme al suo URL. 6. Opzionalmente, prima di iniziare ad apportare modifiche al repo locale, è possibile recuperare i dati dal nuovo remote aggiunto. - Recuperare i rami e i commit del nuovo remoto eseguendo: + Recuperare i rami e i commit del nuovo remoto eseguendo: - ```bash - git fetch upstream - ``` + ```bash + git fetch upstream + ``` ## Note Aggiuntive From 4f677ae959321e41f3f36c1e661f49584a1fefe5 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:06 -0400 Subject: [PATCH 122/167] New translations tracking_and_nontracking_branch.md (Italian) --- .../git/tracking_and_nontracking_branch.it.md | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/gemstones/git/tracking_and_nontracking_branch.it.md b/docs/gemstones/git/tracking_and_nontracking_branch.it.md index c9cbbd8338..1c55cd2f4d 100644 --- a/docs/gemstones/git/tracking_and_nontracking_branch.it.md +++ b/docs/gemstones/git/tracking_and_nontracking_branch.it.md @@ -19,17 +19,17 @@ Un ramo di monitoraggio è un ramo collegato a un ramo remoto. 1. Creare un nuovo ramo chiamato my-local-branch. Il nuovo ramo locale segue il ramo principale del repository remoto chiamato origin. Digitare: - ```bash - git checkout -b my-local-branch origin/main - ``` + ```bash + git checkout -b my-local-branch origin/main + ``` 2. Usare il comando `git branch -vv` per verificare che il ramo sia un ramo di tracciamento. Digitare: - ```bash - git branch -vv - ``` + ```bash + git branch -vv + ``` - Cercare i rami con `[origin/main]` che indicano che stanno seguendo `origin/main`. + Cercare i rami con `[origin/main]` che indicano che stanno seguendo `origin/main`. ## Non-Tracking Branch @@ -37,9 +37,9 @@ Un ramo non tracciante è un ramo che opera indipendentemente dai rami remoti. 1. Creare un nuovo ramo locale non tracciante chiamato my-feature-branch. Digitare: - ```bash - git checkout -b my-feature-branch - ``` + ```bash + git checkout -b my-feature-branch + ``` 2. I rami non tracciati non mostreranno un ramo remoto accanto a loro output di git branch -vv. Controlla se my-feature-branch è un ramo non di tracciamento. @@ -47,26 +47,26 @@ Un ramo non tracciante è un ramo che opera indipendentemente dai rami remoti. 1. Facoltativamente, assicurarsi prima che le ultime modifiche del ramo principale siano unite nel ramo di destinazione. Digitare: - ```bash - git checkout my-feature-branch - git merge main - ``` + ```bash + git checkout my-feature-branch + git merge main + ``` 2. Impostare il monitoraggio di una ramo remoto: - ```bash - git branch --set-upstream-to=origin/main my-feature-branch - ``` + ```bash + git branch --set-upstream-to=origin/main my-feature-branch + ``` - Output: `Branch 'my-feature-branch' set up to track remote branch 'main' from 'origin'.` + Output: `Branch 'my-feature-branch' set up to track remote branch 'main' from 'origin'.` 3. Visualizzare le modifiche. Digitare: - ```bash - git branch -vv - ``` + ```bash + git branch -vv + ``` - Ora, `my-feature-branch` dovrebbe mostrare `[origin/main]`, indicando che è in fase di tracciamento. + Ora, `my-feature-branch` dovrebbe mostrare `[origin/main]`, indicando che è in fase di tracciamento. ## Conclusione From ea6da971851085471cf025556e95c90108d034e0 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:09 -0400 Subject: [PATCH 123/167] New translations gnome-tweaks.md (Italian) --- docs/desktop/gnome/gnome-tweaks.it.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/desktop/gnome/gnome-tweaks.it.md b/docs/desktop/gnome/gnome-tweaks.it.md index 10a6d73126..03799d4002 100644 --- a/docs/desktop/gnome/gnome-tweaks.it.md +++ b/docs/desktop/gnome/gnome-tweaks.it.md @@ -10,7 +10,7 @@ GNOME Tweaks è uno strumento per personalizzare l'esperienza del desktop, compr ## Presupposti -- Una workstation o un server Rocky Linux con installazione dell'interfaccia grafica che utilizza GNOME. + - Una workstation o un server Rocky Linux con installazione dell'interfaccia grafica che utilizza GNOME. ## Installare GNOME tweaks From d52e1286902cbb4875f19c0ed21ed29febe4ad23 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:13 -0400 Subject: [PATCH 124/167] New translations flatpak.md (Italian) --- docs/desktop/gnome/flatpak.it.md | 66 ++++++++++++++++---------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/docs/desktop/gnome/flatpak.it.md b/docs/desktop/gnome/flatpak.it.md index 28bdc60de1..2f8fcfa7f9 100644 --- a/docs/desktop/gnome/flatpak.it.md +++ b/docs/desktop/gnome/flatpak.it.md @@ -166,51 +166,51 @@ A titolo di esempio, il processo di installazione di OBS Studio è il seguente: 3. Cliccare sulla freccia rivolta verso il basso accanto al pulsante "Installa" - ![flathub_install_1](images/01_flatpak.png) + ![flathub_install_1](images/01_flatpak.png) - ![flathub_install_2](images/02_flatpak.png) + ![flathub_install_2](images/02_flatpak.png) 4. Assicuratevi di aver completato tutti i prerequisiti per l'installazione di Rocky Linux (numero 1 nella seconda immagine, che è già stato completato sopra) e poi copiate il comando (numero 2 nella seconda immagine) e incollatelo in un terminale - ```bash - flatpak install flathub com.obsproject.Studio - Looking for matches… - Required runtime for com.obsproject.Studio/x86_64/stable (runtime/org.kde.Platform/x86_64/6.6) found in remote flathub - Do you want to install it? [Y/n]: Y - ``` + ```bash + flatpak install flathub com.obsproject.Studio + Looking for matches… + Required runtime for com.obsproject.Studio/x86_64/stable (runtime/org.kde.Platform/x86_64/6.6) found in remote flathub + Do you want to install it? [Y/n]: Y + ``` 5. Quando si risponde "Y" e si preme ++enter++, viene visualizzato il seguente messaggio: - ```bash - com.obsproject.Studio permissions: - ipc network pulseaudio wayland - x11 devices file access [1] dbus access [2] - system dbus access [3] - - [1] host, xdg-config/kdeglobals:ro, xdg-run/pipewire-0 - [2] com.canonical.AppMenu.Registrar, org.a11y.Bus, org.freedesktop.Flatpak, org.freedesktop.Notifications, - org.kde.KGlobalSettings, org.kde.StatusNotifierWatcher, org.kde.kconfig.notify - [3] org.freedesktop.Avahi - - ID Branch Op Remote Download - 1. com.obsproject.Studio.Locale stable i flathub < 47.0 kB (partial) - 2. org.kde.KStyle.Adwaita 6.6 i flathub < 8.0 MB - 3. org.kde.Platform.Locale 6.6 i flathub < 380.6 MB (partial) - 4. org.kde.PlatformTheme.QGnomePlatform 6.6 i flathub < 9.7 MB - 5. org.kde.WaylandDecoration.QAdwaitaDecorations 6.6 i flathub < 1.2 MB - 6. org.kde.Platform 6.6 i flathub < 325.0 MB - 7. com.obsproject.Studio stable i flathub < 207.7 MB - - Proceed with these changes to the system installation? [Y/n]: - ``` + ```bash + com.obsproject.Studio permissions: + ipc network pulseaudio wayland + x11 devices file access [1] dbus access [2] + system dbus access [3] + + [1] host, xdg-config/kdeglobals:ro, xdg-run/pipewire-0 + [2] com.canonical.AppMenu.Registrar, org.a11y.Bus, org.freedesktop.Flatpak, org.freedesktop.Notifications, + org.kde.KGlobalSettings, org.kde.StatusNotifierWatcher, org.kde.kconfig.notify + [3] org.freedesktop.Avahi + + ID Branch Op Remote Download + 1. com.obsproject.Studio.Locale stable i flathub < 47.0 kB (partial) + 2. org.kde.KStyle.Adwaita 6.6 i flathub < 8.0 MB + 3. org.kde.Platform.Locale 6.6 i flathub < 380.6 MB (partial) + 4. org.kde.PlatformTheme.QGnomePlatform 6.6 i flathub < 9.7 MB + 5. org.kde.WaylandDecoration.QAdwaitaDecorations 6.6 i flathub < 1.2 MB + 6. org.kde.Platform 6.6 i flathub < 325.0 MB + 7. com.obsproject.Studio stable i flathub < 207.7 MB + + Proceed with these changes to the system installation? [Y/n]: + ``` 6. Rispondendo "Y" e premendo ++enter++ si modificheranno i permessi di sistema come indicato e si installerà l'applicazione. 7. Se tutto va bene, dovreste ricevere: - ```text - Installation complete. - ``` + ```text + Installation complete. + ``` 8. Dal menu "Attività" è ora possibile cercare ed eseguire OBS Studio. From abe38d19514d74638a4c2cfd3a4b580e9740d69f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:15 -0400 Subject: [PATCH 125/167] New translations migration-to-new-azure-images.md (Italian) --- docs/guides/cloud/migration-to-new-azure-images.it.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/cloud/migration-to-new-azure-images.it.md b/docs/guides/cloud/migration-to-new-azure-images.it.md index 9d2a775689..06842f0116 100644 --- a/docs/guides/cloud/migration-to-new-azure-images.it.md +++ b/docs/guides/cloud/migration-to-new-azure-images.it.md @@ -25,8 +25,8 @@ Questa guida fornisce i passaggi dettagliati per la migrazione delle macchine vi ## Prima di iniziare -- Assicurarsi di avere un backup aggiornato della macchina virtuale. Anche se il processo di migrazione non dovrebbe avere ripercussioni sui dati, un backup è la prassi migliore per qualsiasi modifica del sistema. -- Verificare di disporre delle autorizzazioni necessarie per creare nuove macchine virtuali e gestire quelle esistenti nel proprio account Azure. + - Assicurarsi di avere un backup aggiornato della macchina virtuale. Anche se il processo di migrazione non dovrebbe avere ripercussioni sui dati, un backup è la prassi migliore per qualsiasi modifica del sistema. + - Verificare di disporre delle autorizzazioni necessarie per creare nuove macchine virtuali e gestire quelle esistenti nel proprio account Azure. ## Passo 1: Individuare le macchine virtuali esistenti @@ -80,8 +80,8 @@ Dopo aver confermato che la nuova macchina virtuale funziona correttamente e ave ## Fasi finali -- Verificare che tutti i servizi della nuova macchina virtuale funzionino come previsto. -- Monitorare le prestazioni e lo stato di salute della nuova macchina virtuale per assicurarsi che soddisfi le proprie esigenze. + - Verificare che tutti i servizi della nuova macchina virtuale funzionino come previsto. + - Monitorare le prestazioni e lo stato di salute della nuova macchina virtuale per assicurarsi che soddisfi le proprie esigenze. ## Supporto From d30a03e1ec92f84e144c5317d668e9eaa3726536 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:17 -0400 Subject: [PATCH 126/167] New translations lab8-samba.md (Italian) --- docs/labs/networking/lab8-samba.it.md | 204 +++++++++++++------------- 1 file changed, 102 insertions(+), 102 deletions(-) diff --git a/docs/labs/networking/lab8-samba.it.md b/docs/labs/networking/lab8-samba.it.md index 3af062dce1..44d381bfae 100644 --- a/docs/labs/networking/lab8-samba.it.md +++ b/docs/labs/networking/lab8-samba.it.md @@ -44,45 +44,45 @@ Gli esercizi di questo laboratorio si concentrano sulla configurazione di Samba #### Per installare l'applicazione server Samba 0. Utilizzare l'utilità dnf per installare il pacchetto server e client Samba sul server. - Digitare: - ```bash - sudo dnf install -y samba - ``` + Digitare: + ```bash + sudo dnf install -y samba + ``` #### Configurazione di Samba 1. Creare una directory denominata samba-share sotto la cartella /tmp da condividere. Digitare: - ```bash - mkdir /tmp/samba-share - ``` + ```bash + mkdir /tmp/samba-share + ``` 2. Creiamo una configurazione Samba di base per condividere la cartella /tmp/samba-share. - A questo scopo, creare una nuova definizione di condivisione nel file di configurazione di Samba: + A questo scopo, creare una nuova definizione di condivisione nel file di configurazione di Samba: - ```bash - sudo tee -a /etc/samba/smb.conf << 'EOF' - [Shared] - path = /tmp/samba-share - browsable = yes - writable = yes - EOF - ``` + ```bash + sudo tee -a /etc/samba/smb.conf << 'EOF' + [Shared] + path = /tmp/samba-share + browsable = yes + writable = yes + EOF + ``` #### Per avviare e abilitare il servizio Samba 1. Avviare e abilitare i servizi Samba: - ```bash - sudo systemctl start smb nmb - sudo systemctl enable smb nmb - ``` + ```bash + sudo systemctl start smb nmb + sudo systemctl enable smb nmb + ``` 2. Verificare che i demoni utilizzati dal servizio Samba siano in esecuzione: - ```bash - sudo systemctl status smb nmb - ``` + ```bash + sudo systemctl status smb nmb + ``` ## Esercizio 2 @@ -96,27 +96,27 @@ Questo esercizio mostra come creare utenti Samba e impostare le credenziali di a 1. Per prima cosa, creare un normale utente di sistema chiamato sambarockstar. Digitare: - ```bash - sudo useradd sambarockstar - ``` + ```bash + sudo useradd sambarockstar + ``` 2. Verificare che l'utente sia stato creato correttamente. Digitare: - ```bash - id sambarockstar - ``` + ```bash + id sambarockstar + ``` 3. Aggiungere il nuovo utente di sistema sambarockstar al database degli utenti Samba e contemporaneamente impostare una password per l'utente Samba: - ```bash - sudo smbpasswd -a sambarockstar - ``` + ```bash + sudo smbpasswd -a sambarockstar + ``` - Quando viene richiesto, inserire la password selezionata e premere INVIO dopo ogni inserimento. + Quando viene richiesto, inserire la password selezionata e premere INVIO dopo ogni inserimento. 4. Riavviare i servizi Samba: - ```bash - sudo systemctl restart smb nmb - ``` + ```bash + sudo systemctl restart smb nmb + ``` ## Esercizio 3 @@ -128,59 +128,59 @@ In questo esercizio, proveremo ad accedere alla nuova condivisione Samba dallo s 0. Installare Client Utilities eseguendo: - ```bash - sudo dnf -y install cifs-utils - ``` + ```bash + sudo dnf -y install cifs-utils + ``` #### Per creare un punto di montaggio Samba 0. Creare il punto di montaggio: - ```bash - mkdir ~/samba-client - ``` + ```bash + mkdir ~/samba-client + ``` #### Per montare un file system SMB localmente 1. Montare la condivisione Samba in locale: - ```bash - sudo mount -t cifs //localhost/Shared ~/samba-client -o user=sambarockstar - ``` + ```bash + sudo mount -t cifs //localhost/Shared ~/samba-client -o user=sambarockstar + ``` 2. Usare il comando `mount` per elencare tutti i file system di tipo CIFS montati. Digitare: - ```bash - mount -t cifs - ``` - OUTPUT - ```bash - //localhost/Shared on ~/samba-client type cifs (rw,relatime,vers=3.1.1,cache=strict,username=sambarockstar.... - ...... - ``` + ```bash + mount -t cifs + ``` + OUTPUT + ```bash + //localhost/Shared on ~/samba-client type cifs (rw,relatime,vers=3.1.1,cache=strict,username=sambarockstar.... + ...... + ``` 3. Allo stesso modo, utilizzare il comando `df` per verificare che la condivisione montata sia disponibile. Digitare: - ```bash - df -t cifs - ``` + ```bash + df -t cifs + ``` - OUTPUT: + OUTPUT: - ``` - Filesystem 1K-blocks Used Available Use% Mounted on - //localhost/Shared 73364480 17524224 55840256 24% ~/samba-client - ``` + ``` + Filesystem 1K-blocks Used Available Use% Mounted on + //localhost/Shared 73364480 17524224 55840256 24% ~/samba-client + ``` 4. Quindi, elencare il contenuto della condivisione montata. Digitare: - ```bash - ls ~/samba-client - ``` + ```bash + ls ~/samba-client + ``` 5. Creare un file di prova in Share: - ```bash - touch ~/samba-client/testfile.txt - ``` + ```bash + touch ~/samba-client/testfile.txt + ``` ## Esercizio 4 @@ -190,21 +190,21 @@ In questo esercizio, proveremo ad accedere alla nuova condivisione Samba dallo s 1. Rendere la definizione della condivisione samba "Shared" di sola lettura. Questo può essere fatto cambiando il valore del parametro writable da yes a no nel file di configurazione smb.conf. Usiamo un comando `sed` onliner per ottenere questo risultato eseguendo: - ```bash - sudo sed -i'' -E \ - '/\[Shared\]/,+3 s/writable =.*$/writable = no/' /etc/samba/smb.conf - ``` + ```bash + sudo sed -i'' -E \ + '/\[Shared\]/,+3 s/writable =.*$/writable = no/' /etc/samba/smb.conf + ``` 2. Riavviare i servizi Samba: - ```bash - sudo systemctl restart smb nmb - ``` + ```bash + sudo systemctl restart smb nmb + ``` 3. A questo punto, si può testare la scrittura sulla condivisione provando a creare un file sulla condivisione montata: - ```bash - touch ~/samba-client/testfile2.txt - ``` + ```bash + touch ~/samba-client/testfile2.txt + ``` ## Esercizio 5 @@ -215,24 +215,24 @@ Questo esercizio illustra come limitare l'accesso alle condivisioni Samba tramit #### Per creare un nuovo gruppo per l'utente Samba 1. Usare l'utilità groupadd per creare un nuovo gruppo di sistema chiamato rockstars. Nel nostro esempio utilizzeremo questo gruppo per ospitare gli utenti del sistema che possono accedere a una determinata risorsa. Digitare: - ```bash - sudo groupadd rockstars - ``` + ```bash + sudo groupadd rockstars + ``` 2. Aggiungere al gruppo un utente di sistema/Samba esistente. Digitare: - ```bash - sudo usermod -aG rockstars sambarockstar - ``` + ```bash + sudo usermod -aG rockstars sambarockstar + ``` #### Per configurare gli utenti autorizzati nella configurazione di Samba 1. Utilizzare l'utilità sed per aggiungere nuovi parametri utente validi alla definizione di condivisione nel file di configurazione di Samba. Digitare: - ```bash - sudo sed -i '/\[Shared\]/a valid users = @sambagroup' /etc/samba/smb.conf - ``` + ```bash + sudo sed -i '/\[Shared\]/a valid users = @sambagroup' /etc/samba/smb.conf + ``` 2. Riavviare i servizi Samba: - ```bash - sudo systemctl restart smb nmb - ``` + ```bash + sudo systemctl restart smb nmb + ``` 3. Ora testate l'accesso alla condivisione con sambarockstar e verificate l'accesso. ## Esercizio 6 @@ -249,17 +249,17 @@ Presupposti: Configurate la vostra macchina (serverXY) come client Samba per accedere a una directory condivisa su un host separato (serverHQ). 1. Assicurarsi che le necessarie utilità del client Samba siano installate sul sistema locale. - Se necessario, installarli eseguendo: + Se necessario, installarli eseguendo: - ```bash - sudo dnf install samba-client cifs-utils -y - ``` + ```bash + sudo dnf install samba-client cifs-utils -y + ``` 2. Creare un punto di montaggio sul serverXY: - ```bash - mkdir ~/serverHQ-share - ``` + ```bash + mkdir ~/serverHQ-share + ``` #### Per montare la condivisione Samba dal serverHQ @@ -277,15 +277,15 @@ sudo mount -t cifs //serverHQ/sharedFolder ~/serverHQ-share -o user=yourUsername 1. Verificare se la directory condivisa dal serverHQ è stata montata con successo sul computer: - ```bash - ls ~/serverHQ-share - ``` + ```bash + ls ~/serverHQ-share + ``` 2. Provare ad accedere e modificare i file all'interno della condivisione montata. Ad esempio, per creare un nuovo file: - ```bash - touch ~/serverHQ-share/newfile.txt - ``` + ```bash + touch ~/serverHQ-share/newfile.txt + ``` #### Per smontare la condivisione remota From 533a4a3faad5a4d6603d8607f5476d62fb5406ff Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:23 -0400 Subject: [PATCH 127/167] New translations 09-working-with-jinja-template.md (Italian) --- .../09-working-with-jinja-template.it.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/books/learning_ansible/09-working-with-jinja-template.it.md b/docs/books/learning_ansible/09-working-with-jinja-template.it.md index 24b07d605e..67d5706b41 100644 --- a/docs/books/learning_ansible/09-working-with-jinja-template.it.md +++ b/docs/books/learning_ansible/09-working-with-jinja-template.it.md @@ -108,20 +108,20 @@ Il modulo `template` di Ansible consente di utilizzare i modelli Jinja per gener ### Caratteristiche principali 1. **Rendering del template:** - - Il modulo esegue il rendering dei template Jinja per creare file di configurazione con contenuti dinamici. - - Le variabili definite nel playbook o nell'inventario possono essere inserite nei modelli, consentendo configurazioni dinamiche. + - Il modulo esegue il rendering dei template Jinja per creare file di configurazione con contenuti dinamici. + - Le variabili definite nel playbook o nell'inventario possono essere inserite nei modelli, consentendo configurazioni dinamiche. 2. **Utilizzo di Jinja2:** - - Il modulo `template` sfrutta il motore di creazione di template Jinja2, offrendo potenti funzionalità come istruzioni condizionali, cicli e filtri per la manipolazione avanzata dei template. + - Il modulo `template` sfrutta il motore di creazione di template Jinja2, offrendo potenti funzionalità come istruzioni condizionali, cicli e filtri per la manipolazione avanzata dei template. 3. **Percorsi di origine e destinazione:** - - Specifica il file template Jinja di origine e il percorso di destinazione per il file di configurazione generato. + - Specifica il file template Jinja di origine e il percorso di destinazione per il file di configurazione generato. 4. **Passare le variabili:** - - Le variabili possono essere passate direttamente nel playbook o caricate da file esterni, consentendo la generazione di configurazioni flessibili e dinamiche. + - Le variabili possono essere passate direttamente nel playbook o caricate da file esterni, consentendo la generazione di configurazioni flessibili e dinamiche. 5. **Esecuzione idempotente:** - - Il modulo dei template supporta l'esecuzione idempotente, assicurando che il template venga applicato solo se vengono rilevate delle modifiche. + - Il modulo dei template supporta l'esecuzione idempotente, assicurando che il template venga applicato solo se vengono rilevate delle modifiche. ### Esempio di un playbook @@ -142,24 +142,24 @@ Il modulo `template` di Ansible consente di utilizzare i modelli Jinja per gener ### Casi d'uso 1. **Gestione della configurazione:** - - Ideale per gestire le configurazioni di sistema generando dinamicamente file in base a parametri specifici. + - Ideale per gestire le configurazioni di sistema generando dinamicamente file in base a parametri specifici. 2. **Setup Applicativi:** - - Utile per creare file di configurazione per applicazioni specifiche con impostazioni diverse. + - Utile per creare file di configurazione per applicazioni specifiche con impostazioni diverse. 3. **Infrastruttura come codice:** - - Facilita le pratiche di Infrastruttura come Codice consentendo adattamenti dinamici alle configurazioni in base alle variabili. + - Facilita le pratiche di Infrastruttura come Codice consentendo adattamenti dinamici alle configurazioni in base alle variabili. ### Buone pratiche 1. **Separazione degli interessi:** - - Mantenere la logica di configurazione effettiva nei modelli Jinja, separandola dalla struttura principale del playbook. + - Mantenere la logica di configurazione effettiva nei modelli Jinja, separandola dalla struttura principale del playbook. 2. **Controllo Versione:** - - Salvare i modelli Jinja in repository con controllo delle versioni per un miglior monitoraggio ed una migliore collaborazione. + - Salvare i modelli Jinja in repository con controllo delle versioni per un miglior monitoraggio ed una migliore collaborazione. 3. **Testabilità:** - - Testare i modelli in modo indipendente per assicurarsi che producano l'output di configurazione previsto. + - Testare i modelli in modo indipendente per assicurarsi che producano l'output di configurazione previsto. Sfruttando il modulo `template`, gli utenti Ansible possono migliorare la gestibilità e la flessibilità delle attività di configurazione, promuovendo un approccio più snello ed efficiente alla configurazione del sistema e delle applicazioni. From 44e849e55215f7f3a17841fa449e845364d30fc6 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:25 -0400 Subject: [PATCH 128/167] New translations ssh_ca_key_signing.md (Italian) --- docs/guides/security/ssh_ca_key_signing.it.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/guides/security/ssh_ca_key_signing.it.md b/docs/guides/security/ssh_ca_key_signing.it.md index e42bb48409..d4b365cf7a 100644 --- a/docs/guides/security/ssh_ca_key_signing.it.md +++ b/docs/guides/security/ssh_ca_key_signing.it.md @@ -11,11 +11,11 @@ tags: ## Prerequisiti -- Capacità di utilizzare strumenti a riga di comando -- Gestione dei contenuti dalla riga di comando -- L'esperienza precedente con la generazione di chiavi SSH è utile ma non necessaria -- Una conoscenza di base di SSH e dell'infrastruttura a chiave pubblica è utile ma non necessaria -- Un server che esegue il demone sshd. + - Capacità di utilizzare strumenti a riga di comando + - Gestione dei contenuti dalla riga di comando + - L'esperienza precedente con la generazione di chiavi SSH è utile ma non necessaria + - Una conoscenza di base di SSH e dell'infrastruttura a chiave pubblica è utile ma non necessaria + - Un server che esegue il demone sshd. ## Introduzione @@ -25,13 +25,13 @@ Le CA possono essere utilizzate anche per firmare le chiavi SSH degli utenti. In ## Obiettivi -- Migliorare la sicurezza delle connessioni SSH. -- Migliorare il processo di inserimento e della gestione delle chiavi. + - Migliorare la sicurezza delle connessioni SSH. + - Migliorare il processo di inserimento e della gestione delle chiavi. ## Note -- Vim è l'editor di testo scelto dall'autore. L'uso di altri editor di testo, come nano o altri, è perfettamente accettabile. -- L'uso di `sudo` o `root` implica privilegi elevati. + - Vim è l'editor di testo scelto dall'autore. L'uso di altri editor di testo, come nano o altri, è perfettamente accettabile. + - L'uso di `sudo` o `root` implica privilegi elevati. ## Connessione iniziale @@ -65,9 +65,9 @@ Creare una CA (chiave privata e pubblica) e inserire la chiave pubblica nel file Dove: -- **-b**: lunghezza della chiave in byte -- **-t**: tipo di chiave: rsa, ed25519, ecdsa... -- **-f**: file chiave di output + - **-b**: lunghezza della chiave in byte + - **-t**: tipo di chiave: rsa, ed25519, ecdsa... + - **-f**: file chiave di output In alternativa, è possibile specificare il file `known_hosts` a livello di sistema modificando il file di configurazione SSH `/etc/ssh/ssh_config`: @@ -94,11 +94,11 @@ Acquisire la chiave pubblica del server tramite `scp` e firmarla: Dove: -- **-s**: chiave di firma -- **-I**: nome che identifica il certificato a scopo di registrazione -- **-n**: identifica il nome (host o utente, uno o più) associato al certificato (se non viene specificato, i certificati sono validi per tutti gli utenti o host) -- **-h**: definisce il certificato come chiave host, anziché come chiave client -- **-V**: periodo di validità del certificato + - **-s**: chiave di firma + - **-I**: nome che identifica il certificato a scopo di registrazione + - **-n**: identifica il nome (host o utente, uno o più) associato al certificato (se non viene specificato, i certificati sono validi per tutti gli utenti o host) + - **-h**: definisce il certificato come chiave host, anziché come chiave client + - **-V**: periodo di validità del certificato ## Stabilire la fiducia From e3e48ea6b2c7f0af2d7b0cbdc251bc72bc301b5e Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:32 -0400 Subject: [PATCH 129/167] New translations rdp-server.md (Italian) --- docs/desktop/gnome/rdp-server.it.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/desktop/gnome/rdp-server.it.md b/docs/desktop/gnome/rdp-server.it.md index 2d16ef14a1..4e53d228e2 100644 --- a/docs/desktop/gnome/rdp-server.it.md +++ b/docs/desktop/gnome/rdp-server.it.md @@ -20,11 +20,11 @@ Per impostazione predefinita, Rocky Linux consente di condividere il desktop tra In questa guida si presuppone che siano già state configurate le seguenti operazioni: -- Rocky Linux con Gnome -- Flatpak e Flathub installati e funzionanti -- Un account utente non root -- Accesso come amministratore o sudo e disponibilità a incollare comandi nel terminale -- Il server X (per condividere il desktop) + - Rocky Linux con Gnome + - Flatpak e Flathub installati e funzionanti + - Un account utente non root + - Accesso come amministratore o sudo e disponibilità a incollare comandi nel terminale + - Il server X (per condividere il desktop) !!! info "Informazione" From 4ddb7672eefa92186e9231b9e34e19d096f86ade Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:35 -0400 Subject: [PATCH 130/167] New translations brother-all-in-one.md (Italian) --- docs/desktop/printing/brother-all-in-one.it.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/desktop/printing/brother-all-in-one.it.md b/docs/desktop/printing/brother-all-in-one.it.md index 2081d9121f..d8ebbc87b1 100644 --- a/docs/desktop/printing/brother-all-in-one.it.md +++ b/docs/desktop/printing/brother-all-in-one.it.md @@ -50,17 +50,17 @@ Si apre una finestra Software che tenta di individuare ed installare i driver de 4. Eseguire il comando per estrarre il file scaricato: - ```bash - gunzip linux-brprinter-installer-*.*.*-*.gz - ``` + ```bash + gunzip linux-brprinter-installer-*.*.*-*.gz + ``` 5. Ottenere l'autorizzazione di superuser con il comando `su` o `sudo su`. 6. Eseguire il comando: - ```bash - bash linux-brprinter-installer-*.*.*-* Brother machine name - ``` + ```bash + bash linux-brprinter-installer-*.*.*-* Brother machine name + ``` 7. L'installazione del driver viene avviata. Seguire le istruzioni di installazione. From 6cee076d9876d87bf2abefa90470999c1cc1067a Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:38 -0400 Subject: [PATCH 131/167] New translations x11vnc_plus_ssh_lan.md (Italian) --- docs/desktop/gnome/x11vnc_plus_ssh_lan.it.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/desktop/gnome/x11vnc_plus_ssh_lan.it.md b/docs/desktop/gnome/x11vnc_plus_ssh_lan.it.md index 4adc09f1a5..6109afc959 100644 --- a/docs/desktop/gnome/x11vnc_plus_ssh_lan.it.md +++ b/docs/desktop/gnome/x11vnc_plus_ssh_lan.it.md @@ -20,8 +20,8 @@ Uno dei principali vantaggi dell'utilizzo di x11vnc rispetto a SSH è che elimin Per questa guida, si presuppone che si disponga di quanto segue: -- Rocky Linux Workstation -- Privilegi `sudo` + - Rocky Linux Workstation + - Privilegi `sudo` ## Impostazione del server VNC @@ -161,8 +161,8 @@ Congratulazioni! Ora è possibile controllare il desktop da remoto! Finora questo articolo ha mostrato come impostare un server x11vnc e come connettersi ad esso utilizzando VNC inoltrato attraverso un tunnel SSH. È importante notare che questo metodo funziona solo per i computer della stessa rete locale (LAN). Supponendo di volersi collegare a un computer su un'altra LAN. Un modo per farlo è impostare una VPN. Di seguito sono riportate alcune guide su come impostare una VPN: -- [OpenVPN](https://docs.rockylinux.org/guides/security/openvpn/) -- [Wireguard VPN](https://docs.rockylinux.org/guides/security/wireguard_vpn/) + - [OpenVPN](https://docs.rockylinux.org/guides/security/openvpn/) + - [Wireguard VPN](https://docs.rockylinux.org/guides/security/wireguard_vpn/) ## Conclusione From 64e94541c5002c8bae059f26dae244b620e575f1 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:39 -0400 Subject: [PATCH 132/167] New translations 02-web-servers-intro.md (Italian) --- .../web_services/02-web-servers-intro.it.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/books/web_services/02-web-servers-intro.it.md b/docs/books/web_services/02-web-servers-intro.it.md index ad5c724812..9943b4ab19 100644 --- a/docs/books/web_services/02-web-servers-intro.it.md +++ b/docs/books/web_services/02-web-servers-intro.it.md @@ -23,14 +23,14 @@ Gli attuali protocolli HTTP sono la versione 1.1, ampiamente utilizzata, e le ve Una responce HTTP è un insieme di righe inviate al browser dal server. Che include: -- Una **status line**: specifica la versione del protocollo e lo stato di elaborazione della richiesta utilizzando un codice e un testo esplicativo. La riga comprende tre elementi separati da uno spazio: - - La versione del protocollo utilizzata - - Lo status code - - Il significato del codice + - Una **status line**: specifica la versione del protocollo e lo stato di elaborazione della richiesta utilizzando un codice e un testo esplicativo. La riga comprende tre elementi separati da uno spazio: + - La versione del protocollo utilizzata + - Lo status code + - Il significato del codice -- **Response header fields**: queste righe opzionali forniscono informazioni aggiuntive sulla risposta e/o sul server. Ogni riga è composta da un nome che qualifica il header type, seguito da due punti (:) e dal header value. + - **Response header fields**: queste righe opzionali forniscono informazioni aggiuntive sulla risposta e/o sul server. Ogni riga è composta da un nome che qualifica il header type, seguito da due punti (:) e dal header value. -- **The response body**: contiene il documento richiesto. + - **The response body**: contiene il documento richiesto. Ecco un esempio di risposta HTTP: @@ -70,15 +70,15 @@ Un URL ha tre parti: ://:/ ``` -- **Protocol name**: si tratta del linguaggio utilizzato per comunicare in rete, come HTTP, HTTPS, FTP, ecc. I protocolli più utilizzati sono l'HTTP (HyperText Transfer Protocol) e la sua versione sicura, l'HTTPS, utilizzata per lo scambio di pagine Web in formato HTML. + - **Protocol name**: si tratta del linguaggio utilizzato per comunicare in rete, come HTTP, HTTPS, FTP, ecc. I protocolli più utilizzati sono l'HTTP (HyperText Transfer Protocol) e la sua versione sicura, l'HTTPS, utilizzata per lo scambio di pagine Web in formato HTML. -- **Login** e **password**: Questa opzione consente di specificare i parametri di accesso a un server sicuro. Non è consigliabile, poiché la password è visibile nell'URL (per motivi di sicurezza). + - **Login** e **password**: Questa opzione consente di specificare i parametri di accesso a un server sicuro. Non è consigliabile, poiché la password è visibile nell'URL (per motivi di sicurezza). -- **Host**: È il nome del computer che ospita la risorsa richiesta. È possibile utilizzare anche l'indirizzo IP del server, ma ciò rende l'URL meno leggibile. + - **Host**: È il nome del computer che ospita la risorsa richiesta. È possibile utilizzare anche l'indirizzo IP del server, ma ciò rende l'URL meno leggibile. -- **Port number**: È associato a un servizio che consente al server di conoscere il tipo di risorsa richiesta. La porta predefinita del protocollo HTTP è la 80 e la 443 per HTTPS. Pertanto, il numero di porta è facoltativo quando il protocollo è HTTP o HTTPS. + - **Port number**: È associato a un servizio che consente al server di conoscere il tipo di risorsa richiesta. La porta predefinita del protocollo HTTP è la 80 e la 443 per HTTPS. Pertanto, il numero di porta è facoltativo quando il protocollo è HTTP o HTTPS. -- **Resource path**: Questa parte consente al server di conoscere la posizione della risorsa. In genere, si tratta della posizione (directory) e del nome del file richiesto. Se l'indirizzo non specifica una posizione, indica la prima pagina dell'host. Altrimenti, indica il percorso della pagina da visualizzare. + - **Resource path**: Questa parte consente al server di conoscere la posizione della risorsa. In genere, si tratta della posizione (directory) e del nome del file richiesto. Se l'indirizzo non specifica una posizione, indica la prima pagina dell'host. Altrimenti, indica il percorso della pagina da visualizzare. ### Porte From b8f69992535925bf63803ffd9fe1ac132eb8e7eb Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:41 -0400 Subject: [PATCH 133/167] New translations 022-web-servers-nginx.md (Italian) --- .../web_services/022-web-servers-nginx.it.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/books/web_services/022-web-servers-nginx.it.md b/docs/books/web_services/022-web-servers-nginx.it.md index 81d489f4d7..28472885fe 100644 --- a/docs/books/web_services/022-web-servers-nginx.it.md +++ b/docs/books/web_services/022-web-servers-nginx.it.md @@ -43,24 +43,24 @@ Nginx ha una quota di mercato significativa del 28% sui siti più trafficati, su Nginx offre le seguenti funzioni di base: -- Hosting per pagine web statiche -- Index page generation automatico -- Reverse proxy accelerato con cache -- Bilanciamento del carico -- Tolleranza agli errori -- Supporto cache per FastCGI, uWSGI, SCGI e server cache Memcached -- Vari filtri per gzip, xslt, ssi, trasformazione delle immagini e altro ancora -- Supporto per SSL/TLS e SNI -- Supporto per HPPT/2 + - Hosting per pagine web statiche + - Index page generation automatico + - Reverse proxy accelerato con cache + - Bilanciamento del carico + - Tolleranza agli errori + - Supporto cache per FastCGI, uWSGI, SCGI e server cache Memcached + - Vari filtri per gzip, xslt, ssi, trasformazione delle immagini e altro ancora + - Supporto per SSL/TLS e SNI + - Supporto per HPPT/2 Altre funzionalità: -- Hosting per nome o indirizzo IP -- Supporto del Keepalive delle connessioni client -- Gestione dei log: syslog, rotazione, buffer -- Riscrittura degli URI -- Controllo di accesso: via IP, password, ed altro -- Streaming FLV e MP4 + - Hosting per nome o indirizzo IP + - Supporto del Keepalive delle connessioni client + - Gestione dei log: syslog, rotazione, buffer + - Riscrittura degli URI + - Controllo di accesso: via IP, password, ed altro + - Streaming FLV e MP4 ### Installazione @@ -277,5 +277,5 @@ Esempio di configurazione di base, che distribuisce il carico per 2/3 al primo s La direttiva server accetta molti argomenti: -- `max_fails=numberofattempts`: imposta il numero di tentativi di connessione che devono fallire durante il periodo di tempo definito dal parametro `fail_timeout` affinché il server sia considerato non disponibile. Il valore predefinito è 1; 0 disattiva la funzionalità. -- `fail_timeout=time`: imposta il tempo durante il quale un numero definito di connessioni causerà l'indisponibilità del server e imposta il periodo di tempo durante il quale il server sarà considerato non disponibile. Il valore predefinito è 10 secondi. + - `max_fails=numberofattempts`: imposta il numero di tentativi di connessione che devono fallire durante il periodo di tempo definito dal parametro `fail_timeout` affinché il server sia considerato non disponibile. Il valore predefinito è 1; 0 disattiva la funzionalità. + - `fail_timeout=time`: imposta il tempo durante il quale un numero definito di connessioni causerà l'indisponibilità del server e imposta il periodo di tempo durante il quale il server sarà considerato non disponibile. Il valore predefinito è 10 secondi. From dae69523843d578023a0b41c0fb42e1b065d7af9 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:46 -0400 Subject: [PATCH 134/167] New translations firewallgui.md (Italian) --- docs/desktop/tools/firewallgui.it.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/tools/firewallgui.it.md b/docs/desktop/tools/firewallgui.it.md index c5629441e8..932ea9fe79 100644 --- a/docs/desktop/tools/firewallgui.it.md +++ b/docs/desktop/tools/firewallgui.it.md @@ -14,9 +14,9 @@ Non tratteremo tutto ciò che `firewalld` o la GUI possono fare, ma dovrebbe ess Per questa guida, si presume che l'utente disponga di quanto segue: -- Un'installazione di Rocky Linux con ambiente desktop grafico -- `sudo` o accesso come admin -- Una comprensione di base di come funziona `firewalld` + - Un'installazione di Rocky Linux con ambiente desktop grafico + - `sudo` o accesso come admin + - Una comprensione di base di come funziona `firewalld` !!! note "Nota" From c79cae92730c56c928e9fdaf062a413e9e8a4755 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:47 -0400 Subject: [PATCH 135/167] New translations dconf.md (Italian) --- docs/desktop/gnome/dconf.it.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/desktop/gnome/dconf.it.md b/docs/desktop/gnome/dconf.it.md index 37179e12c1..184f6eb76a 100644 --- a/docs/desktop/gnome/dconf.it.md +++ b/docs/desktop/gnome/dconf.it.md @@ -28,8 +28,8 @@ Se non si è sicuri di cosa faccia una particolare impostazione, è bene fare pr Per questa guida sono necessari i seguenti elementi: -- Rocky Linux con GNOME installato. -- L'autorità di installare il software sul sistema (privilegi `sudo`). + - Rocky Linux con GNOME installato. + - L'autorità di installare il software sul sistema (privilegi `sudo`). ## Installazione di `dconf Editor` From 17647e131f5985a2e78ce508be414f1d6df5b968 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:49 -0400 Subject: [PATCH 136/167] New translations businessapps.md (Italian) --- docs/desktop/tools/businessapps.it.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/tools/businessapps.it.md b/docs/desktop/tools/businessapps.it.md index b72000713a..44725f1e6f 100644 --- a/docs/desktop/tools/businessapps.it.md +++ b/docs/desktop/tools/businessapps.it.md @@ -14,9 +14,9 @@ Molte di loro sono su Flathub. Questa guida spiega come installare le applicazio Questa guida presuppone quanto segue: -- Rocky Linux con un ambiente desktop grafico -- I permessi per installare software nel sistema -- Flatpak e Flathub installati e funzionanti + - Rocky Linux con un ambiente desktop grafico + - I permessi per installare software nel sistema + - Flatpak e Flathub installati e funzionanti ## Come installare i più comuni software aziendali su Rocky Linux From abbb7babf9dbfccf4b1660bd92cc29b7047dd06c Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:50 -0400 Subject: [PATCH 137/167] New translations onlineaccounts.md (Italian) --- docs/desktop/gnome/onlineaccounts.it.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/desktop/gnome/onlineaccounts.it.md b/docs/desktop/gnome/onlineaccounts.it.md index 2af1e1625f..ff9f420377 100644 --- a/docs/desktop/gnome/onlineaccounts.it.md +++ b/docs/desktop/gnome/onlineaccounts.it.md @@ -14,7 +14,7 @@ In questa breve guida vedremo come iniziare. Questa guida presuppone che si disponga di quanto segue: -- Rocky Linux con l'ambiente desktop GNOME installato. + - Rocky Linux con l'ambiente desktop GNOME installato. ## Come aggiungere i vostri account online From 0c81089cee2e0283e3bba4a6dc3aca661c9ba754 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:54 -0400 Subject: [PATCH 138/167] New translations install_software_with_appimage.md (Italian) --- docs/desktop/appimage/install_software_with_appimage.it.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/desktop/appimage/install_software_with_appimage.it.md b/docs/desktop/appimage/install_software_with_appimage.it.md index 14512d8dee..1990633034 100644 --- a/docs/desktop/appimage/install_software_with_appimage.it.md +++ b/docs/desktop/appimage/install_software_with_appimage.it.md @@ -20,8 +20,8 @@ Il programma di esempio utilizzato in questa guida è Krita. Lo si scarica e ins Per questa guida sono necessari i seguenti elementi: -- Rocky Linux con un ambiente desktop installato -- Privilegi `sudo` + - Rocky Linux con un ambiente desktop installato + - Privilegi `sudo` ## Scaricare la AppImage di un programma From 14f98d5302d683611287463f8720248e98dc7d8a Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:56 -0400 Subject: [PATCH 139/167] New translations installing_nvidia_gpu_drivers.md (Italian) --- .../display/installing_nvidia_gpu_drivers.it.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/desktop/display/installing_nvidia_gpu_drivers.it.md b/docs/desktop/display/installing_nvidia_gpu_drivers.it.md index e99e0d4f47..024c08d4dc 100644 --- a/docs/desktop/display/installing_nvidia_gpu_drivers.it.md +++ b/docs/desktop/display/installing_nvidia_gpu_drivers.it.md @@ -16,9 +16,9 @@ Il link per le attività di pre-installazione nella guida ufficiale di NVIDIA è Alcuni altri modi alternativi per installare i driver NVIDIA includono: -- L'installer `.run` di NVIDIA -- Repo RPMFusion di terze parti -- Driver ELRepo di terze parti + - L'installer `.run` di NVIDIA + - Repo RPMFusion di terze parti + - Driver ELRepo di terze parti Nella maggior parte dei casi, è meglio installare i driver NVIDIA dalla fonte ufficiale. RPMFusion e ELRepo sono disponibili per chi preferisce un repository più comunity-based. Per l'hardware più vecchio, la soluzione migliore è RPMFusion. È consigliabile evitare di usare il programma di installazione `.run`. Sebbene sia comodo, l'uso del programma di installazione `.run` è noto per la sovrascrittura dei file di sistema e per i problemi di incompatibilità. @@ -26,8 +26,8 @@ Nella maggior parte dei casi, è meglio installare i driver NVIDIA dalla fonte u Per questa guida sono necessari i seguenti elementi: -- Rocky Linux Workstation -- Privilegi `sudo` + - Rocky Linux Workstation + - Privilegi `sudo` ## Installare le utility e le dependencies necessarie From 4223a8259f03a98cf0e473048511acc88878f8b9 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:58 -0400 Subject: [PATCH 140/167] New translations decibels.md (Italian) --- docs/desktop/gnome/decibels.it.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/desktop/gnome/decibels.it.md b/docs/desktop/gnome/decibels.it.md index f6feaae0cd..eb208757ed 100644 --- a/docs/desktop/gnome/decibels.it.md +++ b/docs/desktop/gnome/decibels.it.md @@ -12,9 +12,9 @@ Decibel è un'applicazione che riproduce file audio. L'interfaccia intuitiva con Questa guida presuppone che si disponga di quanto segue: -- Rocky Linux -- Flatpak -- FlatHub + - Rocky Linux + - Flatpak + - FlatHub ## Processo di installazione @@ -26,15 +26,15 @@ Andate su [Flathub.org](https://flathub.org), digitate "Decibel" nella barra di 2. Copiare lo script di installazione manuale ed eseguirlo in un terminale: - ```bash - flatpak install flathub org.gnome.Decibels - ``` + ```bash + flatpak install flathub org.gnome.Decibels + ``` 3. Infine, copiate il comando run ed eseguitelo nel vostro terminale: - ```bash - flatpak run org.gnome.Decibels - ``` + ```bash + flatpak run org.gnome.Decibels + ``` ## Guida all'uso @@ -42,11 +42,11 @@ Per utilizzare Decibel, procedere come segue: 1. Cliccare su **Open** - ![Screenshot of Decibels' landing page with a red rectangle surrounding the blue open button](images/02_decibels.png) + ![Screenshot of Decibels' landing page with a red rectangle surrounding the blue open button](images/02_decibels.png) 2. Scegliere il file desiderato e fare clic su **Apri** che appare nell'angolo in alto a destra dello schermo - ![Screenshot of Decibels file selection interface with numbered arrows indicating audio file and Open button](images/03_decibels.png) + ![Screenshot of Decibels file selection interface with numbered arrows indicating audio file and Open button](images/03_decibels.png) !!! note "Nota" From f6707c5601fc743c479a32fa9e9a79d313c14873 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:19:59 -0400 Subject: [PATCH 141/167] New translations decoder.md (Italian) --- docs/desktop/gnome/decoder.it.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/desktop/gnome/decoder.it.md b/docs/desktop/gnome/decoder.it.md index a7284513a0..a4fee7b8bd 100644 --- a/docs/desktop/gnome/decoder.it.md +++ b/docs/desktop/gnome/decoder.it.md @@ -12,34 +12,34 @@ Avete bisogno di un codice QR per il vostro sito web, la vostra applicazione o i Questa guida presuppone che si disponga di quanto segue: -- Rocky Linux -- Flatpak -- FlatHub + - Rocky Linux + - Flatpak + - FlatHub ## Processo dell'installazione 1. Andate sul [sito web di Flathub](https://flathub.org/), digitate "Decoder" nella barra di ricerca e fate clic su **Install**. ![Screenshot of the install button highlighted by a red rectangle](images/01_decoder.png) - ![manual install script and run script](images/decoder_install.png) + ![manual install script and run script](images/decoder_install.png) 2. Copiare lo script di installazione manuale ed eseguirlo in un terminale: - ```bash - flatpak install flathub com.belmoussaoui.Decoder - ``` + ```bash + flatpak install flathub com.belmoussaoui.Decoder + ``` 3. Infine, copiate il comando run ed eseguitelo nel vostro terminale: - ```bash - flatpak run com.belmoussaoui.Decoder - ``` + ```bash + flatpak run com.belmoussaoui.Decoder + ``` ## Come creare un codice QR Sono disponibili due tipi di codici QR. Scegliete l'opzione più adatta alle vostre esigenze: -- [Text](#text) -- [Wifi](#wifi) + - [Text](#text) + - [Wifi](#wifi) ### Text @@ -51,7 +51,7 @@ Sono disponibili due tipi di codici QR. Scegliete l'opzione più adatta alle vos 3. Cliccare su **Create** - ![Screenshot of the Save and Export screen with arrows](images/03_decoder-text.png) + ![Screenshot of the Save and Export screen with arrows](images/03_decoder-text.png) 4. Cliccare su **Save** @@ -77,15 +77,15 @@ Oltre a creare e generare codici QR, è possibile utilizzare Decoder per scansio 1. Cliccare su **Scan** - ![Screenshot of the rectangular button with the words "From a Screenshot" written in white.](images/02_decoder-scan.png) + ![Screenshot of the rectangular button with the words "From a Screenshot" written in white.](images/02_decoder-scan.png) 2. Fare clic su **From a Screenshot** - ![Screenshot of grey square surrounding options menu, and red square surrounding the "Take a Screenshot button"](images/03_decoder-scan.png) + ![Screenshot of grey square surrounding options menu, and red square surrounding the "Take a Screenshot button"](images/03_decoder-scan.png) 3. Scegliete gli effetti desiderati e cliccate su **Take a Screenshot** - ![Screenshot of a red arrow pointing at a blue button that has the word "Share" written in white](images/04_decoder-scan.png) + ![Screenshot of a red arrow pointing at a blue button that has the word "Share" written in white](images/04_decoder-scan.png) 4. Cliccare su **Share** From a9e261b4f5a4c4bd0649290ddeb707e1bc41649e Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:00 -0400 Subject: [PATCH 142/167] New translations valuta.md (Italian) --- docs/desktop/gnome/valuta.it.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/desktop/gnome/valuta.it.md b/docs/desktop/gnome/valuta.it.md index 18ff6b4f75..ccd8120947 100644 --- a/docs/desktop/gnome/valuta.it.md +++ b/docs/desktop/gnome/valuta.it.md @@ -12,9 +12,9 @@ Se viaggiate o vi trasferite spesso all'estero, semplificate la vostra pianifica Questa guida presuppone che si disponga di quanto segue: -- Rocky Linux -- Flatpak -- FlatHub + - Rocky Linux + - Flatpak + - FlatHub ## Processo di installazione @@ -22,19 +22,19 @@ Questa guida presuppone che si disponga di quanto segue: 1. Andate su [Flathub.org](https://flathub.org), digitate "Valuta" nella barra di ricerca e cliccate su **Installa** - ![manual install script and run script](images/valuta-install.png) + ![manual install script and run script](images/valuta-install.png) 2. Copiare lo script manuale nel terminale: - ```bash - flatpak install flathub io.github.idevecore.Valuta - ``` + ```bash + flatpak install flathub io.github.idevecore.Valuta + ``` 3. Infine, lo script manuale nel terminale: - ```bash - flatpak run flathub io.github.idevecore.Valuta - ``` + ```bash + flatpak run flathub io.github.idevecore.Valuta + ``` ## Come si usa @@ -42,7 +42,7 @@ Per utilizzare Valuta, procedere come segue: 1. Scegliete il vostro Paese dal menu a tendina e digitate il denaro che volete spendere. - ![Screenshot of Valuta app showing 1000 USD in the input field, with a grey arrow pointing down to a grey box showing 1000 USD](images/02_valuta.png) + ![Screenshot of Valuta app showing 1000 USD in the input field, with a grey arrow pointing down to a grey box showing 1000 USD](images/02_valuta.png) 2. Selezionare il Paese in cui si viaggia dal menu a discesa. L'importo convertito apparirà automaticamente. From 7fd36f8845bc2ef73c2dead004bb7c0e0f50e815 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:01 -0400 Subject: [PATCH 143/167] New translations file-shredder.md (Italian) --- docs/desktop/gnome/file-shredder.it.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/gnome/file-shredder.it.md b/docs/desktop/gnome/file-shredder.it.md index ad99ae2a61..2932dbc300 100644 --- a/docs/desktop/gnome/file-shredder.it.md +++ b/docs/desktop/gnome/file-shredder.it.md @@ -12,9 +12,9 @@ Dovete rimuovere una cartolina o un file PDF contenente informazioni come il vos Questa guida presuppone che si disponga di quanto segue: -- Rocky Linux -- Flatpak -- FlatHub + - Rocky Linux + - Flatpak + - FlatHub ## Processo di installazione From 9b9cf249502f566eef260033787953308181bafa Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:03 -0400 Subject: [PATCH 144/167] New translations screenshot.md (Italian) --- docs/desktop/gnome/screenshot.it.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/desktop/gnome/screenshot.it.md b/docs/desktop/gnome/screenshot.it.md index 1bfa47ba45..a7bacfb8bf 100644 --- a/docs/desktop/gnome/screenshot.it.md +++ b/docs/desktop/gnome/screenshot.it.md @@ -12,7 +12,7 @@ Siete stanchi di usare la tastiera per scattare immagini dello schermo del compu Questa guida presuppone che si disponga di quanto segue: -- Rocky Linux + - Rocky Linux !!! note "Nota" @@ -30,7 +30,7 @@ Per utilizzare Screenshot, procedere come segue: 2. Fare clic su **Fai uno screenshot** - ![Screenshot of taken picture of being saved with black arrows pointing at a text box that contains the file name, "Linux.png" as well as Save and Copy buttons](images/screenshot-02.png) + ![Screenshot of taken picture of being saved with black arrows pointing at a text box that contains the file name, "Linux.png" as well as Save and Copy buttons](images/screenshot-02.png) 3. Una volta soddisfatti della schermata, rinominare il file e fare clic su **Salva**. From 36d235042e8664e3f023741e9a42bc651ad90907 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:14 -0400 Subject: [PATCH 145/167] New translations proton.md (Italian) --- docs/desktop/gaming/proton.it.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/desktop/gaming/proton.it.md b/docs/desktop/gaming/proton.it.md index b71192c9ba..92e6ef254b 100644 --- a/docs/desktop/gaming/proton.it.md +++ b/docs/desktop/gaming/proton.it.md @@ -14,9 +14,9 @@ A differenza di Wine, Proton non richiede alcuna configurazione ed è rivolto ai ## Presupposti -- Una workstation con ambiente desktop Rocky Linux -- Flatpak -- Account Steam + - Una workstation con ambiente desktop Rocky Linux + - Flatpak + - Account Steam ## Installazione di `Steam` From 11449de903d0794e6d76e3ae5100c86c5dc4a059 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:17 -0400 Subject: [PATCH 146/167] New translations wordpress-on-lamp.md (Italian) --- docs/guides/cms/wordpress-on-lamp.it.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/cms/wordpress-on-lamp.it.md b/docs/guides/cms/wordpress-on-lamp.it.md index b09632e017..1ca2126854 100644 --- a/docs/guides/cms/wordpress-on-lamp.it.md +++ b/docs/guides/cms/wordpress-on-lamp.it.md @@ -7,8 +7,8 @@ tested_with: 9.2 ## Prerequisiti -- Un sistema Rocky Linux 9.x -- privilegi sudo + - Un sistema Rocky Linux 9.x + - privilegi sudo ## Introduzione From ccc07112959fc04cc43272b785b8c9a40b12afb0 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:22 -0400 Subject: [PATCH 147/167] New translations libvirt-rocky.md (Italian) --- .../guides/virtualization/libvirt-rocky.it.md | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/docs/guides/virtualization/libvirt-rocky.it.md b/docs/guides/virtualization/libvirt-rocky.it.md index 03b49c6525..01de553cec 100644 --- a/docs/guides/virtualization/libvirt-rocky.it.md +++ b/docs/guides/virtualization/libvirt-rocky.it.md @@ -17,8 +17,8 @@ Questo documento fornisce le istruzioni per l'impostazione di libvirt su Rocky L ## Prerequisiti -- Una macchina a 64 bit con Rocky Linux 9. -- Assicuratevi di aver abilitato la virtualizzazione nelle impostazioni del BIOS. Se il comando seguente restituisce un risultato, significa che l'abilitazione della virtualizzazione è stata completata: + - Una macchina a 64 bit con Rocky Linux 9. + - Assicuratevi di aver abilitato la virtualizzazione nelle impostazioni del BIOS. Se il comando seguente restituisce un risultato, significa che l'abilitazione della virtualizzazione è stata completata: ```bash sudo grep -e 'vmx' /proc/cpuinfo @@ -26,13 +26,13 @@ sudo grep -e 'vmx' /proc/cpuinfo ## Configurazione del repository e installazione dei pacchetti -- Attivare il repository EPEL (Extra Packages for Enterprise Linux): + - Attivare il repository EPEL (Extra Packages for Enterprise Linux): ```bash sudo dnf install -y epel-release ``` -- Installare i pacchetti necessari per `libvirt` (opzionalmente per `virt-manager` se si vuole usare una GUI per gestire le macchine virtuali): + - Installare i pacchetti necessari per `libvirt` (opzionalmente per `virt-manager` se si vuole usare una GUI per gestire le macchine virtuali): ```bash sudo dnf install -y bridge-utils virt-top libguestfs-tools bridge-utils virt-viewer qemu-kvm libvirt virt-manager virt-install @@ -40,19 +40,19 @@ sudo dnf install -y bridge-utils virt-top libguestfs-tools bridge-utils virt-vie ## Configurazione utente libvirt -- Aggiungere il proprio utente al gruppo `libvirt`. Ciò consente di gestire le macchine virtuali e di utilizzare comandi come `virt-install` come utente non root: + - Aggiungere il proprio utente al gruppo `libvirt`. Ciò consente di gestire le macchine virtuali e di utilizzare comandi come `virt-install` come utente non root: ```bash sudo usermod -aG libvirt $USER ``` -- Attivare il gruppo `libvirt` utilizzando il comando `newgrp`: + - Attivare il gruppo `libvirt` utilizzando il comando `newgrp`: ```bash sudo newgrp libvirt ``` -- Abilitare e avviare il servizio `libvirtd`: + - Abilitare e avviare il servizio `libvirtd`: ```bash sudo systemctl enable --now libvirtd @@ -60,13 +60,13 @@ sudo systemctl enable --now libvirtd ## Configurazione dell'interfaccia bridge per l'accesso diretto alle macchine virtuali -- Controllare le interfacce attualmente in uso e annotare l'interfaccia principale con connessione a Internet: + - Controllare le interfacce attualmente in uso e annotare l'interfaccia principale con connessione a Internet: ```bash sudo nmcli connection show ``` -- Eliminare l'interfaccia collegata a Internet e tutte le connessioni virtual bridge attualmente presenti: + - Eliminare l'interfaccia collegata a Internet e tutte le connessioni virtual bridge attualmente presenti: ```bash sudo nmcli connection delete @@ -78,43 +78,43 @@ sudo nmcli connection delete Assicurarsi di avere accesso diretto alla macchina. Se si configura la macchina tramite SSH, la connessione verrà interrotta dopo aver eliminato la connessione all'interfaccia principale. ``` -- Creare la nuova connessione bridge: + - Creare la nuova connessione bridge: ```bash sudo nmcli connection add type bridge autoconnect yes con-name ifname ``` -- Assegnare un indirizzo IP statico: + - Assegnare un indirizzo IP statico: ```bash sudo nmcli connection modify ipv4.addresses ipv4.method manual ``` -- Assegnare un indirizzo gateway: + - Assegnare un indirizzo gateway: ```bash sudo nmcli connection modify ipv4.gateway ``` -- Assegnare l'indirizzo DNS: + - Assegnare l'indirizzo DNS: ```bash sudo nmcli connection modify ipv4.dns ``` -- Aggiungere la connessione bridge slave: + - Aggiungere la connessione bridge slave: ```bash sudo nmcli connection add type bridge-slave autoconnect yes con-name ifname master ``` -- Avviare la connessione bridge: + - Avviare la connessione bridge: ```bash sudo nmcli connection up ``` -- Aggiungere la riga `allow all` a `bridge.conf`: + - Aggiungere la riga `allow all` a `bridge.conf`: ```bash sudo tee -a /etc/qemu-kvm/bridge.conf < ``` -- Per forzare lo spegnimento di una macchina virtuale che non risponde, utilizzare il comando `destroy`: + - Per forzare lo spegnimento di una macchina virtuale che non risponde, utilizzare il comando `destroy`: ```bash virsh destroy --domain @@ -160,14 +160,14 @@ virsh destroy --domain ## Come cancellare una VM -- Utilizzare il comando `undefine`: + - Utilizzare il comando `undefine`: ```bash virsh undefine --domain --nvram ``` -- Per ulteriori comandi `virsh`, consultare le pagine `virsh` `man`. + - Per ulteriori comandi `virsh`, consultare le pagine `virsh` `man`. ## Conclusione -- libvirt offre molte possibilità e permette di installare e gestire le macchine virtuali con facilità. Se si hanno ulteriori integrazioni o modifiche a questo documento che si desidera condividere, l'autore vi invita a farlo. + - libvirt offre molte possibilità e permette di installare e gestire le macchine virtuali con facilità. Se si hanno ulteriori integrazioni o modifiche a questo documento che si desidera condividere, l'autore vi invita a farlo. From 6ed2a0db73c767a4ee4bb4b934c3ba5db53c30e2 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:24 -0400 Subject: [PATCH 148/167] New translations tar.md (Italian) --- docs/guides/backup/tar.it.md | 192 +++++++++++++++++------------------ 1 file changed, 96 insertions(+), 96 deletions(-) diff --git a/docs/guides/backup/tar.it.md b/docs/guides/backup/tar.it.md index 5bd9f9b28e..69b1af9150 100644 --- a/docs/guides/backup/tar.it.md +++ b/docs/guides/backup/tar.it.md @@ -106,30 +106,30 @@ In alcune vecchie versioni di tar, le opzioni sono indicate come "key", il che s 1. Stile tradizionale: - - `tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]`. + - `tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]`. 2. L'uso dello stile breve dei parametri è: - - `tar -A [OPTIONS] ARCHIVE ARCHIVE` - - `tar -c [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar -d [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...]` - - `tar -r [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar -u [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar -A [OPTIONS] ARCHIVE ARCHIVE` + - `tar -c [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar -d [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar -r [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar -u [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...]` 3. L'uso dello stile lungo dei parametri è: - - `tar {--catenate|--concatenate} [OPTIONS] ARCHIVE ARCHIVE` - - `tar --create [--file ARCHIVE] [OPTIONS] [FILE...]` - - `tar {--diff|--compare} [--file ARCHIVE] [OPTIONS] [FILE...]` - - `tar --delete [--file ARCHIVE] [OPTIONS] [MEMBER...]` - - `tar --append [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar --list [-f ARCHIVE] [OPTIONS] [MEMBER...]` - - `tar --test-label [--file ARCHIVE] [OPTIONS] [LABEL...]` - - `tar --update [--file ARCHIVE] [OPTIONS] [FILE...]` - - `tar --update [-f ARCHIVE] [OPTIONS] [FILE...]` - - `tar {--extract|--get} [-f ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar {--catenate|--concatenate} [OPTIONS] ARCHIVE ARCHIVE` + - `tar --create [--file ARCHIVE] [OPTIONS] [FILE...]` + - `tar {--diff|--compare} [--file ARCHIVE] [OPTIONS] [FILE...]` + - `tar --delete [--file ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar --append [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar --list [-f ARCHIVE] [OPTIONS] [MEMBER...]` + - `tar --test-label [--file ARCHIVE] [OPTIONS] [LABEL...]` + - `tar --update [--file ARCHIVE] [OPTIONS] [FILE...]` + - `tar --update [-f ARCHIVE] [OPTIONS] [FILE...]` + - `tar {--extract|--get} [-f ARCHIVE] [OPTIONS] [MEMBER...]` Il secondo metodo è più comunemente usato ed è in linea con le abitudini della maggior parte degli utenti GNU/Linux. @@ -166,98 +166,98 @@ Ecco alcuni esempi di convenzioni di nomenclatura per gli archivi `tar`: 1. Archivia e comprime **/etc/** in modalità percorso relativo, con un suffisso `.tar.gz`: - ```bash - Shell > tar -czvf /tmp/etc-20241207.tar.gz /etc/ - ``` + ```bash + Shell > tar -czvf /tmp/etc-20241207.tar.gz /etc/ + ``` - Poiché `tar` lavora in modalità percorsi relativi per impostazione predefinita, la prima riga dell'output del comando mostrerà quanto segue: + Poiché `tar` lavora in modalità percorsi relativi per impostazione predefinita, la prima riga dell'output del comando mostrerà quanto segue: - ```bash - tar: Removing leading '/' from member names - ``` + ```bash + tar: Removing leading '/' from member names + ``` 2. Archiviazione di **/var/log/** e selezionare il tipo xz per la compressione: - ```bash - Shell > tar -cJvf /tmp/log-20241207.tar.xz /var/log/ + ```bash + Shell > tar -cJvf /tmp/log-20241207.tar.xz /var/log/ - Shell > du -sh /var/log/ ; ls -lh /tmp/log-20241207.tar.xz - 18M /var/log/ - -rw-r--r-- 1 root root 744K Dec 7 14:40 /tmp/log-20241207.tar.xz - ``` + Shell > du -sh /var/log/ ; ls -lh /tmp/log-20241207.tar.xz + 18M /var/log/ + -rw-r--r-- 1 root root 744K Dec 7 14:40 /tmp/log-20241207.tar.xz + ``` 3. Stima delle dimensioni del file senza generare un archivio: - ```bash - Shell > tar -cJf - /etc | wc -c - tar: Removing leading `/' from member names - 3721884 - ``` + ```bash + Shell > tar -cJf - /etc | wc -c + tar: Removing leading `/' from member names + 3721884 + ``` - L'unità di misura del comando `wc -c` è il byte. + L'unità di misura del comando `wc -c` è il byte. 4. Taglia i file \`.tar.gz' di grandi dimensioni: - ```bash - Shell > cd /tmp/ ; tar -czf - /etc/ | split -d -b 2M - etc-backup20241207.tar.gz. + ```bash + Shell > cd /tmp/ ; tar -czf - /etc/ | split -d -b 2M - etc-backup20241207.tar.gz. - Shell > ls -lh /tmp/ - -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.00 - -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.01 - -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.02 - -rw-r--r-- 1 root root 70K Dec 7 20:46 etc-backup20241207.tar.gz.03 - ``` + Shell > ls -lh /tmp/ + -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.00 + -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.01 + -rw-r--r-- 1 root root 2.0M Dec 7 20:46 etc-backup20241207.tar.gz.02 + -rw-r--r-- 1 root root 70K Dec 7 20:46 etc-backup20241207.tar.gz.03 + ``` - Il primo “-” rappresenta i parametri di ingresso di `tar`, mentre il secondo “-” indica a `tar` di reindirizzare l'output a `stdout`. + Il primo “-” rappresenta i parametri di ingresso di `tar`, mentre il secondo “-” indica a `tar` di reindirizzare l'output a `stdout`. - Per estrarre questi piccoli file tagliati, si può puntare alla seguente operazione: + Per estrarre questi piccoli file tagliati, si può puntare alla seguente operazione: - ```bash - Shell > cd /tmp/ ; cat etc-backup20241207.tar.gz.* >> /tmp/etc-backup-20241207.tar.gz + ```bash + Shell > cd /tmp/ ; cat etc-backup20241207.tar.gz.* >> /tmp/etc-backup-20241207.tar.gz - Shell > cd /tmp/ ; tar -xvf etc-backup-20241207.tar.gz -C /tmp/dir1/ - ``` + Shell > cd /tmp/ ; tar -xvf etc-backup-20241207.tar.gz -C /tmp/dir1/ + ``` #### Casi con '-x' 1. Scaricate il codice sorgente di Redis ed estrarlo nella directory `/usr/local/src/`: - ```bash - Shell > wget -c https://github.com/redis/redis/archive/refs/tags/7.4.1.tar.gz + ```bash + Shell > wget -c https://github.com/redis/redis/archive/refs/tags/7.4.1.tar.gz - Shell > tar -xvf 7.4.1.tar.gz -C /usr/local/src/ - ``` + Shell > tar -xvf 7.4.1.tar.gz -C /usr/local/src/ + ``` 2. Estrarre solo un file dal file zip dell'archivio: - ```bash - Shell > tar -xvf /tmp/etc-20241207.tar.gz etc/chrony.conf - ``` + ```bash + Shell > tar -xvf /tmp/etc-20241207.tar.gz etc/chrony.conf + ``` #### Casi con '-A' o '-r' 1. Aggiunge un file `.tar' a un altro file `.tar': - ```bash - Shell > tar -cvf /tmp/etc.tar /etc/ + ```bash + Shell > tar -cvf /tmp/etc.tar /etc/ - Shell > tar -cvf /tmp/log.tar /var/log/ + Shell > tar -cvf /tmp/log.tar /var/log/ - Shell > tar -Avf /tmp/etc.tar /tmp/log.tar - ``` + Shell > tar -Avf /tmp/etc.tar /tmp/log.tar + ``` - Ciò significa che tutti i file in “log.tar” saranno aggiunti alla fine di “etc.tar”. + Ciò significa che tutti i file in “log.tar” saranno aggiunti alla fine di “etc.tar”. 2. Aggiunge file o directory a un file `.tar`: - ```bash - Shell > tar -rvf /tmp/log.tar /etc/chrony.conf - tar: Removing leading `/' from member names - /etc/chrony.conf - tar: Removing leading `/' from hard link targets + ```bash + Shell > tar -rvf /tmp/log.tar /etc/chrony.conf + tar: Removing leading `/' from member names + /etc/chrony.conf + tar: Removing leading `/' from hard link targets - Shell > tar -rvf /tmp/log.tar /tmp/dir1 - ``` + Shell > tar -rvf /tmp/log.tar /tmp/dir1 + ``` !!! warning "Attenzione" @@ -275,55 +275,55 @@ Sia che si utilizzi l'opzione `-A` o `-r`, considerare la modalità di salvatagg 1. Esaminare il contenuto dell'archivio: - ```bash - Shell > tar -tvf /tmp/log.tar + ```bash + Shell > tar -tvf /tmp/log.tar - Shell > tar -tvf /tmp/etc-20241207.tar.gz | less - ``` + Shell > tar -tvf /tmp/etc-20241207.tar.gz | less + ``` #### Casi con '-d' 1. Confrontare le differenze: - ```bash - Shell > cd / ; tar -dvf /tmp/etc.tar etc/chrony.conf - etc/chrony.conf + ```bash + Shell > cd / ; tar -dvf /tmp/etc.tar etc/chrony.conf + etc/chrony.conf - Shell > cd / ; tar -dvf /tmp/etc-20241207.tar.gz etc/ - ``` + Shell > cd / ; tar -dvf /tmp/etc-20241207.tar.gz etc/ + ``` - Per i metodi di archiviazione che usano la modalità percorsi relativi, quando si usa il tipo \`-d', cambiare il percorso del file in ‘/’. + Per i metodi di archiviazione che usano la modalità percorsi relativi, quando si usa il tipo \`-d', cambiare il percorso del file in ‘/’. #### Casi con '-u' 1. Se esistono più versioni dello stesso file, si può usare il parametro `-u`: - ```bash - Shell > touch /tmp/tmpfile1 + ```bash + Shell > touch /tmp/tmpfile1 - Shell > tar -rvf /tmp/log.tar /tmp/tmpfile1 + Shell > tar -rvf /tmp/log.tar /tmp/tmpfile1 - Shell > echo "File Name" >> /tmp/tmpfile1 + Shell > echo "File Name" >> /tmp/tmpfile1 - Shell > tar -uvf /tmp/log.tar /tmp/tmpfile1 + Shell > tar -uvf /tmp/log.tar /tmp/tmpfile1 - Shell > tar -tvf /tmp/log.tar - ... - -rw-r--r-- root/root 0 2024-12-07 18:53 tmp/tmpfile1 - -rw-r--r-- root/root 10 2024-12-07 18:54 tmp/tmpfile1 - ``` + Shell > tar -tvf /tmp/log.tar + ... + -rw-r--r-- root/root 0 2024-12-07 18:53 tmp/tmpfile1 + -rw-r--r-- root/root 10 2024-12-07 18:54 tmp/tmpfile1 + ``` #### Casi con '--delete' 1. Si può anche usare `--delete` per cancellare i file all'interno di un file `.tar`. - ```bash - Shell > tar --delete -vf /tmp/log.tar tmp/tmpfile1 + ```bash + Shell > tar --delete -vf /tmp/log.tar tmp/tmpfile1 - Shell > tar --delete -vf /tmp/etc.tar etc/motd.d/ - ``` + Shell > tar --delete -vf /tmp/etc.tar etc/motd.d/ + ``` - Quando si elimina, si eliminano tutti i file con lo stesso nome dall'archivio. + Quando si elimina, si eliminano tutti i file con lo stesso nome dall'archivio. ## Terminologia comune From 8276366df1176fab3b20cb3aa2d2cdf2cbb58590 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:25 -0400 Subject: [PATCH 149/167] New translations dump_restore.md (Italian) --- docs/guides/backup/dump_restore.it.md | 266 +++++++++++++------------- 1 file changed, 133 insertions(+), 133 deletions(-) diff --git a/docs/guides/backup/dump_restore.it.md b/docs/guides/backup/dump_restore.it.md index 3b9361a7d8..ce40e190ac 100644 --- a/docs/guides/backup/dump_restore.it.md +++ b/docs/guides/backup/dump_restore.it.md @@ -59,133 +59,133 @@ Le opzioni più comuni sono: 1. Eseguire un backup completo della partizione principale: - ```bash - Shell > dump -0u -j3 -f /tmp/root-20241208.bak.bz2 / - DUMP: Date of this level 0 dump: Sun Dec 8 19:04:39 2024 - DUMP: Dumping /dev/nvme0n1p2 (/) to /tmp/root-20241208.bak.bz2 - DUMP: Label: none - DUMP: Writing 10 Kilobyte records - DUMP: Compressing output at transformation level 3 (bzlib) - DUMP: mapping (Pass I) [regular files] - DUMP: mapping (Pass II) [directories] - DUMP: estimated 14693111 blocks. - DUMP: Volume 1 started with block 1 at: Sun Dec 8 19:04:41 2024 - DUMP: dumping (Pass III) [directories] - DUMP: dumping (Pass IV) [regular files] - DUMP: 20.69% done at 10133 kB/s, finished in 0:19 - DUMP: 43.74% done at 10712 kB/s, finished in 0:12 - DUMP: 70.91% done at 11575 kB/s, finished in 0:06 - DUMP: 93.23% done at 11415 kB/s, finished in 0:01 - DUMP: Closing /tmp/root-20241208.bak.bz2 - DUMP: Volume 1 completed at: Sun Dec 8 19:26:08 2024 - DUMP: Volume 1 took 0:21:27 - DUMP: Volume 1 transfer rate: 5133 kB/s - DUMP: Volume 1 14722930kB uncompressed, 6607183kB compressed, 2.229:1 - DUMP: 14722930 blocks (14377.86MB) on 1 volume(s) - DUMP: finished in 1287 seconds, throughput 11439 kBytes/sec - DUMP: Date of this level 0 dump: Sun Dec 8 19:04:39 2024 - DUMP: Date this dump completed: Sun Dec 8 19:26:08 2024 - DUMP: Average transfer rate: 5133 kB/s - DUMP: Wrote 14722930kB uncompressed, 6607183kB compressed, 2.229:1 - DUMP: DUMP IS DONE - - Shell > ls -lh /tmp/root-20241208.bak.bz2 - -rw-r--r-- 1 root root 6.4G Dec 8 19:26 /tmp/root-20241208.bak.bz2 - ``` + ```bash + Shell > dump -0u -j3 -f /tmp/root-20241208.bak.bz2 / + DUMP: Date of this level 0 dump: Sun Dec 8 19:04:39 2024 + DUMP: Dumping /dev/nvme0n1p2 (/) to /tmp/root-20241208.bak.bz2 + DUMP: Label: none + DUMP: Writing 10 Kilobyte records + DUMP: Compressing output at transformation level 3 (bzlib) + DUMP: mapping (Pass I) [regular files] + DUMP: mapping (Pass II) [directories] + DUMP: estimated 14693111 blocks. + DUMP: Volume 1 started with block 1 at: Sun Dec 8 19:04:41 2024 + DUMP: dumping (Pass III) [directories] + DUMP: dumping (Pass IV) [regular files] + DUMP: 20.69% done at 10133 kB/s, finished in 0:19 + DUMP: 43.74% done at 10712 kB/s, finished in 0:12 + DUMP: 70.91% done at 11575 kB/s, finished in 0:06 + DUMP: 93.23% done at 11415 kB/s, finished in 0:01 + DUMP: Closing /tmp/root-20241208.bak.bz2 + DUMP: Volume 1 completed at: Sun Dec 8 19:26:08 2024 + DUMP: Volume 1 took 0:21:27 + DUMP: Volume 1 transfer rate: 5133 kB/s + DUMP: Volume 1 14722930kB uncompressed, 6607183kB compressed, 2.229:1 + DUMP: 14722930 blocks (14377.86MB) on 1 volume(s) + DUMP: finished in 1287 seconds, throughput 11439 kBytes/sec + DUMP: Date of this level 0 dump: Sun Dec 8 19:04:39 2024 + DUMP: Date this dump completed: Sun Dec 8 19:26:08 2024 + DUMP: Average transfer rate: 5133 kB/s + DUMP: Wrote 14722930kB uncompressed, 6607183kB compressed, 2.229:1 + DUMP: DUMP IS DONE + + Shell > ls -lh /tmp/root-20241208.bak.bz2 + -rw-r--r-- 1 root root 6.4G Dec 8 19:26 /tmp/root-20241208.bak.bz2 + ``` 2. Dopo aver effettuato lo scarico, controllare le informazioni pertinenti: - ```bash - Shell > cat /etc/dumpdates - /dev/nvme0n1p2 0 Sun Dec 8 19:04:39 2024 +0800 + ```bash + Shell > cat /etc/dumpdates + /dev/nvme0n1p2 0 Sun Dec 8 19:04:39 2024 +0800 - Shell > dump -W - Last dump(s) done (Dump '>' file systems): - /dev/nvme0n1p2 ( /) Last dump: Level 0, Date Sun Dec 8 19:04:39 2024 - ``` + Shell > dump -W + Last dump(s) done (Dump '>' file systems): + /dev/nvme0n1p2 ( /) Last dump: Level 0, Date Sun Dec 8 19:04:39 2024 + ``` 3. Implementare il backup incrementale sulla base del backup completo: - ```bash - Shell > echo "jack" >> /tmp/tmpfile.txt - - Shell > dump -1u -j4 -f /tmp/root-20241208-LV1.bak.bz2 / - DUMP: Date of this level 1 dump: Sun Dec 8 19:38:51 2024 - DUMP: Date of last level 0 dump: Sun Dec 8 19:04:39 2024 - DUMP: Dumping /dev/nvme0n1p2 (/) to /tmp/root-20241208-LV1.bak.bz2 - DUMP: Label: none - DUMP: Writing 10 Kilobyte records - DUMP: Compressing output at transformation level 4 (bzlib) - DUMP: mapping (Pass I) [regular files] - DUMP: mapping (Pass II) [directories] - DUMP: estimated 6620898 blocks. - DUMP: Volume 1 started with block 1 at: Sun Dec 8 19:38:58 2024 - DUMP: dumping (Pass III) [directories] - DUMP: dumping (Pass IV) [regular files] - DUMP: 38.13% done at 8415 kB/s, finished in 0:08 - DUMP: 75.30% done at 8309 kB/s, finished in 0:03 - DUMP: Closing /tmp/root-20241208-LV1.bak.bz2 - DUMP: Volume 1 completed at: Sun Dec 8 19:52:03 2024 - DUMP: Volume 1 took 0:13:05 - DUMP: Volume 1 transfer rate: 8408 kB/s - DUMP: Volume 1 6620910kB uncompressed, 6600592kB compressed, 1.004:1 - DUMP: 6620910 blocks (6465.73MB) on 1 volume(s) - DUMP: finished in 785 seconds, throughput 8434 kBytes/sec - DUMP: Date of this level 1 dump: Sun Dec 8 19:38:51 2024 - DUMP: Date this dump completed: Sun Dec 8 19:52:03 2024 - DUMP: Average transfer rate: 8408 kB/s - DUMP: Wrote 6620910kB uncompressed, 6600592kB compressed, 1.004:1 - DUMP: DUMP IS DONE - - Shell > cat /etc/dumpdates - /dev/nvme0n1p2 0 Sun Dec 8 19:04:39 2024 +0800 - /dev/nvme0n1p2 1 Sun Dec 8 19:38:51 2024 +0800 - - Shell > dump -W - Last dump(s) done (Dump '>' file systems): - /dev/nvme0n1p2 ( /) Last dump: Level 1, Date Sun Dec 8 19:38:51 2024 - ``` + ```bash + Shell > echo "jack" >> /tmp/tmpfile.txt + + Shell > dump -1u -j4 -f /tmp/root-20241208-LV1.bak.bz2 / + DUMP: Date of this level 1 dump: Sun Dec 8 19:38:51 2024 + DUMP: Date of last level 0 dump: Sun Dec 8 19:04:39 2024 + DUMP: Dumping /dev/nvme0n1p2 (/) to /tmp/root-20241208-LV1.bak.bz2 + DUMP: Label: none + DUMP: Writing 10 Kilobyte records + DUMP: Compressing output at transformation level 4 (bzlib) + DUMP: mapping (Pass I) [regular files] + DUMP: mapping (Pass II) [directories] + DUMP: estimated 6620898 blocks. + DUMP: Volume 1 started with block 1 at: Sun Dec 8 19:38:58 2024 + DUMP: dumping (Pass III) [directories] + DUMP: dumping (Pass IV) [regular files] + DUMP: 38.13% done at 8415 kB/s, finished in 0:08 + DUMP: 75.30% done at 8309 kB/s, finished in 0:03 + DUMP: Closing /tmp/root-20241208-LV1.bak.bz2 + DUMP: Volume 1 completed at: Sun Dec 8 19:52:03 2024 + DUMP: Volume 1 took 0:13:05 + DUMP: Volume 1 transfer rate: 8408 kB/s + DUMP: Volume 1 6620910kB uncompressed, 6600592kB compressed, 1.004:1 + DUMP: 6620910 blocks (6465.73MB) on 1 volume(s) + DUMP: finished in 785 seconds, throughput 8434 kBytes/sec + DUMP: Date of this level 1 dump: Sun Dec 8 19:38:51 2024 + DUMP: Date this dump completed: Sun Dec 8 19:52:03 2024 + DUMP: Average transfer rate: 8408 kB/s + DUMP: Wrote 6620910kB uncompressed, 6600592kB compressed, 1.004:1 + DUMP: DUMP IS DONE + + Shell > cat /etc/dumpdates + /dev/nvme0n1p2 0 Sun Dec 8 19:04:39 2024 +0800 + /dev/nvme0n1p2 1 Sun Dec 8 19:38:51 2024 +0800 + + Shell > dump -W + Last dump(s) done (Dump '>' file systems): + /dev/nvme0n1p2 ( /) Last dump: Level 1, Date Sun Dec 8 19:38:51 2024 + ``` 4. Per le directory non partizionate, è possibile utilizzare solo l'opzione Backup completo (`-0`), non l'opzione `-u`: - ```bash - Shell > dump -0uj -f /tmp/etc-full-20241208.bak.bz2 /etc/ - DUMP: You can't update the dumpdates file when dumping a subdirectory - DUMP: The ENTIRE dump is aborted. - - Shell > dump -0j -f /tmp/etc-full-20241208.bak.bz2 /etc/ - DUMP: Date of this level 0 dump: Sun Dec 8 20:00:38 2024 - DUMP: Dumping /dev/nvme0n1p2 (/ (dir etc)) to /tmp/etc-full-20241208.bak.bz2 - DUMP: Label: none - DUMP: Writing 10 Kilobyte records - DUMP: Compressing output at transformation level 2 (bzlib) - DUMP: mapping (Pass I) [regular files] - DUMP: mapping (Pass II) [directories] - DUMP: estimated 28204 blocks. - DUMP: Volume 1 started with block 1 at: Sun Dec 8 20:00:38 2024 - DUMP: dumping (Pass III) [directories] - DUMP: dumping (Pass IV) [regular files] - DUMP: Closing /tmp/etc-full-20241208.bak.bz2 - DUMP: Volume 1 completed at: Sun Dec 8 20:00:40 2024 - DUMP: Volume 1 took 0:00:02 - DUMP: Volume 1 transfer rate: 3751 kB/s - DUMP: Volume 1 29090kB uncompressed, 7503kB compressed, 3.878:1 - DUMP: 29090 blocks (28.41MB) on 1 volume(s) - DUMP: finished in 2 seconds, throughput 14545 kBytes/sec - DUMP: Date of this level 0 dump: Sun Dec 8 20:00:38 2024 - DUMP: Date this dump completed: Sun Dec 8 20:00:40 2024 - DUMP: Average transfer rate: 3751 kB/s - DUMP: Wrote 29090kB uncompressed, 7503kB compressed, 3.878:1 - DUMP: DUMP IS DONE - ``` - - L'esecuzione di un backup incrementale della directory /etc/ genera un errore: - - ```bash - Shell > dump -1j -f /tmp/etc-incr-20241208.bak.bz2 /etc/ - DUMP: Only level 0 dumps are allowed on a subdirectory - DUMP: The ENTIRE dump is aborted. - ``` + ```bash + Shell > dump -0uj -f /tmp/etc-full-20241208.bak.bz2 /etc/ + DUMP: You can't update the dumpdates file when dumping a subdirectory + DUMP: The ENTIRE dump is aborted. + + Shell > dump -0j -f /tmp/etc-full-20241208.bak.bz2 /etc/ + DUMP: Date of this level 0 dump: Sun Dec 8 20:00:38 2024 + DUMP: Dumping /dev/nvme0n1p2 (/ (dir etc)) to /tmp/etc-full-20241208.bak.bz2 + DUMP: Label: none + DUMP: Writing 10 Kilobyte records + DUMP: Compressing output at transformation level 2 (bzlib) + DUMP: mapping (Pass I) [regular files] + DUMP: mapping (Pass II) [directories] + DUMP: estimated 28204 blocks. + DUMP: Volume 1 started with block 1 at: Sun Dec 8 20:00:38 2024 + DUMP: dumping (Pass III) [directories] + DUMP: dumping (Pass IV) [regular files] + DUMP: Closing /tmp/etc-full-20241208.bak.bz2 + DUMP: Volume 1 completed at: Sun Dec 8 20:00:40 2024 + DUMP: Volume 1 took 0:00:02 + DUMP: Volume 1 transfer rate: 3751 kB/s + DUMP: Volume 1 29090kB uncompressed, 7503kB compressed, 3.878:1 + DUMP: 29090 blocks (28.41MB) on 1 volume(s) + DUMP: finished in 2 seconds, throughput 14545 kBytes/sec + DUMP: Date of this level 0 dump: Sun Dec 8 20:00:38 2024 + DUMP: Date this dump completed: Sun Dec 8 20:00:40 2024 + DUMP: Average transfer rate: 3751 kB/s + DUMP: Wrote 29090kB uncompressed, 7503kB compressed, 3.878:1 + DUMP: DUMP IS DONE + ``` + + L'esecuzione di un backup incrementale della directory /etc/ genera un errore: + + ```bash + Shell > dump -1j -f /tmp/etc-incr-20241208.bak.bz2 /etc/ + DUMP: Only level 0 dumps are allowed on a subdirectory + DUMP: The ENTIRE dump is aborted. + ``` ### Comando `restore` @@ -203,28 +203,28 @@ La modalità (flag) può essere una delle seguenti: 1. Ripristinare i dati da /tmp/etc-full-20241208.bak.bz2 : - ```bash - Shell > mkdir /tmp/data/ + ```bash + Shell > mkdir /tmp/data/ - Shell > restore -t -f /tmp/etc-full-20241208.bak.bz2 + Shell > restore -t -f /tmp/etc-full-20241208.bak.bz2 - Shell > cd /tmp/data/ ; restore -r -f /tmp/etc-full-20241208.bak.bz2 + Shell > cd /tmp/data/ ; restore -r -f /tmp/etc-full-20241208.bak.bz2 - Shell > ls -l /tmp/data/ - total 4992 - drwxr-xr-x. 90 root root 4096 Dec 8 17:13 etc - -rw------- 1 root root 5107632 Dec 8 20:39 restoresymtable - ``` + Shell > ls -l /tmp/data/ + total 4992 + drwxr-xr-x. 90 root root 4096 Dec 8 17:13 etc + -rw------- 1 root root 5107632 Dec 8 20:39 restoresymtable + ``` - Come si può vedere, dopo un ripristino riuscito viene visualizzato un file chiamato `restoresymtable`. Questo file è importante. Serve per le operazioni di ripristino del sistema di backup incrementale. + Come si può vedere, dopo un ripristino riuscito viene visualizzato un file chiamato `restoresymtable`. Questo file è importante. Serve per le operazioni di ripristino del sistema di backup incrementale. 2. Elaborare i file di backup in modalità interattiva: - ```bash - Shell > restore -i -f /tmp/etc-full-20241208.bak.bz2 - Dump tape is compressed. + ```bash + Shell > restore -i -f /tmp/etc-full-20241208.bak.bz2 + Dump tape is compressed. - restore > ? - ``` + restore > ? + ``` - È possibile digitare ++question++ per visualizzare i comandi interattivi disponibili in questa modalità. + È possibile digitare ++question++ per visualizzare i comandi interattivi disponibili in questa modalità. From 403ee52a3c555ee8de868ebc6f255e69b53e7fb6 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:27 -0400 Subject: [PATCH 150/167] New translations index.md (Italian) --- docs/rocky_insights/blogs/index.it.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/rocky_insights/blogs/index.it.md b/docs/rocky_insights/blogs/index.it.md index 1569c6304f..c90b5780f1 100644 --- a/docs/rocky_insights/blogs/index.it.md +++ b/docs/rocky_insights/blogs/index.it.md @@ -20,9 +20,9 @@ Se non si ha le credenziali GitHub e si vuole comunque scrivere qualcosa per que Dovete assicurarvi che il vostro documento soddisfi i requisiti di questa sezione. Per esempio: -- E' adatta qui? Sono informazioni che vale la pena condividere? È un documento in stile blog? -- Approfondisce un tema importante per i documentaristi? -- La comunicazione migliorerà la qualità complessiva di tutta la documentazione di Rocky Linux? + - E' adatta qui? Sono informazioni che vale la pena condividere? È un documento in stile blog? + - Approfondisce un tema importante per i documentaristi? + - La comunicazione migliorerà la qualità complessiva di tutta la documentazione di Rocky Linux? ## Che tipo di informazione? From feedb355a8f060b58a50bcb5368e052682e7bc86 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:39 -0400 Subject: [PATCH 151/167] New translations lab0-readme.md (Italian) --- .../kubernetes-the-hard-way/lab0-README.it.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/labs/kubernetes-the-hard-way/lab0-README.it.md b/docs/labs/kubernetes-the-hard-way/lab0-README.it.md index 65d4837bc3..fbb29cc44d 100644 --- a/docs/labs/kubernetes-the-hard-way/lab0-README.it.md +++ b/docs/labs/kubernetes-the-hard-way/lab0-README.it.md @@ -32,25 +32,25 @@ Kubernetes The Hard Way vi guiderà nel processo di avvio di un cluster Kubernet Versioni dei componenti: -- [kubernetes](https://github.com/kubernetes/kubernetes) v1.32.x -- [containerd](https://github.com/containerd/containerd) v2.0.x -- [cni](https://github.com/containernetworking/cni) v1.6.x -- [etcd](https://github.com/etcd-io/etcd) v3.4.x + - [kubernetes](https://github.com/kubernetes/kubernetes) v1.32.x + - [containerd](https://github.com/containerd/containerd) v2.0.x + - [cni](https://github.com/containernetworking/cni) v1.6.x + - [etcd](https://github.com/etcd-io/etcd) v3.4.x ## Labs Questo tutorial richiede quattro (4) macchine virtuali o fisiche basate su x86_64 collegate alla stessa rete. Sebbene il tutorial utilizzi macchine basate su x86_64, è possibile applicare le nozioni apprese ad altre piattaforme. -- [Prerequisiti](lab1-prerequisites.md) -- [Configurazione della Jumpbox](lab2-jumpbox.md) -- [Provisioning delle risorse di calcolo](lab3-compute-resources.md) -- [Provisioning della CA e generazione dei certificati TLS](lab4-certificate-authority.md) -- [Generazione dei file di configurazione Kubernetes per l'autenticazione](lab5-kubernetes-configuration-files.md) -- [Generazione della configurazione e della chiave di crittografia dei dati](lab6-data-encryption-keys.md) -- [Avvio del cluster etcd](lab7-bootstrapping-etcd.md) -- [Avvio del Control Plane di Kubernetes](lab8-bootstrapping-kubernetes-controllers.md) -- [Avvio dei nodi Worker di Kubernetes](lab9-bootstrapping-kubernetes-workers.md) -- [Configurazione di kubectl per l'accesso remoto](lab10-configuring-kubectl.md) -- [Provisioning delle rotte di rete dei pod](lab11-pod-network-routes.md) -- [Smoke Test](lab12-smoke-test.md) -- [Cleaning Up](lab13-cleanup.md) + - [Prerequisiti](lab1-prerequisites.md) + - [Configurazione della Jumpbox](lab2-jumpbox.md) + - [Provisioning delle risorse di calcolo](lab3-compute-resources.md) + - [Provisioning della CA e generazione dei certificati TLS](lab4-certificate-authority.md) + - [Generazione dei file di configurazione Kubernetes per l'autenticazione](lab5-kubernetes-configuration-files.md) + - [Generazione della configurazione e della chiave di crittografia dei dati](lab6-data-encryption-keys.md) + - [Avvio del cluster etcd](lab7-bootstrapping-etcd.md) + - [Avvio del Control Plane di Kubernetes](lab8-bootstrapping-kubernetes-controllers.md) + - [Avvio dei nodi Worker di Kubernetes](lab9-bootstrapping-kubernetes-workers.md) + - [Configurazione di kubectl per l'accesso remoto](lab10-configuring-kubectl.md) + - [Provisioning delle rotte di rete dei pod](lab11-pod-network-routes.md) + - [Smoke Test](lab12-smoke-test.md) + - [Cleaning Up](lab13-cleanup.md) From ef032ee99bf6e2d3dde07e16d053feac4206ff22 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:40 -0400 Subject: [PATCH 152/167] New translations pulp_fetch_upload.md (Italian) --- docs/guides/repositories/pulp_fetch_upload.it.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/repositories/pulp_fetch_upload.it.md b/docs/guides/repositories/pulp_fetch_upload.it.md index 0e409ee26e..e81c6d9748 100644 --- a/docs/guides/repositories/pulp_fetch_upload.it.md +++ b/docs/guides/repositories/pulp_fetch_upload.it.md @@ -17,8 +17,8 @@ Gli sviluppatori che utilizzano Rocky Linux hanno spesso bisogno di diversi repo ## Requisiti -- Un sistema Rocky Linux -- In grado di eseguire container + - Un sistema Rocky Linux + - In grado di eseguire container ## Configurazione - Singolo Container From d59c38b21d63ed413123e916ba27c27c34465a3a Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:43 -0400 Subject: [PATCH 153/167] New translations 9_6.md (Italian) --- docs/release_notes/9_6.it.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/release_notes/9_6.it.md b/docs/release_notes/9_6.it.md index a47c0bc23b..6bd64431b0 100644 --- a/docs/release_notes/9_6.it.md +++ b/docs/release_notes/9_6.it.md @@ -16,7 +16,9 @@ L'elenco completo della maggior parte dei cambiamenti è disponibile nelle [note !!! Note + ``` Rocky Linux non offre un percorso di aggiornamento da qualsiasi versione di Rocky Linux 8. Si consiglia di eseguire una nuova installazione del sistema operativo per passare a Rocky Linux 9.6. + ``` ## Immagini From cf803f99b8d656c4f775bab1523ed8ebccb59cdf Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:45 -0400 Subject: [PATCH 154/167] New translations 10_0.md (Italian) --- docs/release_notes/10_0.it.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/release_notes/10_0.it.md b/docs/release_notes/10_0.it.md index fc92086bdc..e965543f2d 100644 --- a/docs/release_notes/10_0.it.md +++ b/docs/release_notes/10_0.it.md @@ -58,7 +58,9 @@ L'implementazione di AMD del livello di microarchitettura x86-64-v3, che serve c !!! Note "Differenze delle immagini di Raspberry Pi" + ``` La differenza principale tra le immagini Rocky Linux Pi per la versione 10 è che la 10 supporta il Pi 4 e il Pi 5, mentre la 9 supporta il Pi 3, il Pi 4, il Pi 5 e il Pi Zero 2W. + ``` ### Creazione di pacchetti di installazione e immagini From dfe79fc2d17b98aeb197e6f5ab86948aa0aefcf3 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:46 -0400 Subject: [PATCH 155/167] New translations 9_6_installation.md (Italian) --- docs/guides/9_6_installation.it.md | 90 +++++++++++++++++------------- 1 file changed, 52 insertions(+), 38 deletions(-) diff --git a/docs/guides/9_6_installation.it.md b/docs/guides/9_6_installation.it.md index 971b8d8422..e902237943 100644 --- a/docs/guides/9_6_installation.it.md +++ b/docs/guides/9_6_installation.it.md @@ -31,7 +31,9 @@ Per esempio, `Rocky-9.6-x86_64-minimal.iso` !!! Note + ``` Il sito web del Rocky Project elenca diversi mirror situati in tutto il mondo. Selezionate il mirror geograficamente più vicino a voi. L'elenco dei mirror ufficiali è disponibile [qui] (https://mirrors.rockylinux.org/mirrormanager/mirrors). + ``` ## Verifica del file ISO del programma di installazione @@ -41,21 +43,21 @@ Se avete scaricato le ISO di Rocky Linux su una distribuzione Linux esistente, p 2. Mentre ci si trova ancora nella cartella che contiene l'ISO di Rocky Linux scaricata, scaricare il file di checksum dell'ISO, digitare: - ```bash - wget -O CHECKSUM https://download.rockylinux.org/pub/rocky/9/isos/x86_64/CHECKSUM - ``` + ```bash + wget -O CHECKSUM https://download.rockylinux.org/pub/rocky/9/isos/x86_64/CHECKSUM + ``` 3. Utilizzare l'utilità `sha256sum` per verificare l'integrità del file ISO contro la corruzione o la manomissione. - ```bash - sha256sum -c CHECKSUM --ignore-missing - ``` + ```bash + sha256sum -c CHECKSUM --ignore-missing + ``` - Controllerà l'integrità del file ISO scaricato in precedenza, a condizione che si trovi nella stessa directory. Si dovrebbe vedere questo risultato: + Controllerà l'integrità del file ISO scaricato in precedenza, a condizione che si trovi nella stessa directory. Si dovrebbe vedere questo risultato: - ```text - Rocky-9.6-x86_64-minimal.iso: OK - ``` + ```text + Rocky-9.6-x86_64-minimal.iso: OK + ``` ## Installazione @@ -69,16 +71,16 @@ Se il computer è impostato per l'avvio dal supporto che contiene il file ISO, p 2. Dopo l'avvio del computer, viene visualizzata la schermata iniziale di benvenuto di Rocky Linux 9.6. - ![Rocky Linux installation splash screen](images/installation_9_6_F01.png) + ![Rocky Linux installation splash screen](images/installation_9_6_F01.png) 3. Se non si preme alcun tasto, il programma di installazione avvia un conto alla rovescia, al termine del quale il processo di installazione esegue automaticamente l'opzione predefinita, evidenziata: - `Test this media & install Rocky Linux 9.6` + `Test this media & install Rocky Linux 9.6` - È anche possibile premere ++enter++ in qualsiasi momento per avviare immediatamente il processo. + È anche possibile premere ++enter++ in qualsiasi momento per avviare immediatamente il processo. 4. Viene eseguita una rapida fase di verifica dei supporti.\ - Questa fase di verifica del supporto può evitare di avviare l'installazione per poi scoprire a metà strada che il programma di installazione deve essere interrotto a causa di un supporto di installazione difettoso. + Questa fase di verifica del supporto può evitare di avviare l'installazione per poi scoprire a metà strada che il programma di installazione deve essere interrotto a causa di un supporto di installazione difettoso. 5. Una volta completato il controllo del supporto e verificata la sua utilizzabilità, il programma di installazione passa automaticamente alla schermata successiva. @@ -90,10 +92,10 @@ La schermata `Installation Summary` è un'area completa in cui si prendono decis La schermata è suddivisa grossomodo nelle seguenti sezioni: -- _LOCALIZATION_ -- _SOFTWARE_ -- _SYSTEM_ -- _USER SETTINGS_ + - _LOCALIZATION_ + - _SOFTWARE_ + - _SYSTEM_ + - _USER SETTINGS_ Si approfondiranno ciascuna di queste sezioni, apportando le modifiche necessarie. @@ -133,14 +135,16 @@ Poiché l'installazione utilizza un'immagine ISO di Rocky Linux 9.6, si noterà !!! Tip + ``` L'area Source dell'installazione consente di eseguire un'installazione network-based (ad esempio, se si utilizza la ISO di avvio di Rocky Linux - Rocky-9.6-x86_64-boot.iso). Per un'installazione network-based, è necessario innanzitutto assicurarsi che una scheda di rete sul sistema di destinazione sia configurata correttamente e possa accedere a Internet. Per eseguire un'installazione network-based, fare clic su +++"Installation Source"++ e selezionare il pulsante di opzione ++"On the network"++. Una volta selezionato, scegliere il protocollo corretto e digitare l'URI dell'origine dell'installazione. Fare clic su ++"Done"++. + ``` #### Sezione Software Facendo clic sull'opzione ++"Software Selection"++ nella schermata principale _Installation Summary_ si accede alla sezione dell'installazione in cui è possibile selezionare gli esatti pacchetti software installati sul sistema. Esistono due aree di selezione del software: -- **Ambiente di base**: Installazione minima e sistema operativo personalizzato -- **Software aggiuntivo per l'ambiente selezionato**: La selezione di un ambiente di base sul lato sinistro presenta una serie di software aggiuntivi da installare per l'ambiente in questione sul lato destro. + - **Ambiente di base**: Installazione minima e sistema operativo personalizzato + - **Software aggiuntivo per l'ambiente selezionato**: La selezione di un ambiente di base sul lato sinistro presenta una serie di software aggiuntivi da installare per l'ambiente in questione sul lato destro. Selezionare l'opzione _Minimal Install_ (funzionalità di base). @@ -170,25 +174,31 @@ Il seguente importante compito della procedura di installazione, nell'area Siste !!! Note + ``` Dopo aver fatto clic sull'opzione ++"Network & Hostname"++ , tutti i dispositivi di interfaccia di rete correttamente rilevati (come schede di rete Ethernet, wireless, ecc.) saranno elencati nel riquadro sinistro della schermata di configurazione della rete. A seconda della configurazione hardware specifica, i dispositivi Ethernet in Linux hanno nomi simili a `eth0`, `eth1`, `ens3`, `ens4`, `em1`, `em2`, `p1p1`, `enp0s3` e così via. È possibile configurare ogni interfaccia utilizzando DHCP o impostando manualmente l'indirizzo IP. Se si sceglie di configurare manualmente, assicurarsi di avere pronte tutte le informazioni necessarie, come l'indirizzo IP, la netmask e altri dettagli rilevanti. + ``` Facendo clic sul pulsante ++"Network & Hostname"++ nella schermata principale _Installation Summary_ si apre la schermata di configurazione corrispondente. Tra le altre cose, è possibile configurare l'hostname del sistema. !!! Note + ``` È possibile modificare facilmente l'hostname del sistema in un secondo momento, dopo l'installazione del sistema operativo. + ``` La seguente importante operazione di configurazione riguarda le interfacce di rete del sistema. 1. Verificare che nel riquadro di sinistra sia elencata una scheda Ethernet (o qualsiasi altra scheda di rete) 2. Fare clic su uno qualsiasi dei dispositivi di rete rilevati nel riquadro di sinistra per selezionarlo.\ - Le proprietà configurabili dell'adattatore di rete selezionato appaiono nel riquadro destro della schermata. + Le proprietà configurabili dell'adattatore di rete selezionato appaiono nel riquadro destro della schermata. !!! Note + ``` Nel nostro sistema campione, abbiamo due dispositivi Ethernet (`ens3` e `ens4`), tutti in stato di connessione. Il tipo, il nome, la quantità e lo stato dei dispositivi di rete sul vostro sistema potrebbero essere diversi da quelli del nostro sistema demo. + ``` Verificare che l'interruttore del dispositivo che si desidera configurare sia in posizione `ON` (blu) nel riquadro di destra. In questa sezione verranno accettate tutte le impostazioni predefinite. @@ -197,7 +207,9 @@ Fare clic su ++"done "++ per tornare alla schermata principale _Installation Sum !!! Warning "Attenzione" + ``` Prestare attenzione all'indirizzo IP del server in questa sezione del programma di installazione. Supponiamo che non si disponga di un accesso fisico o facile alla console del sistema. In tal caso, queste informazioni saranno utili in seguito, quando sarà necessario collegarsi al server per continuare a lavorarci dopo il completamento dell'installazione del sistema operativo (OS). + ``` ### Sezione User Settings @@ -207,11 +219,11 @@ Utilizzare questa sezione per creare una password per l'account utente `root` e 1. Fare clic sul campo _Root Password_ in _User Settings_ per avviare la schermata dell'attività _Root Password_. - !!! Warning "Attenzione" + !!! Warning "Attenzione" - ``` - Il superutente root è l'account più privilegiato del sistema. Se si sceglie di utilizzarlo o abilitarlo, è necessario proteggere questo account con una password forte. - ``` + ``` + Il superutente root è l'account più privilegiato del sistema. Se si sceglie di utilizzarlo o abilitarlo, è necessario proteggere questo account con una password forte. + ``` 2. Nella casella di testo _Root Password_, impostare una password forte per l'utente root. @@ -224,30 +236,30 @@ Utilizzare questa sezione per creare una password per l'account utente `root` e Per creare l'utente: 1. Fare clic sul campo _User Creation_ in _User Settings_ per avviare la schermata dell'attività _Create User_.\ - Quest'area operativa consente di creare un account utente privilegiato (amministrativo) o non privilegiato (non amministrativo). + Quest'area operativa consente di creare un account utente privilegiato (amministrativo) o non privilegiato (non amministrativo). - !!! Info + !!! Info - ``` - La creazione e l'uso di un account non privilegiato per le attività quotidiane di un sistema è una pratica ottimale nell'amministrazione del sistema. - ``` + ``` + La creazione e l'uso di un account non privilegiato per le attività quotidiane di un sistema è una pratica ottimale nell'amministrazione del sistema. + ``` - Sarà creato un utente normale che può invocare i poteri di superutente (amministratore) quando necessario. + Sarà creato un utente normale che può invocare i poteri di superutente (amministratore) quando necessario. 2. Completate i campi della schermata _Create User_ con le seguenti informazioni: - **Full name**: - `rockstar` + `rockstar` - **Username**: - `rockstar` + `rockstar` - **Make this user administrator**: - Selezionato + Selezionato - **Require a password to use this account**: - Selezionato + Selezionato - **Password**: - `04302021` + `04302021` - **Confirm password**: - `04302021` + `04302021` 3. Fare clic su ++"done"++. @@ -264,7 +276,9 @@ Dopo l'avvio dell'installazione, vengono eseguite varie attività in background, !!! Note + ``` Se non si desidera continuare dopo aver fatto clic sul pulsante Inizia l'installazione, si può comunque uscire dall'installazione senza perdere i dati. Per uscire dal programma di installazione, è sufficiente resettare il sistema facendo clic sul pulsante Esci, premendo Ctrl-Alt-Canc sulla tastiera o premendo l'interruttore di reset o di alimentazione. + ``` ### Completare l'Installazione @@ -285,6 +299,6 @@ Per accedere al sistema: 2. Al prompt della password, digitate `04302021` (la password di Rockstar) e premete ++invio++ (la password non verrà riecheggiata sullo schermo, è normale). 3. Eseguire il comando `whoami` dopo il login.\ - Questo comando mostra il nome dell'utente attualmente collegato. + Questo comando mostra il nome dell'utente attualmente collegato. ![Login Screen](images/installation_9.0_F03.png) From deee188b750236076b799288f8fd19d63d53c69b Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:20:48 -0400 Subject: [PATCH 156/167] New translations aqc_bridge_vlan.md (Italian) --- docs/guides/hardware/aqc_bridge_vlan.it.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/guides/hardware/aqc_bridge_vlan.it.md b/docs/guides/hardware/aqc_bridge_vlan.it.md index 782fcec355..cc1ed94cf9 100644 --- a/docs/guides/hardware/aqc_bridge_vlan.it.md +++ b/docs/guides/hardware/aqc_bridge_vlan.it.md @@ -22,7 +22,9 @@ A seguire i requisiti minimi per seguire questa procedura: È possibile disattivare il filtraggio VLAN con un solo comando: + ``` nmcli con modify enp1s0 ethtool.feature-rx-vlan-filter off + ``` Sostituire `enp1s0` con il nome della NIC basata su AQC. From 87c8de014e0560f478d55279338700974ef53cc8 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:21:38 -0400 Subject: [PATCH 157/167] New translations 16-about-sytemd.md (Ukrainian) --- docs/books/admin_guide/16-about-sytemd.uk.md | 186 +++++++++---------- 1 file changed, 93 insertions(+), 93 deletions(-) diff --git a/docs/books/admin_guide/16-about-sytemd.uk.md b/docs/books/admin_guide/16-about-sytemd.uk.md index f7ba9df1c3..f33c0c4d01 100644 --- a/docs/books/admin_guide/16-about-sytemd.uk.md +++ b/docs/books/admin_guide/16-about-sytemd.uk.md @@ -484,113 +484,113 @@ method=disabled 1. Назва підрозділу - Можна використовувати наступні пари ключ-значення: + Можна використовувати наступні пари ключ-значення: - - `Description=OpenSSH server daemon`. Рядок використовується для опису "одиниці". - - `Documentation=man:sshd(8) man:sshd_config(5)`. Відокремлений пробілами список URI, що посилається на документацію для цього «блока» або його конфігурації. Приймаються лише URI типів "http://", "https://", "file:", "info:", "man:". - - `After=network.target sshd-keygen.target`. Визначає зв'язок послідовності запуску з іншими "одиницями". У цьому прикладі "network.target" і "sshd-keygen.target" починаються першими, а "sshd.service" починається останнім. - - `Before=`. Визначте зв’язок послідовності запуску з іншими «одиницями». - - `Requires=`. Налаштувати залежності від інших «одиниць». Значення можуть бути кількома одиницями, розділеними пробілами. Якщо поточна «одиниця» активована, значення, наведені тут, також активуються. Якщо принаймні одне з перелічених значень "одиниці" не вдається успішно активувати, `systemd` не запускає поточний "блок". - - `Wants=sshd-keygen.target`. Подібно до ключа `Requires`. Різниця в тому, що якщо залежний блок не запускається, це не вплине на нормальну роботу поточного «блока». - - `BindsTo=`. Подібно до ключа `Requires`. Різниця полягає в тому, що якщо будь-який залежний "блок" не запускається, поточний блок зупиняється на додаток до "блоку", який зупиняє залежність. - - `PartOf=`. Подібно до ключа `Requires`. Різниця полягає в тому, що якщо будь-який залежний «блок» не запускається, окрім зупинки та перезапуску залежних блоків, поточний «блок» буде зупинено та перезапущено. - - `Conflicts=`. Його значенням є список одиниць, розділених пробілами. Якщо «одиниця», зазначена у значенні, працює, поточна «одиниця» працювати не може. - - `OnFailure=`. Коли поточна «одиниця» виходить з ладу, активується «одиниця» або «одиниці» (відокремлені пробілами) у значенні. + - `Description=OpenSSH server daemon`. Рядок використовується для опису "одиниці". + - `Documentation=man:sshd(8) man:sshd_config(5)`. Відокремлений пробілами список URI, що посилається на документацію для цього «блока» або його конфігурації. Приймаються лише URI типів "http://", "https://", "file:", "info:", "man:". + - `After=network.target sshd-keygen.target`. Визначає зв'язок послідовності запуску з іншими "одиницями". У цьому прикладі "network.target" і "sshd-keygen.target" починаються першими, а "sshd.service" починається останнім. + - `Before=`. Визначте зв’язок послідовності запуску з іншими «одиницями». + - `Requires=`. Налаштувати залежності від інших «одиниць». Значення можуть бути кількома одиницями, розділеними пробілами. Якщо поточна «одиниця» активована, значення, наведені тут, також активуються. Якщо принаймні одне з перелічених значень "одиниці" не вдається успішно активувати, `systemd` не запускає поточний "блок". + - `Wants=sshd-keygen.target`. Подібно до ключа `Requires`. Різниця в тому, що якщо залежний блок не запускається, це не вплине на нормальну роботу поточного «блока». + - `BindsTo=`. Подібно до ключа `Requires`. Різниця полягає в тому, що якщо будь-який залежний "блок" не запускається, поточний блок зупиняється на додаток до "блоку", який зупиняє залежність. + - `PartOf=`. Подібно до ключа `Requires`. Різниця полягає в тому, що якщо будь-який залежний «блок» не запускається, окрім зупинки та перезапуску залежних блоків, поточний «блок» буде зупинено та перезапущено. + - `Conflicts=`. Його значенням є список одиниць, розділених пробілами. Якщо «одиниця», зазначена у значенні, працює, поточна «одиниця» працювати не може. + - `OnFailure=`. Коли поточна «одиниця» виходить з ладу, активується «одиниця» або «одиниці» (відокремлені пробілами) у значенні. - Дивись `man 5 systemd.unit`. + Дивись `man 5 systemd.unit`. 2. Назва служби - Можна використовувати наступні пари ключ-значення: - - - `Type=notify`. Налаштуйте тип цього блоку ".service", який може бути одним із таких: - - `simple` - Сервіс запускається як основний процес. Це значення за умовчанням. - - `forking` - Служба викликає роздвоєні процеси та працює як частина основного демона. - - `exec` - Схожий до `simple`. Менеджер служби запустить цей блок одразу після виконання двійкового файлу основної служби. Інші підрозділи-наступники повинні залишатися заблокованими до цього моменту, перш ніж вони зможуть продовжити роботу. - - `oneshot` - Подібно до `simple`, за винятком того, що процес має завершитися, перш ніж `systemd` запустить наступні служби. - - `dbus` - Подібно до `simple`, за винятком того, що демон отримує назву шини D-Bus. - - `notify` - Подібно до `simple`, за винятком того, що демон надсилає сповіщення за допомогою `sd_notify` або еквівалентного виклику після запуску. - - `idle` - Подібно до «simple», за винятком того, що виконання служби відкладено, доки не буде відправлено всі активні завдання. - - `RemainAfterExit=`. Чи слід вважати поточну службу активною, коли завершуються всі процеси служби. За замовчуванням ні. - - `GuessMainPID=`. Значення має тип boolean і за замовчуванням yes. За відсутності чіткого розташування основного процесу служби, `systemd` має вгадати PID основного процесу (який може бути неправильним). Якщо ви встановите `Type=forking` і не встановите `PIDFile`, ця пара ключ-значення вступить у силу. В іншому випадку ігноруйте пару ключ-значення. - - `PIDFile=`. Вкажіть шлях до файлу (абсолютний шлях) PID служби. Для служб `Type=forking` рекомендується використовувати цю пару ключ-значення. `systemd` зчитує PID основного процесу демона після запуску служби. - - `BusName=`. Назва шини D-Bus, щоб дістатися до цієї служби. Цей параметр є обов’язковим для служб, де використовується `Type=dbus`. - - `ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY`. Команди та аргументи виконуються під час запуску служби. - - `ExecStartPre=`. Інші команди виконуються перед командами в `ExecStart`. - - `ExecStartPost=`. Інші команди виконуються після команд у `ExecStart`. - - `ExecReload=/bin/kill -HUP $MAINPID`. Команди та аргументи запускаються під час перезавантаження служби. - - `ExecStop=`. Команди та аргументи запускаються, коли служба зупиняється. - - `ExecStopPost=`. Додаткові команди для запуску після зупинки служби. - - `RestartSec=42s`. Час у секундах до переходу в режим сну перед перезапуском служби. - - `TimeoutStartSec=`. Час очікування запуску служби в секундах. - - `TimeoutStopSec=`. Час у секундах очікування зупинки служби. - - `TimeoutSec=`. Скорочення для одночасного налаштування `TimeoutStartSec` і `TimeoutStopSec`. - - `RuntimeMaxSec=`. Максимальний час роботи служби в секундах. Передає `infinity` (за замовчуванням), щоб не налаштувати обмеження часу виконання. - - `Restart=on-failure`. Налаштовує, чи потрібно перезапускати службу, коли процес служби завершується, завершується або досягає тайм-ауту: - - `no` - Служба не буде перезапущена. Це значення за умовчанням. - - `on-success` - Перезапускається лише тоді, коли сервісний процес закінчується чисто (код виходу 0). - - `on-failure` - Перезапускається лише тоді, коли процес обслуговування не завершується належним чином (код виходу node-zero). - - `on-abnormal` - Перезапускається, якщо процес завершується сигналом або коли настає тайм-аут. - - `on-abort` - Перезапускається, якщо процес завершується через неперехоплений сигнал, не вказаний як чистий статус виходу. - - `on-watchdog` - Якщо встановлено значення `on-watchdog`, служба перезапуститься лише після закінчення тайм-ауту сторожового таймера. - - `always` - Завжди перезапускається. - - Причини виходу та вплив на них налаштувань `Restart=`: - - ![effect](./images/16-effect.png) - - - `KillMode=process`. Визначає, як процеси цього блоку мають бути припинені. Його значення може бути одним із таких: - - `control-group` - Значення за замовчуванням. Якщо встановлено значення `control-group`, усі решта процесів у групі керування цього блоку припиняються під час зупинки блоку. - - `process` - Знищується лише основний процес. - - `mixed` - Сигнал SIGTERM надсилається головному процесу, тоді як наступний сигнал SIGKILL надсилається всім іншим процесам групи керування блоком. - - `none` - Не вбиває жодних процесів. - - `PrivateTmp=`. Чи використовувати приватний каталог tmp. Виходячи з певної безпеки, рекомендовано встановити значення так. - - `ProtectHome=`. Чи захищати домашній каталог. Його значення може бути одним із таких: - - `yes` - Три каталоги (/root/, /home/, /run/user/) не видимі для пристрою. - - `no` - Три каталоги видимі для пристрою. - - `read-only` - Три каталоги доступні лише для читання. - - `tmpfs` - Тимчасова файлова система буде змонтована в режимі лише для читання в цих трьох каталогах. - - `ProtectSystem=`. Каталог використовується для захисту системи від модифікації службою. Значення може бути: - - `yes` - Вказує, що процес, викликаний модулем, буде змонтовано лише для читання до каталогів /usr/ і /boot/. - - `no` - За замовченням - - `full` - Вказує, що каталоги /usr/, /boot/, /etc/ монтуються лише для читання. - - `strict` - Усі файлові системи монтуються лише для читання (за винятком каталогів віртуальних файлових систем, таких як /dev/, /proc/ і /sys/). - - `EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config`. Читання змінних середовища з текстового файлу. «-» означає, що якщо файл не існує, він не буде прочитаний, а помилки чи попередження не реєструватимуться. - - Дивись `man 5 systemd.service`. + Можна використовувати наступні пари ключ-значення: + + - `Type=notify`. Налаштуйте тип цього блоку ".service", який може бути одним із таких: + - `simple` - Сервіс запускається як основний процес. Це значення за умовчанням. + - `forking` - Служба викликає роздвоєні процеси та працює як частина основного демона. + - `exec` - Схожий до `simple`. Менеджер служби запустить цей блок одразу після виконання двійкового файлу основної служби. Інші підрозділи-наступники повинні залишатися заблокованими до цього моменту, перш ніж вони зможуть продовжити роботу. + - `oneshot` - Подібно до `simple`, за винятком того, що процес має завершитися, перш ніж `systemd` запустить наступні служби. + - `dbus` - Подібно до `simple`, за винятком того, що демон отримує назву шини D-Bus. + - `notify` - Подібно до `simple`, за винятком того, що демон надсилає сповіщення за допомогою `sd_notify` або еквівалентного виклику після запуску. + - `idle` - Подібно до «simple», за винятком того, що виконання служби відкладено, доки не буде відправлено всі активні завдання. + - `RemainAfterExit=`. Чи слід вважати поточну службу активною, коли завершуються всі процеси служби. За замовчуванням ні. + - `GuessMainPID=`. Значення має тип boolean і за замовчуванням yes. За відсутності чіткого розташування основного процесу служби, `systemd` має вгадати PID основного процесу (який може бути неправильним). Якщо ви встановите `Type=forking` і не встановите `PIDFile`, ця пара ключ-значення вступить у силу. В іншому випадку ігноруйте пару ключ-значення. + - `PIDFile=`. Вкажіть шлях до файлу (абсолютний шлях) PID служби. Для служб `Type=forking` рекомендується використовувати цю пару ключ-значення. `systemd` зчитує PID основного процесу демона після запуску служби. + - `BusName=`. Назва шини D-Bus, щоб дістатися до цієї служби. Цей параметр є обов’язковим для служб, де використовується `Type=dbus`. + - `ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY`. Команди та аргументи виконуються під час запуску служби. + - `ExecStartPre=`. Інші команди виконуються перед командами в `ExecStart`. + - `ExecStartPost=`. Інші команди виконуються після команд у `ExecStart`. + - `ExecReload=/bin/kill -HUP $MAINPID`. Команди та аргументи запускаються під час перезавантаження служби. + - `ExecStop=`. Команди та аргументи запускаються, коли служба зупиняється. + - `ExecStopPost=`. Додаткові команди для запуску після зупинки служби. + - `RestartSec=42s`. Час у секундах до переходу в режим сну перед перезапуском служби. + - `TimeoutStartSec=`. Час очікування запуску служби в секундах. + - `TimeoutStopSec=`. Час у секундах очікування зупинки служби. + - `TimeoutSec=`. Скорочення для одночасного налаштування `TimeoutStartSec` і `TimeoutStopSec`. + - `RuntimeMaxSec=`. Максимальний час роботи служби в секундах. Передає `infinity` (за замовчуванням), щоб не налаштувати обмеження часу виконання. + - `Restart=on-failure`. Налаштовує, чи потрібно перезапускати службу, коли процес служби завершується, завершується або досягає тайм-ауту: + - `no` - Служба не буде перезапущена. Це значення за умовчанням. + - `on-success` - Перезапускається лише тоді, коли сервісний процес закінчується чисто (код виходу 0). + - `on-failure` - Перезапускається лише тоді, коли процес обслуговування не завершується належним чином (код виходу node-zero). + - `on-abnormal` - Перезапускається, якщо процес завершується сигналом або коли настає тайм-аут. + - `on-abort` - Перезапускається, якщо процес завершується через неперехоплений сигнал, не вказаний як чистий статус виходу. + - `on-watchdog` - Якщо встановлено значення `on-watchdog`, служба перезапуститься лише після закінчення тайм-ауту сторожового таймера. + - `always` - Завжди перезапускається. + + Причини виходу та вплив на них налаштувань `Restart=`: + + ![effect](./images/16-effect.png) + + - `KillMode=process`. Визначає, як процеси цього блоку мають бути припинені. Його значення може бути одним із таких: + - `control-group` - Значення за замовчуванням. Якщо встановлено значення `control-group`, усі решта процесів у групі керування цього блоку припиняються під час зупинки блоку. + - `process` - Знищується лише основний процес. + - `mixed` - Сигнал SIGTERM надсилається головному процесу, тоді як наступний сигнал SIGKILL надсилається всім іншим процесам групи керування блоком. + - `none` - Не вбиває жодних процесів. + - `PrivateTmp=`. Чи використовувати приватний каталог tmp. Виходячи з певної безпеки, рекомендовано встановити значення так. + - `ProtectHome=`. Чи захищати домашній каталог. Його значення може бути одним із таких: + - `yes` - Три каталоги (/root/, /home/, /run/user/) не видимі для пристрою. + - `no` - Три каталоги видимі для пристрою. + - `read-only` - Три каталоги доступні лише для читання. + - `tmpfs` - Тимчасова файлова система буде змонтована в режимі лише для читання в цих трьох каталогах. + - `ProtectSystem=`. Каталог використовується для захисту системи від модифікації службою. Значення може бути: + - `yes` - Вказує, що процес, викликаний модулем, буде змонтовано лише для читання до каталогів /usr/ і /boot/. + - `no` - За замовченням + - `full` - Вказує, що каталоги /usr/, /boot/, /etc/ монтуються лише для читання. + - `strict` - Усі файлові системи монтуються лише для читання (за винятком каталогів віртуальних файлових систем, таких як /dev/, /proc/ і /sys/). + - `EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config`. Читання змінних середовища з текстового файлу. «-» означає, що якщо файл не існує, він не буде прочитаний, а помилки чи попередження не реєструватимуться. + + Дивись `man 5 systemd.service`. 3. Назва установки - - `Alias=`. Список додаткових імен, розділених пробілами. Увага, будь ласка! Ваша додаткова назва повинна мати той самий тип (суфікс), що й поточна одиниця. + - `Alias=`. Список додаткових імен, розділених пробілами. Увага, будь ласка! Ваша додаткова назва повинна мати той самий тип (суфікс), що й поточна одиниця. - - `RequiredBy=` or `WantedBy=multi-user.target`. Визначте одиницю поточної операції як залежність одиниці від значення. Після завершення визначення ви зможете знайти відповідні файли в каталозі /etc/systemd/systemd/. Наприклад: + - `RequiredBy=` or `WantedBy=multi-user.target`. Визначте одиницю поточної операції як залежність одиниці від значення. Після завершення визначення ви зможете знайти відповідні файли в каталозі /etc/systemd/systemd/. Наприклад: - ```bash - Shell > systemctl is-enabled chronyd.service - enabled + ```bash + Shell > systemctl is-enabled chronyd.service + enabled - Shell > systemctl cat chronyd.service - ... - [Install] - WantedBy=multi-user.target + Shell > systemctl cat chronyd.service + ... + [Install] + WantedBy=multi-user.target - Shell > ls -l /etc/systemd/system/multi-user.target.wants/ - total 0 - lrwxrwxrwx. 1 root root 38 Sep 25 14:03 auditd.service -> /usr/lib/systemd/system/auditd.service - lrwxrwxrwx. 1 root root 39 Sep 25 14:03 chronyd.service -> /usr/lib/systemd/system/chronyd.service ←← - lrwxrwxrwx. 1 root root 37 Sep 25 14:03 crond.service -> /usr/lib/systemd/system/crond.service - lrwxrwxrwx. 1 root root 42 Sep 25 14:03 irqbalance.service -> /usr/lib/systemd/system/irqbalance.service - lrwxrwxrwx. 1 root root 37 Sep 25 14:03 kdump.service -> /usr/lib/systemd/system/kdump.service - lrwxrwxrwx. 1 root root 46 Sep 25 14:03 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service - lrwxrwxrwx. 1 root root 40 Sep 25 14:03 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target - lrwxrwxrwx. 1 root root 36 Sep 25 14:03 sshd.service -> /usr/lib/systemd/system/sshd.service - lrwxrwxrwx. 1 root root 36 Sep 25 14:03 sssd.service -> /usr/lib/systemd/system/sssd.service - lrwxrwxrwx. 1 root root 37 Sep 25 14:03 tuned.service -> /usr/lib/systemd/system/tuned.service - ``` + Shell > ls -l /etc/systemd/system/multi-user.target.wants/ + total 0 + lrwxrwxrwx. 1 root root 38 Sep 25 14:03 auditd.service -> /usr/lib/systemd/system/auditd.service + lrwxrwxrwx. 1 root root 39 Sep 25 14:03 chronyd.service -> /usr/lib/systemd/system/chronyd.service ←← + lrwxrwxrwx. 1 root root 37 Sep 25 14:03 crond.service -> /usr/lib/systemd/system/crond.service + lrwxrwxrwx. 1 root root 42 Sep 25 14:03 irqbalance.service -> /usr/lib/systemd/system/irqbalance.service + lrwxrwxrwx. 1 root root 37 Sep 25 14:03 kdump.service -> /usr/lib/systemd/system/kdump.service + lrwxrwxrwx. 1 root root 46 Sep 25 14:03 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service + lrwxrwxrwx. 1 root root 40 Sep 25 14:03 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target + lrwxrwxrwx. 1 root root 36 Sep 25 14:03 sshd.service -> /usr/lib/systemd/system/sshd.service + lrwxrwxrwx. 1 root root 36 Sep 25 14:03 sssd.service -> /usr/lib/systemd/system/sssd.service + lrwxrwxrwx. 1 root root 37 Sep 25 14:03 tuned.service -> /usr/lib/systemd/system/tuned.service + ``` - - `Also=`. Інші пристрої для встановлення або видалення під час встановлення або видалення цього пристрою. + - `Also=`. Інші пристрої для встановлення або видалення під час встановлення або видалення цього пристрою. - На додаток до сторінок посібника, згаданих вище, ви також можете ввести `man 5 systemd.exec` або `man 5 systemd.kill`, щоб отримати доступ до іншої інформації. + На додаток до сторінок посібника, згаданих вище, ви також можете ввести `man 5 systemd.exec` або `man 5 systemd.kill`, щоб отримати доступ до іншої інформації. ## Команда, пов'язана з іншими компонентами From 787d7b7117533e655a10544a99c2ecfd0ccf00dc Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:21:40 -0400 Subject: [PATCH 158/167] New translations 09-working-with-jinja-template.md (Ukrainian) --- .../09-working-with-jinja-template.uk.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/books/learning_ansible/09-working-with-jinja-template.uk.md b/docs/books/learning_ansible/09-working-with-jinja-template.uk.md index c060de5470..1f68236475 100644 --- a/docs/books/learning_ansible/09-working-with-jinja-template.uk.md +++ b/docs/books/learning_ansible/09-working-with-jinja-template.uk.md @@ -108,20 +108,20 @@ ansible-playbook your_playbook.yml ### Ключові особливості 1. **Візуалізація шаблону:** - - Модуль рендерить шаблони Jinja для створення файлів конфігурації з динамічним вмістом. - - Змінні, визначені в посібнику чи інвентарі, можна вставляти в шаблони, уможливлюючи динамічні конфігурації. + - Модуль рендерить шаблони Jinja для створення файлів конфігурації з динамічним вмістом. + - Змінні, визначені в посібнику чи інвентарі, можна вставляти в шаблони, уможливлюючи динамічні конфігурації. 2. **Використання Jinja2:** - - Модуль `template` використовує механізм створення шаблонів Jinja2, надаючи такі потужні функції, як умови, цикли та фільтри для розширеної роботи з шаблонами. + - Модуль `template` використовує механізм створення шаблонів Jinja2, надаючи такі потужні функції, як умови, цикли та фільтри для розширеної роботи з шаблонами. 3. **Шляхи джерела та призначення:** - - Визначає вихідний файл шаблону Jinja та шлях призначення для створеного файлу конфігурації. + - Визначає вихідний файл шаблону Jinja та шлях призначення для створеного файлу конфігурації. 4. **Передача змінних:** - - Змінні можна передати безпосередньо в завданні playbook або завантажити із зовнішніх файлів, що забезпечує гнучку та динамічну генерацію конфігурації. + - Змінні можна передати безпосередньо в завданні playbook або завантажити із зовнішніх файлів, що забезпечує гнучку та динамічну генерацію конфігурації. 5. **Ідемпотентне виконання:** - - Модуль шаблону підтримує ідемпотентне виконання, забезпечуючи застосування шаблону лише у разі виявлення змін. + - Модуль шаблону підтримує ідемпотентне виконання, забезпечуючи застосування шаблону лише у разі виявлення змін. ### Приклад фрагмента playbook @@ -142,24 +142,24 @@ ansible-playbook your_playbook.yml ### Випадки використання 1. **Управління конфігурацією:** - - Ідеально підходить для керування конфігураціями системи шляхом динамічного створення файлів на основі певних параметрів. + - Ідеально підходить для керування конфігураціями системи шляхом динамічного створення файлів на основі певних параметрів. 2. **Налаштування програми:** - - Корисно для створення конфігураційних файлів програми з різними параметрами. + - Корисно для створення конфігураційних файлів програми з різними параметрами. 3. **Інфраструктура як код:** - - Спрощує практику «Інфраструктура як код», дозволяючи динамічно коригувати конфігурації на основі змінних. + - Спрощує практику «Інфраструктура як код», дозволяючи динамічно коригувати конфігурації на основі змінних. ### Кращі практики 1. **Відокремлення інтересів:** - - Зберігайте логіку конфігурації в шаблонах Jinja, відокремлюючи її від основної структури посібника. + - Зберігайте логіку конфігурації в шаблонах Jinja, відокремлюючи її від основної структури посібника. 2. **Контроль версій:** - - Зберігайте шаблони Jinja в репозиторіях з контрольованими версіями для кращого відстеження та співпраці. + - Зберігайте шаблони Jinja в репозиторіях з контрольованими версіями для кращого відстеження та співпраці. 3. **Перевіряемість:** - - Тестуйте шаблони незалежно, щоб переконатися, що вони дають очікуваний результат конфігурації. + - Тестуйте шаблони незалежно, щоб переконатися, що вони дають очікуваний результат конфігурації. Використовуючи модуль `template`, користувачі Ansible можуть підвищити керованість і гнучкість завдань конфігурації, сприяючи більш спрощеному та ефективному підходу до налаштування системи та програм. From 40b32d4b103d105e024b9e547ee13c28f91a68fe Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:22:22 -0400 Subject: [PATCH 159/167] New translations index.md (Chinese Simplified) --- docs/rocky_insights/blogs/index.zh.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/rocky_insights/blogs/index.zh.md b/docs/rocky_insights/blogs/index.zh.md index 91d14e729a..284bfe54a7 100644 --- a/docs/rocky_insights/blogs/index.zh.md +++ b/docs/rocky_insights/blogs/index.zh.md @@ -20,9 +20,9 @@ contributors: 您应该确保您的文档符合本章节的要求。 例如: -- 它适合这里吗? 它是值得共享的信息吗? 它是博客风格的文档吗? -- 它是否扩展了对文档作者很重要的主题? -- 这次提交会提高所有 Rocky Linux 文档的整体质量吗? + - 它适合这里吗? 它是值得共享的信息吗? 它是博客风格的文档吗? + - 它是否扩展了对文档作者很重要的主题? + - 这次提交会提高所有 Rocky Linux 文档的整体质量吗? ## 什么样的信息? From ba1cf00da0d9e9e194f50d59c25bc2cfa5de735f Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:22:24 -0400 Subject: [PATCH 160/167] New translations 9_6.md (Chinese Simplified) --- docs/release_notes/9_6.zh.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/release_notes/9_6.zh.md b/docs/release_notes/9_6.zh.md index c657cedba0..bb0432acc4 100644 --- a/docs/release_notes/9_6.zh.md +++ b/docs/release_notes/9_6.zh.md @@ -16,7 +16,9 @@ tags: !!! Note "说明" + ``` Rocky Linux 不提供任何 Rocky Linux 8 版本的升级途径。我们建议进行全新的操作系统安装以迁移到 Rocky Linux 9.6。 + ``` ## 镜像 From 04d163aadbc0fe2c6f38384a948881388ad3fb42 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 01:22:26 -0400 Subject: [PATCH 161/167] New translations 10_0.md (Chinese Simplified) --- docs/release_notes/10_0.zh.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/release_notes/10_0.zh.md b/docs/release_notes/10_0.zh.md index b9f99489d3..2320baa184 100644 --- a/docs/release_notes/10_0.zh.md +++ b/docs/release_notes/10_0.zh.md @@ -58,7 +58,9 @@ x86-64-v3 微架构级别是 Rocky Linux 10 在 x86_64 平台的最低硬件要 !!! Note "树莓派镜像差异" + ``` 10 版本 的 Rocky Linux Pi 镜像与之前版本的主要区别在于——10 版本支持 Pi 4 和 Pi 5,而 9 版本支持 Pi 3、Pi 4、Pi 5 和 Pi Zero 2W。 + ``` ### 安装程序和镜像创建 From 837610e0f2b19f557ab9552b6ecb7e3e8a552380 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 07:12:12 -0400 Subject: [PATCH 162/167] New translations good_docs.md (Italian) --- docs/rocky_insights/blogs/good_docs.it.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/rocky_insights/blogs/good_docs.it.md b/docs/rocky_insights/blogs/good_docs.it.md index e056bf9d1f..2a4d3db59d 100644 --- a/docs/rocky_insights/blogs/good_docs.it.md +++ b/docs/rocky_insights/blogs/good_docs.it.md @@ -20,7 +20,7 @@ In linea di principio, non si ha idea di chi siano i fruitori della documentazio Idiomi, gergo, contrazioni e acronimi possono confondere i lettori che non li conoscono, in particolare coloro che non sono madrelingua, i nuovi dipendenti o tutti coloro che estranei al vostro settore specifico. -I **diomi** sono spesso culturalmente specifici e possono essere difficili da capire per i lettori internazionali.\ +Gli **idiomi** sono spesso specifici di una determinata cultura e possono essere difficili da comprendere per i lettori internazionali.\ Il **gergo** comprende termini specialistici che solo gli esperti di un settore possono riconoscere.\ Le **contrazioni** sostituiscono le parole della lingua inglese con scorciatoie, che però non sempre esistono in tutte le lingue, rendendo difficile la traduzione.\ Gli **acronimi** possono essere ambigui, soprattutto se non vengono definiti al momento del loro utilizzo. From cf747e381e8568b022ec4f5c80aa5f69e74ecaae Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 07:12:13 -0400 Subject: [PATCH 163/167] New translations add_mirror_manager.md (Italian) --- docs/guides/mirror_management/add_mirror_manager.it.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/mirror_management/add_mirror_manager.it.md b/docs/guides/mirror_management/add_mirror_manager.it.md index 2125b8449b..55c0e250cd 100644 --- a/docs/guides/mirror_management/add_mirror_manager.it.md +++ b/docs/guides/mirror_management/add_mirror_manager.it.md @@ -15,7 +15,7 @@ Si ricorda che non è possibile accettare mirror pubblici in paesi soggetti alle Al momento in cui scriviamo (fine 2022), lo spazio di archiviazione richiesto per il mirroring di tutte le versioni attuali e passate di Rocky Linux è di circa 2 TB. -Il nostro mirror master è `rsync://msync.rockylinux.org/rocky/mirror/pub/rocky/`. Per la prima sincronizzazione utilizzate un mirror vicino a voi. Potete trovare tutti i mirror ufficiali [qui](https://mirrors.rockylinux.org). +Il nostro mirror principale è `rsync://msync.rockylinux.org/rocky-linux`. Per la prima sincronizzazione utilizzate un mirror vicino a voi. Potete trovare tutti i mirror ufficiali [qui](https://mirrors.rockylinux.org). Si noti che in futuro potremmo limitare l'accesso al master mirror ufficiale ai mirror pubblici ufficiali. Per questo motivo, se gestite un mirror privato, prendete in considerazione l'opzione `rsyncing` da un mirror pubblico vicino a voi. Inoltre i mirror locali potrebbero essere più veloci da sincronizzare. From b77c330cc1a26af7d7d13e43f6c6331afb84a39b Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 07:12:15 -0400 Subject: [PATCH 164/167] New translations rl9_network_manager.md (Italian) --- docs/gemstones/network/RL9_network_manager.it.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/gemstones/network/RL9_network_manager.it.md b/docs/gemstones/network/RL9_network_manager.it.md index 48951fbe3f..0cf51a76a7 100644 --- a/docs/gemstones/network/RL9_network_manager.it.md +++ b/docs/gemstones/network/RL9_network_manager.it.md @@ -49,7 +49,7 @@ Shell > cd /etc/NetworkManager/system-connections/ && ls ens160.nmconnection ``` -`Ens160` si riferisce al nome della scheda di rete del sistema. Vi chiederete perché il nome sembra così strano? Questo è dovuto al gestore di dispositivi `udev`. Supporta diversi schemi di denominazione. Per impostazione predefinita, i nomi fissi vengono assegnati in base al firmware, alla topologia e alle informazioni sulla posizione. I suoi vantaggi includono: +`ens160` si riferisce al nome della scheda di rete del sistema. Vi chiederete perché il nome sembra così strano? Questo è dovuto al gestore di dispositivi `udev`. Supporta diversi schemi di denominazione. Per impostazione predefinita, i nomi fissi vengono assegnati in base al firmware, alla topologia e alle informazioni sulla posizione. I suoi vantaggi includono: - I nomi dei dispositivi sono completamente prevedibili. - I nomi dei dispositivi rimangono fissi anche se si aggiunge o si rimuove hardware, perché non avviene una nuova enumerazione. From 97d75c4be8048d7e2b75f1d0488a4476e43d6e78 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 07:59:24 -0400 Subject: [PATCH 165/167] New translations regenerate_initramfs.md (French) --- docs/guides/kernel/regenerate_initramfs.fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/kernel/regenerate_initramfs.fr.md b/docs/guides/kernel/regenerate_initramfs.fr.md index 064d757359..dd4a068cb8 100644 --- a/docs/guides/kernel/regenerate_initramfs.fr.md +++ b/docs/guides/kernel/regenerate_initramfs.fr.md @@ -15,7 +15,7 @@ Parfois, un administrateur Linux peut vouloir régénérer les `initramfs`, par ## Prérequis -Les conditions suivantes sont indispensables pour utiliser cette procédure : +Les conditions suivantes sont indispensables pour utiliser cette procédure : - Un système Rocky Linux ou une machine virtuelle (mais pas un conteneur) - Modifications apportées à la configuration du noyau, telles que mise sur liste noire ou l'ajout d'un module From 733984a138c9645cb448330bb741b4b26e2e288e Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 09:21:43 -0400 Subject: [PATCH 166/167] New translations regenerate_initramfs.md (French) --- docs/guides/kernel/regenerate_initramfs.fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/kernel/regenerate_initramfs.fr.md b/docs/guides/kernel/regenerate_initramfs.fr.md index dd4a068cb8..4ba344c051 100644 --- a/docs/guides/kernel/regenerate_initramfs.fr.md +++ b/docs/guides/kernel/regenerate_initramfs.fr.md @@ -11,7 +11,7 @@ tags: Un `initramfs` est le système de fichiers `root` à l'intérieur d'un noyau Linux pour aider à démarrer le système. Il contient les modules de base nécessaires au démarrage de Linux. -Parfois, un administrateur Linux peut vouloir régénérer les `initramfs`, par exemple s'il souhaite mettre un pilote sur liste noire ou inclure un module hors bande. L'auteur a fait tout cela pour [activer Intel vPro sur un Minisforum MS-01](https://spaceterran.com/posts/step-by-step-guide-enabling-intel-vpro-on-your-minisforum-ms-01-bios/). +Parfois, un administrateur Linux peut vouloir régénérer `initramfs`, par exemple s'il souhaite mettre un pilote sur liste noire ou inclure un module hors bande —out-of-band—. L'auteur a utilisé cette procédure pour [activer Intel vPro sur un Minisforum MS-01](https://spaceterran.com/posts/step-by-step-guide-enabling-intel-vpro-on-your-minisforum-ms-01-bios/). ## Prérequis @@ -42,4 +42,4 @@ reboot ## Conclusion -Le noyau Linux est extrêmement puissant et modulaire. Il est logique que certains utilisateurs souhaitent autoriser ou interdire certains modules, et la régénération de `initramfs` permet que cela se produise. +Le noyau Linux est extrêmement puissant et modulaire. Il est logique que certains utilisateurs souhaitent autoriser ou interdire certains modules, et la reconstruction de `initramfs` leur permet de le faire. From 9358befa309850059faf46ec3e2c00e503b25307 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 26 Aug 2025 09:23:24 -0400 Subject: [PATCH 167/167] New translations regenerate_initramfs.md (German) --- docs/guides/kernel/regenerate_initramfs.de.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/kernel/regenerate_initramfs.de.md b/docs/guides/kernel/regenerate_initramfs.de.md index 50b2079335..abe73128d5 100644 --- a/docs/guides/kernel/regenerate_initramfs.de.md +++ b/docs/guides/kernel/regenerate_initramfs.de.md @@ -34,7 +34,7 @@ Führen Sie als Nächstes `dracut` aus, um `initramfs` neu zu generieren: dracut -f /boot/initramfs-$(uname -r).img $(uname -r) ``` -Dann neu starten: +Starten Sie dann das System neu: ```bash reboot @@ -42,4 +42,4 @@ reboot ## Zusammenfassung -Der Linux-Kernel ist äußerst leistungsstark und modular. Es ist sinnvoll, dass einige Benutzer bestimmte Module zulassen oder verbieten möchten, und die erneute Generierung des `initramfs` ermöglicht dies. +Der Linux-Kernel ist äußerst leistungsstark und modular. Es ist sinnvoll, dass einige Benutzer bestimmte Module zulassen oder verbieten möchten. Die erneute Generierung des `initramfs` macht dies möglich.