User Tools

Site Tools


its:gnu-linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
its:gnu-linux [2024/04/20 18:22] – riorganizzata la seconda lezione, preparata la terza ferodaits:gnu-linux [2024/04/25 06:00] (current) – [Lezione 4 - 30 aprile 2024] - elencati argomenti bash feroda
Line 3: Line 3:
 ===== Argomenti ===== ===== Argomenti =====
  
-  - <del>Linux da utente</del> +<del>Linux da utente</del>
-  - Linux da amministratore di sistema +
-    - Terminale +
-      - Generali: <TAB>, <UP>, <DOWN>, <CTRL+C>  +
-      - man, history +
-      - ls, cd, cat, head, tail, lsb_release -a +
-    - Accesso remoto +
-      - ssh +
-    - FHS - La gerarchia delle directory +
-      - /home,/root +
-      - /etc,/var,/usr,/tmp +
-      - /proc,/sys +
-      - /dev +
-      - /usr/local,/opt +
-    - Gestione utenti non privilegiati e privilegiati +
-      - sudo +
-    - Installazione/rimozione pacchetti +
-      - apt, apt-get, apt-cache, apt-file +
-    - Download file remoti +
-      - via ssh: scp +
-      - via web: wget e curl +
-    - Gestione dei servizi con systemd +
-      - systemctl, resolvectl, hostnamectl, timedatectl +
-    - Gestione del firewall +
-      - la soluzione di Ubuntu ''ufw'' = "Uncomplicated firewall" +
-      - firewall standard ''nftables'' (più noto come ''iptables''+
-    - Configurare il sistema +
-      - modifica dei file di testo con vim o vi +
-      - ricerca contenuti con grep +
-      - ricerca files con find +
-      - sospensione/riattivazione con <CTRL+Z>, bg e fg +
-  - Linux da amministratore di rete +
-    - i protocolli ''/etc/protocols'' +
-    - i servizi e le porte di default ''/etc/services'' +
-    - i socket attivi ''ss'' e ''netstat'' +
-    - la propria configurazione di rete ''ip addr list'' +
-    - le proprie interfacce di rete ''ip link show'' +
-    - test di raggiungibilità ''ping'' +
-    - test di connessione ad un servizio ''nc'', ''telnet'' +
-    - test di connessione ssl/tls con ''openssl'' +
-    - test di richieste https ''curl'' +
-    - scansione delle porte ''nmap'' +
-    - analisi del traffico di rete ''tcpdump'', ''wireshark''+
  
 +==== Linux da amministratore di sistema ====
 +
 +  - Terminale
 +    - Generali: <TAB>, <UP>, <DOWN>, <CTRL+C> 
 +    - man, history
 +    - ls, cd, cat, head, tail, lsb_release -a
 +  - Accesso remoto
 +    - ssh
 +  - FHS - La gerarchia delle directory
 +    - /home,/root
 +    - /etc,/var,/usr,/tmp
 +    - /proc,/sys
 +    - /dev
 +    - /usr/local,/opt
 +  - Gestione utenti non privilegiati e privilegiati
 +    - sudo
 +  - Installazione/rimozione pacchetti
 +    - apt, apt-get, apt-cache, apt-file
 +  - Download file remoti
 +    - via ssh: scp
 +    - via web: wget e curl
 +  - Gestione dei servizi con systemd
 +    - systemctl, resolvectl, hostnamectl, timedatectl
 +  - Gestione del firewall
 +    - la soluzione di Ubuntu ''ufw'' = "Uncomplicated firewall"
 +    - firewall standard ''nftables'' (più noto come ''iptables'')
 +  - Configurare il sistema
 +    - modifica dei file di testo con vim o vi
 +    - ricerca contenuti con grep
 +    - ricerca files con find
 +    - sospensione/riattivazione con <CTRL+Z>, bg e fg
 +
 +==== Linux da amministratore di rete ====
 +
 +  - i protocolli ''/etc/protocols''
 +  - i servizi e le porte di default ''/etc/services''
 +  - i socket attivi ''ss'' e ''netstat''
 +  - la propria configurazione di rete ''ip addr list''
 +  - le proprie interfacce di rete ''ip link show''
 +  - test di raggiungibilità ''ping''
 +  - test di connessione ad un servizio ''nc'', ''telnet''
 +  - test di connessione ssl/tls con ''openssl''
 +  - test di richieste https ''curl''
 +  - scansione delle porte ''nmap''
 +  - analisi del traffico di rete ''tcpdump'', ''wireshark''
 ===== Possibili attività/piccoli progetti ===== ===== Possibili attività/piccoli progetti =====
  
Line 65: Line 68:
 ^ Secure Shell   | OpenSSH                    | ssh | 22   | ssh                 | sshd | openssh-client | openssh-server | ^ Secure Shell   | OpenSSH                    | ssh | 22   | ssh                 | sshd | openssh-client | openssh-server |
 ^ Remote Desktop | Connessione Remota Windows | rdp | 3389 | rdesktop/xfreerdp | xrdp | rdesktop/xfreerdp | xrdp | ^ Remote Desktop | Connessione Remota Windows | rdp | 3389 | rdesktop/xfreerdp | xrdp | rdesktop/xfreerdp | xrdp |
 +^ IMAPs | Consultazione Email (sicuro) | imaps | 993 | thunderbird/mutt | dovecot | thunderbird (snap) | dovecot-imapd |
 +^ <del>IMAP</del> | Consultazione Email (insicuro) | imap | 143 | ::: | ::: | ::: | ::: |
 +
 +===== Lezione 4 - 30 aprile 2024 =====
 +
 +  * 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, 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".
 +
 +Riusciresti a dire cosa voleva monitorare il prof. (comando ''watch'' da esaminare alla fine dell'esercizio) con la sequenza di comandi (o meglio pipeline) che progressivamente ha raffinato qui si seguito tra virgolette?
 +
 +<code>
 +root@new-mail:/home/ced# watch -n10 "du -sh Maildir/.MailSt*"
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*"                                                                                                                     
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*" 
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt* | 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/.MailSt* | tail " 
 +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/.MailSt* | tail -n20 | grep Posta" 
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*Posta* | 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/.MailSt*Posta* | sort -n | tail -n20" 
 +root@new-mail:/home/ced# watch -n10 "du -sch Maildir/.MailSt*Posta* | grep G | sort -n | tail -n20" 
 +</code>
 +
 +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 =====
  
-Il prof cre la macchina Ubuntu2+Il prof crea la macchina Ubuntu2
  
   - Accesso in ssh alla macchina Ubuntu2   - Accesso in ssh alla macchina Ubuntu2
   - Ripetizione delle operazioni della lezione precedente in autonomia ed esplorando, grazie al comando ''man'' e all'opzione ''--help'', i seguenti comandi:   - Ripetizione delle operazioni della lezione precedente in autonomia ed esplorando, grazie al comando ''man'' e all'opzione ''--help'', i seguenti comandi:
-    - ls, cd, cat, head, tail, lsb_release -a, mkdir+    - ls, cat, head e sort, tail e sort, lsb_release -a, grep 
 +    - cd, mkdir
   - Ognuno espone un comando esplorato e una opzione. Potete dire da quale directory viene eseguito?   - Ognuno espone un comando esplorato e una opzione. Potete dire da quale directory viene eseguito?
   - Impostare l'hostname con hostnamectl   - Impostare l'hostname con hostnamectl
its/gnu-linux.1713637352.txt.gz · Last modified: 2024/04/20 18:22 by feroda