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/19 07:22] – Integrata la sezione iniziale sul contesto di evoluzione GNU/Linux ferodaits:gnu-linux [2024/04/25 06:00] (current) – [Lezione 4 - 30 aprile 2024] - elencati argomenti bash feroda
Line 3: Line 3:
 ===== Argomenti ===== ===== Argomenti =====
  
-  - Linux da utente +<del>Linux da utente</del>
-  - Linux da amministratore di sistema +
-  - Linux da amministratore di rete +
-  - +
  
-===== Lezione 2 - 19 aprile 2024 =====+==== Linux da amministratore di sistema ====
  
-**Obiettivi**:+  - 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
  
-  - Utilizzo del terminale e introduzione alla shell +==== Linux da amministratore di rete ====
-  - Utenti, creazione e la directory $HOME +
-  - I Pacchetti e i Repository. Installazione/Disinstallazione/Aggiornamento +
-  - La versione della distribuzione+
  
 +  - 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 =====
  
-Attivita': 
  
-  - its-student accede in ssh alla macchina Ubuntu1 +  - **Riusciamo ad installare un Dokuwiki?** 
-  - its-student installa vim, code, gcc e tmux  +  **Creazione bulk di utenti con password** 
-  its-student crea un utente per ogni alunno+  - **Predisposizione macchina GNU/Linux per il corso di fondamenti di programmazione** 
 + 
 +===== Servizi, protocolli e porte di default ===== 
 + 
 +Qui trovate i servizi utilizzati o citati durante il corso: 
 + 
 +  * dove leggete "porta" è da intendersi come "porta di default"; 
 +  * dove leggete "client" è da intendersi come "software client di riferimento"; 
 +  * dove leggete "server" è da intendersi come "software server di riferimento"; 
 + 
 +| Servizio        ^ alias (aka)                ^ proto ^ porta  ^ client              ^ server ^ pkg client ^ pkg 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 | 
 +^ 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'esercitazioneripasseremo 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 speratoper 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 ===== 
 + 
 +Il prof crea la macchina Ubuntu2
  
-Opzionali: 
-  - Creazione 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:
 +    - 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?
 +  - Impostare l'hostname con hostnamectl
  
-===== Lezione 1 - 09 aprile 2024 ===== 
  
-==== Il contesto: Il Software Libero, Linux e GNU/Linux ====+==== Integrazione al contesto della Lezione 1 ====
  
-Il progetto rivoluzionario chiamato Linux, porta con sé in realtà un contesto composto da 2 anime, quella più etica del Software Libero ideata da Richard Stallman e quella più tecnica del kernel Linux ideata da Linus Torvalds. La conoscenza della sua storia ci fa capire il ruolo di entrambe e in particolare quello di Linux, come nucleo fondamentale e punta dell'iceberg di un ecosistema che gli ha consentito di spopolare e portare una vera rivoluzione tecnica e socioeconomica:+Il progetto rivoluzionario chiamato Linux, porta con sé in realtà un contesto composto da 2 anime, quella più etica del Software Libero ideata da Richard Stallman e quella più tecnica del kernel Linux ideata da Linus Torvalds. La conoscenza della sua storia ci fa capire il ruolo di entrambe e in particolare quello di Linux, come nucleo fondamentale e punta dell'iceberg di un ecosistema che gli ha consentito di spopolare e portare una **vera rivoluzione tecnica e socioeconomica**:
  
-  * [[https://en.wikipedia.org/wiki/Usage_share_of_operating_systems|Percentuale di utilizzo dei sistemi operativi in vari settori (Wikipedia)]]+  * **Quanto è utilizzato GNU/Linux rispetto agli altri sistemi operativi?** [[https://en.wikipedia.org/wiki/Usage_share_of_operating_systems|Percentuale di utilizzo dei sistemi operativi in vari settori (Wikipedia)]]
   * [[http://www.gnu.org/philosophy/free-sw.it.html|Cos'è il Software Libero?]]   * [[http://www.gnu.org/philosophy/free-sw.it.html|Cos'è il Software Libero?]]
   * [[http://www.gnu.org/philosophy/why-free.it.html|Perché il software non deve avere padroni]]   * [[http://www.gnu.org/philosophy/why-free.it.html|Perché il software non deve avere padroni]]
Line 43: Line 131:
     * [[http://agilemanifesto.org/display/000000085.html|La firma di Paxer Conseil]]     * [[http://agilemanifesto.org/display/000000085.html|La firma di Paxer Conseil]]
     * [[https://agilemanifesto.org/display/000000027.html|La firma di David Lillie]]      * [[https://agilemanifesto.org/display/000000027.html|La firma di David Lillie]] 
 +
 +
 +===== Lezione 2 - 19 aprile 2024 =====
 +
 +==== Obiettivi ====
 +
 +  - Utilizzo del terminale ed accesso remoto
 +  - Utenti, creazione
 +  - I Pacchetti e i Repository. Installazione/Disinstallazione/Aggiornamento
 +
 +==== Attività ====
 +
 +Parte 1:
 +
 +  - its-student accede in ssh alla macchina Ubuntu1 (192.168.6.203)
 +    - ssh its-student@192.168.6.203
 +  - its-student crea un utente per ogni alunno
 +    - sudo adduser tuonick
 +    - id tuonick
 +  - its-student rende l'utente alunno privilegiato
 +    - sudo adduser tuonick sudo
 +    - id tuonick
 +    - ls /home/
 +  - its-student fa logout (logout o exit o CTRL+D) dalla macchina Ubuntu1
 +  - ogni alunno accede via ssh alla macchina Ubuntu1
 +
 +Parte 2:
 +
 +  - ogni alunno installa vim, code, gcc e tmux, xrdp rispettivamente
 +  - test dei comandi appena installati
 +  - test di accesso remoto al sistema Ubuntu tramite Connessione Desktop Remoto di Windows
 +
 +
 +===== Lezione 1 - 09 aprile 2024 =====
 +
 +==== Il contesto: Il Software Libero, Linux e GNU/Linux ====
 +
 +(WAS: Le 2 anime di GNU/Linux: contesto etico e tecnica)
  
 **Richard Stallman** dal 1984 rappresenta la parte etica per portare la libertà agli individui attraverso il software libero. Fonda il progetto GNU, definisce le 4 libertà e crea la licenza software GPL-v2 (ora GPL-v3) che garantisce la 4 libertà fondamentali. **Richard Stallman** dal 1984 rappresenta la parte etica per portare la libertà agli individui attraverso il software libero. Fonda il progetto GNU, definisce le 4 libertà e crea la licenza software GPL-v2 (ora GPL-v3) che garantisce la 4 libertà fondamentali.
its/gnu-linux.1713511334.txt.gz · Last modified: 2024/04/19 07:22 by feroda