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:
-
- 
-
- - `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:
+
+ 
+
+ - `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
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=`:
-
- 
-
- - `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=`:
+
+ 
+
+ - `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`, щоб отримати доступ до іншої інформації.
## Команда, пов'язана з іншими компонентами
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.
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.
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 можуть підвищити керованість і гнучкість завдань конфігурації, сприяючи більш спрощеному та ефективному підходу до налаштування системи та програм.
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
+ ```
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
+ ```
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
- ```
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
- ```
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
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
+ ```
## Заключні зауваження
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
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.
-- **Шлях ресурсу**: ця частина дозволяє серверу знати розташування ресурсу. Як правило, це розташування (каталог) і ім’я запитуваного файлу. Якщо в адресі нічого не вказано місце розташування, це вказує на першу сторінку хоста. В іншому випадку він вказує шлях до сторінки для відображення.
+ - **Шлях ресурсу**: ця частина дозволяє серверу знати розташування ресурсу. Як правило, це розташування (каталог) і ім’я запитуваного файлу. Якщо в адресі нічого не вказано місце розташування, це вказує на першу сторінку хоста. В іншому випадку він вказує шлях до сторінки для відображення.
### Порти
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.
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 секунд.
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
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
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
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 програми
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
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
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
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`
## Встановіть необхідні утиліти та залежності
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
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
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`
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
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
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`
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`
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
- 
+ 
2. Wählen Sie Ihre gewünschte Datei aus und klicken Sie auf **Open**, das in der oberen rechten Ecke des Bildschirms erscheint
- 
+ 
!!! note "Anmerkung"
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**
- 
+ 
2. Scegliere il file desiderato e fare clic su **Apri** che appare nell'angolo in alto a destra dello schermo
- 
+ 
!!! note "Nota"
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_
- 
+ 
2. Виберіть потрібний файл і натисніть кнопку **Open**, яка з’явиться у верхньому правому куті екрана
- 
+ 
!!! note "Примітка"
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**. 
- 
+ 
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**
- 
+ 
4. Cliccare su **Save**
@@ -77,15 +77,15 @@ Oltre a creare e generare codici QR, è possibile utilizzare Decoder per scansio
1. Cliccare su **Scan**
- 
+ 
2. Fare clic su **From a Screenshot**
- 
+ 
3. Scegliete gli effetti desiderati e cliccate su **Take a Screenshot**
- 
+ 
4. Cliccare su **Share**
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/), введіть «Декодер» у рядку пошуку та натисніть **Встановити**. 
- 
+ 
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**
- 
+ 
4. Натисніть **Save**
@@ -77,15 +77,15 @@ contributors: Steven Spencer, Ganna Zhyrnova
1. Натисніть **Scan**
- 
+ 
2. Натисніть **From a Screenshot**
- 
+ 
3. Виберіть потрібні ефекти та натисніть **Take a Screenshot**
- 
+ 
4. Натисніть **Share**
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
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
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
## Процес встановлення
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“
- 
+ 
- 
+ 
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.
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"
- 
+ 
- 
+ 
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.
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. Натисніть стрілку вниз поруч із кнопкою «Встановити»
- 
+ 
- 
+ 
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.
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. Перемкніть розширення з "вимкнено" на "увімкнено"
- 
+ 
3. Коли буде запропоновано встановити розширення, натисніть "yes".
## Керування встановленими розширеннями
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
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
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
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
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
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
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.
## Як додати облікові записи онлайн
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"
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"
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"
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 "примітка"
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
- 
+ 
3. Wenn Sie mit dem Screenshot zufrieden sind, benennen Sie die Datei um und klicken Sie auf **Save**.
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**
- 
+ 
3. Una volta soddisfatti della schermata, rinominare il file e fare clic su **Salva**.
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**
- 
+ 
3. Коли ви будете задоволені знімком екрана, перейменуйте файл і натисніть **Зберегти**.
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**
- 
+ 
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.
- 
+ 
2. Wählen Sie aus dem Dropdown-Menü das Land aus, in das Sie reisen. Der umgerechnete Betrag wird automatisch angezeigt.
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**
- 
+ 
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.
- 
+ 
2. Choisissez le pays vers lequel vous voyagez dans le menu déroulant. À partir de là, le montant converti apparaît automatiquement.
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**
- 
+ 
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.
- 
+ 
2. Selezionare il Paese in cui si viaggia dal menu a discesa. L'importo convertito apparirà automaticamente.
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**
- 
+ 
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. Виберіть свою країну зі спадного меню та введіть суму готівки, яку хочете витратити.
- 
+ 
2. Виберіть країну, до якої ви подорожуєте, зі спадного меню. Звідти автоматично з’являється конвертована сума.
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
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
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/)
## Висновок
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.
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. Розпочнеться установка драйвера. Дотримуйтеся вказівок на екрані встановлення.
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
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
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
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"
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"
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"
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 "Примітка"
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)
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)
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)
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. **Другий крок**:
- Продовжуйте з докладними інструкціями.
+ Продовжуйте з докладними інструкціями.
## Додаткова інформація (необов'язково)
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
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
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
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
+ ```
- Дотримуйтеся вказівок для автентифікації.
+ Дотримуйтеся вказівок для автентифікації.
## Висновок
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)
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)
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)
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"
+ ```
## Додаткова інформація (необов'язково)
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)
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)
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)
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"` на потрібну назву.
## Додаткова інформація (необов'язково)
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)
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)
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)
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++ або клацніть за межами текстового поля, щоб зберегти зміни.
## Додаткова інформація (необов'язково)
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
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
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"
+ ```
## Висновок
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
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": Надає детальний опис змін у запиті.
## Висновок
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
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
+ ```
## Додаткові примітки
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
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
+ ```
## Додаткові примітки
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
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]`, що вказує на відстеження.
## Висновок
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.
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
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
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
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++ - редагує код фільтра
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
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`
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`
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`
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.
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.
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.
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 та наступних версій.
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.
- 
+ 
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.

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.
- 
+ 
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` після входу в систему.\
- Ця команда показує ім'я користувача, який наразі ввійшов у систему.
+ Ця команда показує ім'я користувача, який наразі ввійшов у систему.

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à.
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++, щоб переглянути доступні інтерактивні команди в цьому режимі.
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
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/
+ ```
- При видаленні ви видаляєте з архіву всі файли з однаковою назвою.
+ При видаленні ви видаляєте з архіву всі файли з однаковою назвою.
## Загальноприйнята термінологія
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
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/
## Останні кроки
-- Перевірте, чи всі служби на новій віртуальній машині працюють належним чином.
-- Слідкуйте за продуктивністю та справністю нової віртуальної машини, щоб переконатися, що вона відповідає вашим потребам.
+ - Перевірте, чи всі служби на новій віртуальній машині працюють належним чином.
+ - Слідкуйте за продуктивністю та справністю нової віртуальної машини, щоб переконатися, що вона відповідає вашим потребам.
## Підтримка
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
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
## Вступ
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.
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.
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.
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.
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.
diff --git a/docs/guides/kernel/regenerate_initramfs.fr.md b/docs/guides/kernel/regenerate_initramfs.fr.md
index 064d757359..4ba344c051 100644
--- a/docs/guides/kernel/regenerate_initramfs.fr.md
+++ b/docs/guides/kernel/regenerate_initramfs.fr.md
@@ -11,11 +11,11 @@ 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
-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
@@ -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.
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.
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
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
+ - Вміння запускати контейнери
## Налаштування - один контейнер
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
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
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**: термін дії сертифіката
## Встановлення довіри
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.
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 надає багато можливостей і дозволяє легко встановлювати віртуальні машини та керувати ними. Якщо у вас є додаткові доповнення або зміни до цього документа, якими ви хотіли б поділитися, автор люб’язно запрошує вас це зробити.
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)
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)
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)
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)
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`.
+ ```
## Створення сертифікатів клієнта та сервера
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
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
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
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
+ ```
#### Щоб відключити віддалений спільний доступ
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-*
- ...