Both sides previous revisionPrevious revision | |
its:gnu-linux [2024/04/25 05:43] – Challenge per il 30 aprile e il tema bash feroda | its:gnu-linux [2024/04/25 06:00] (current) – [Lezione 4 - 30 aprile 2024] - elencati argomenti bash feroda |
---|
| |
* Rispolveriamo la pipe ''|'' e le pipeline (sequenze di comandi separati dalla pipe) utilizzati per comporre articolati comandi da una riga di shell (di solito la bash e per questo detti ''oneliner bash'' o più sinteticamente ''oneliner'') | * Rispolveriamo la pipe ''|'' e le pipeline (sequenze di comandi separati dalla pipe) utilizzati per comporre articolati comandi da una riga di shell (di solito la bash e per questo detti ''oneliner bash'' o più sinteticamente ''oneliner'') |
* Dopo l'esercitazione successiva parleremo della ''bash'' | * Dopo l'esercitazione, ripasseremo velocemente FHS |
| * Poi continueremo con 2 parole sulla ''bash'' e altri comandi base: |
| * Command substitution ''$()'' (o ''`'', ma meglio la forma con il ''$'') |
| * ''awk'' come ''cut'' superpotenziato: https://stackoverflow.com/a/36211753/720743 |
| * ''sed'' come arma letale per processare le righe dello standard input o di uno o più files |
| * Cicli in Bash |
| |
| ==== Esercitazione ==== |
| |
**Scenario**: Il prof ha esportato 1,3TB di posta elettronica da un server ad un altro via IMAP. Il formato di destinazione è il classico "Maildir" in cui le cartelle che appaiono sul client di posta elettronica sono esattamente cartelle sul filesystem all'interno di una directory "Maildir". | **Scenario**: Il prof ha esportato 1,3TB di posta elettronica da un server ad un altro via IMAP. Il formato di destinazione è il classico "Maildir" in cui le cartelle che appaiono sul client di posta elettronica sono esattamente cartelle sul filesystem all'interno di una directory "Maildir". |
| |
<code> | <code> |
root@new-mail:/home/ced# watch -n10 "du -sh Maildir/.MailStore\ Export*" | root@new-mail:/home/ced# watch -n10 "du -sh Maildir/.MailSt*" |
root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailStore\ Export*" | root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*" |
root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailStore\ Export*" | root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*" |
root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailStore\ Export* | grep G" | root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt* | grep G" |
root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailStore\ Export* | tail | grep G" | root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt* | tail | grep G" |
root@new-mail:/home/ced# watch -n300 "du -sch Maildir/.MailStore\ Export* | tail " | root@new-mail:/home/ced# watch -n300 "du -sch Maildir/.MailSt* | tail " |
root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailStore\ Export* | tail -n30 | grep Posta" | root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt* | tail -n30 | grep Posta" |
root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailStore\ Export* | tail -n20 | grep Posta" | root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt* | tail -n20 | grep Posta" |
root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailStore\ Export*Posta* | tail -n20" | root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*Posta* | tail -n20" |
root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailStore\ Export*Posta* | sort -n tail -n20" | root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*Posta* | sort -n tail -n20" |
root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailStore\ Export*Posta* | sort -n | tail -n20" | root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*Posta* | sort -n | tail -n20" |
root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailStore\ Export*Posta* | grep G | sort -n | tail -n20" | root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*Posta* | grep G | sort -n | tail -n20" |
</code> | </code> |
| |
**Suggerimento**: se ti trovi in difficoltà per comandi o opzioni usa il ''man'' oppure esegui il comando con ''-h'' (o ''--help''). Se proprio non riesci a sbloccarti fai una ricerca web, ma a questo punto è meglio se chiedi a ChatGPT o Copilot, perché almeno ti possono chiarire la situazione. Tuttavia non farlo, se vuoi imparare a cavartela da solo, prima di aver provato con il ''man'' o il ''-h''. | Nota: alcune righe potrebbero non aver dato il risultato sperato, per questo sono state rilanciate in modo più opportuno. |
| |
| **Suggerimento banale se ti trovi in difficoltà su comandi o opzioni**: usa il ''man'' oppure esegui il comando con ''-h'' (o ''--help''). Se proprio non riesci a sbloccarti fai una ricerca web, ma a questo punto è meglio se chiedi a ChatGPT o Copilot, perché almeno ti possono chiarire la situazione. Tuttavia non farlo, se vuoi imparare a cavartela da solo, prima di aver provato con il ''man'' o il ''-h''. |
| |
===== Lezione 3 - 23 aprile 2024 ===== | ===== Lezione 3 - 23 aprile 2024 ===== |