martedì 2 giugno 2015

A.S. 2014/15 - Esercitazioni di laboratorio per la materia SISTEMI E RETI/1 [slide]


ESERCITAZIONE 7
Realizzare uno script che passato come parametro un indirizzo ip e/o una subnet mask visualizzi informazioni sul tipo di ip immesso

OBIETTIVI DISCIPLINARI
- saper manipolare le stringhe
- conoscere il comando bc

PROCEDIMENTO / SPECIFICHE INIZIALI
- usare le convenzioni di scrittura codice

ip1=10
echo "obase=2;$ip1" | bc
IP=010.010.001.100
echo "IP=$IP, len IP=${#IP}"
IP_OTT1=${IP:0:3}
echo "Il primo ottetto è =$IP_OTT1"

GRIGLIA DI VALUTAZIONE:
[2 punti] - relazione: premesse teoriche/specifiche (manipolazione stringhe, pipe)
[1 punti] - relazione: diagrammi di flusso
[5 punti] - script (corrispondenza con il D.F.)
[1 punti] - convenzioni di scrittura codice (intestazione, commenti, indent.)
[1 punti] - relazione: collaudo

RIFERIMENTI / LINK
http://tldp.org/LDP/abs/html/string-manipulation.html
https://www.gnu.org/software/bc/manual/html_mono/bc.html

-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 6
Realizzare uno script che in caso di mancata connessione alla rete Internet visualizzi un messaggio di errore.

OBIETTIVI DISCIPLINARI
- utilizzo del comando ping
- utilizzo dell' exit status
- ridirezione dei flussi e descrittori dei file
- espansione di comando

PROCEDIMENTO / SPECIFICHE INIZIALI
- l'output del comando ping (STDIN e STDOUT) deve essere reindirizzato su /dev/null
- usare le convenzioni di scrittura codice
- consegnare la relazione tecnica

GRIGLIA DI VALUTAZIONE:
[2 punti] - relazione: premesse teoriche/specifiche (ping, exit status, ridirezione)
[1 punti] - relazione: diagrammi di flusso
[5 punti] - script (corrispondenza con il D.F.)
[1 punti] - convenzioni di scrittura codice (intestazione, commenti, indent.)
[1 punti] - relazione: collaudo


------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 5
Realizzare uno script che esegua delle operazione matematiche con tutti gli argomenti passati allo script.

OBIETTIVI DISCIPLINARI
- passaggio di parametri
- utilizzo del costrutto while
- trovare un algoritmo che risolva il problema proposto
- realizzare diagrammi di flusso corretti

PROCEDIMENTO / SPECIFICHE INIZIALI
- l'utente richiamerà lo script con un numero variabile di argomenti (minimo 3 massimo a piacere). Il primo argomento sarà obbligatorio e sarà o "+" o "*"; gli altri argomenti saranno i numeri ai quali applicare l'operazione
- realizzare il diagramma di flusso dello script e caricarlo sulla Raspberry PI
- caricare nella propria home directory lo script realizzato (creare la sottocartella es5).
- consegnare la relazione tecnica tecnica (in formato pdf e caricata sulla RaspberryPI)
- per avere una valutazione sufficiente è necessario consegnare: relazione; diagramma di flusso e codice

GRIGLIA DI VALUTAZIONE:
[1 punti] - relazione: premesse teoriche/specifiche
[3 punti] - relazione: diagrammi di flusso
[4 punti] - script (corrispondenza con il D.F.)
[1 punti] - convenzioni di scrittura codice (intestazione, commenti, indent.)
[1 punti] - relazione: collaudo


------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 4
Realizzare uno script che esegua delle operazione matematiche con gli argomenti passati allo script.

OBIETTIVI DISCIPLINARI
- passaggio di parametri agli script
- trovare un algoritmo che risolva il problema proposto
- realizzare diagrammi di flusso corretti

PROCEDIMENTO / SPECIFICHE INIZIALI
- consegnare la relazione tecnica tecnica (in formato pdf e caricata sulla RaspberryPI)
- per avere una valutazione sufficiente è necessario consegnare: relazione; diagramma di flusso e codice
- l'utente richiamerà lo script con un tre parametri obbligatori. Il primo sarà l'operatore e gli altri due gli operandi
- realizzare il diagramma di flusso dello script e caricarlo sulla Raspberry PI
- caricare nella propria home directory lo script realizzato (creare la sottocartella es4).

RIFERIMENTI / LINK
http://www.dsi.unive.it/~lso/Slides/bash-02-scripting.pdf
http://www.pluto.it/files/ildp/guide/abs/
https://www.draw.io/

------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 3
Realizzare uno script che dopo aver chiesto all'utente due numeri e un operatore matematico, esegua l'operazione e visualizzi il risultato

OBIETTIVI DISCIPLINARI
- trovare un algoritmo che risolva il problema proposto
- realizzare diagrammi di flusso corretti
- il costrutto bash IF-ELIF:
- imparare i seguenti costrutti/istruzioni bash:
  . espansione aritmetica
  . comando let

PROCEDIMENTO / SPECIFICHE INIZIALI
- definire almeno tre operazioni matematiche
- creare nella propria home directory la cartella esercizio3
- realizzare due versioni di codice e diagrammi di flusso: uno utilizzando il costrutto IF-ELIF e l'altro utilizzando i costrutti IF-THEN-ELSE nidificati
- disegnare su www.draw.io un diagramma di flusso ed esportarlo in png (with embedded xml), usando il comandi dowload as
- eventualmente cercare altri sw di disegno che permettano di disegnare meglio i costrutti (es. il connettore dell'if)
- fare l'upload dei due file precedentemente creati nella propria home/esercizio3
- rispettare le convenzioni per la scrittura di codice nel linguaggio di scripting Bash definite
- perfetta corrispondenza tra flowchart e script

RIFERIMENTI / LINK
http://www.dsi.unive.it/~lso/Slides/bash-02-scripting.pdf
http://www.pluto.it/files/ildp/guide/abs/
https://www.draw.io/

------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 2
Realizzare uno script che dopo aver chiesto all'utente nome e orario, visualizzi un messaggio conseguente. Es. buongiorno Mario, buona notte Mario, ecc.

OBIETTIVI DISCIPLINARI
- trovare un algoritmo che risolva il problema proposto
- realizzare diagrammi di flusso corretti
- imparare i seguenti costrutti/istruzioni bash:
  . assegnazione e utilizzo variabili
  . istruzione test
  . costrutto if
  . echo
  . istruzione read
- rispettare le convenzioni per la scrittura di codice nel linguaggio di scripting Bash definite
- perfetta corrispondenza tra flowchart e script

SPECIFICHE INIZIALI
- definire almeno tre fasce orarie: mattina, giorno e notte
- la notte è definita per gli orari compresi tra le 22.00 e le 04.00
- creare nella propria home directory la cartella esercizio2
- disegnare un diagramma di flusso ed esportarlo sia in xml che in png, usando i comandi salva con nome e dowload as
- fare l'upload dei due file precedentemente creati nella propria home/esercizio1

RIFERIMENTI / LINK
http://www.dsi.unive.it/~lso/Slides/bash-02-scripting.pdf
http://www.pluto.it/files/ildp/guide/abs/
http://linux.about.com/library/cmd/blcmdl1_test.htm
https://www.draw.io/

------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 1
Creare un'utenza sulla RasperryPI in modo da poter lavorare individualmente sul server:

OBIETTIVI DISCIPLINARI
- conoscenza delle istruzioni per la gestione degli utenti
- conoscenza delle istruzioni per la gestione delle permission

PROCEDIMENTO / SPECIFICHE INIZIALI
- collegarsi alla raspberry usando il software MobaXterm e autenticarsi come utente root
- il nome utente deve essere cognome.nome
- creare la propria utenza usando il comando interattivo
#adduser cognome.nome  --force-badname 
- in caso di errore eliminare l'utenza creata con il comando #userdel
- usare il comando passwd cognome.nome per cambiare successivamente le password dell'utente
#passwd cognome.nome
- verificare il corretto completamento dell'esercizio provando i seguenti comandi
#cat /etc/passwd # l'utente creato è stato aggiunto al database utenti
#cat /etc/shadow
#cat /etc/shadow-
#cat /etc/gshadow
#cat /etc/group
#login cognome.nome # l'account è operativo
$ls -l /home        # la homedirectory è stata creata correttamente con le
                    # relative permission
$who                # vediamo l'elenco di tutti gli utenti connessi al server

$sudo chgrp -R -v www-data /home
$sudo chmod g+wxr -R /home/

RIFERIMENTI / APPROFONDIMENTI / LINK
http://www.dsi.unive.it/~lso/Slides/bash-02-scripting.pdf
http://www.tecmint.com/add-users-in-linux/
http://www.pluto.it/files/ildp/guide/abs/system.html

------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
4 -  Operare sui file
- I comandi: mkdir, rmdir, rm, cp, mv, cmp
- I comandi: touch, echo, cat, [more, tail, head, less]
- l' editor vi
- I comandi: find, grep, cut, [wc, eval, sort]

QUIZ DI AUTOVALUTAZIONE
[PUNTI 3 - ISTRUZIONE di visualizzazione su std output, ISTRUZIONE di lettura da std input, ESPANSIONE DI VARIABILE]
2) visualizzare il messaggio "Inserisci un numero"; leggere da standard input il valore immesso dall'utente; visualizzarne il valore su standard output
[PUNTI 2 – ISTRUZIONE ____, PIPE]
3) cercare all'interno del file "comandi.txt" il comando RUN ed estrarre il campo che si trova dalla colonna 20 a 45
[PUNTI 1 – ISTRUZIONE ___]
5) recuperare l'intervallo di colonne tra 10 e 20 del file "comandi.txt"
[]
9) Copiare nella home directory di root il file elenco.txt che si trova nella home directory dell'utente mrossi

------------------------------------------------------------------------------------------------------------
3 - Esplorare il filesystem
- Organizzazione del filesystem
- percorsi assoluti e relativi
- le cartelle principali di linux: /bin, /etc, /home, ...
- I comandi: cd, ls, pwd
[- df, mount, unmount, tar, gzip, bzip2]

QUIZ DI AUTOVALUTAZIONE
1) con quale carattere inizia un percorso assoluto
2) descrivere il comando pwd
3) cosa fa il comando cd ..
4) con quale comando è possibile visualizzare l'elenco dei file presenti nella working directory in formato esteso


------------------------------------------------------------------------------------------------------------
2 -  La shell, i file e le directory
- La shell di Linux "bash"
- Le scorciatoie della shell: freccia su, down, tab
- il prompt
- I comandi: man, history, echo

RIFERIMENTI
http://www.di.unipi.it/~mezzetti/data/uploads/unix-shell.pdf

APPROFONDIMENTI
http://www.dmi.unict.it/diraimondo/web/wp-content/uploads/classes/so/1011/SO-lab-unix-shell-print.pdf
http://lia.deis.unibo.it/Courses/sola0708-info/lucidi/6-fileComandi%282x%29.pdf
http://www.cs.unibo.it/~montreso/so/lucidi/lso-03-shell-4p.pdf
http://webcen.di.unimi.it/2002-03/comdig/laboratorio_informatica_generale1/files/278024.Lab02-Linux.pdf
http://www2.unipr.it/~dalpalu/corsi/soinf/Lezione%201.pdf

QUIZ DI AUTOVALUTAZIONE
1) quali sono gli elementi del prompt
2)      Che cosa è la Shell? (segnare più risposte corrette)
a)      Interfaccia (testuale) tramite la quale l’utente interagisce con il sistema dopo il login.
b)      È un interprete di comandi: legge ciascuna linea di comando, ne interpreta le diverse componenti e la esegue.
c)      ---
d)      Su linux è possibile utilizzare un solo tipo di shell
3)      Qual'è la sintassi tipica dei comandi Linux (domanda aperta)
4)      Che effetto ha la pressione del carattere di controllo "Ctrl-c" su un programma in esecuzione  (domanda aperta)
5)      Che effetto ha la pressione del carattere di controllo "Ctrl-d" su un programma in esecuzione (domanda aperta)
6)      Per cosa viene utilizzato il tasto Tab all'interno della shell (domanda aperta)

------------------------------------------------------------------------------------------------------------
1 - Virtualizzazione, Introduzione a Linux
- La virtualizzazione
- Introduzione ai Sistemi Operativi
- Introduzione al sistema operativo Linux
- Il kernel di Linux
- Le distribuzioni di Linux
- Creazione della macchina virtuale con il sw VirtualBox e avvio di Debian (Live, i386, ver 7.60, LXDE, immagine ISO)
- Installazione di Debian
- elementi principali dell'ambiente desktop: lxterminal, leafpad

RIFERIMENTI
http://it.wikipedia.org/wiki/Linux_%28kernel
http://it.wikipedia.org/wiki/Distribuzione_Linux
https://www.virtualbox.org/
https://www.debian.org/
http://www.dis.uniroma1.it/~salza/SO/SO-I-1p.pdf

APPROFONDIMENTI
http://lia.deis.unibo.it/Courses/sola0708-info/lucidi/1-Intro%282x%29.pdf
http://www.dis.uniroma1.it/~salza/SO.htm

------------------------------------------------------------------------------------------------------------
Data di pubblicazione iniziale 29 ott 2014

Nessun commento:

Posta un commento