Esercitazione #2

Istruzioni

Lo scopo di questa esercitazione è di continuare a prendere confidenza con i comandi di UNIX/Linux e con i semplici meccanismi della shell introdotti a lezione. Sono stati inseriti alcuni esercizi riguardanti la rappresentazione binaria dei numeri interi per verificare la comprensione dei concetti illustrati nell'ultima lezione.

Scaricare nella propria home (o in un'altra directory, se si preferisce) il file RisposteEs02.txt (cliccare col pulsante destro del mouse sul link), e modificarlo con editor testuale (emacs, gedit kedit, oowriter, ...) per indicare i comandi eseguiti nel risolvere ognuno degli esercizi proposti, rispettando il formato:


[Es<n>]
<directory corrente> : <comando> , <comando> , ...

Prima della fine dell'esercitazione, inviare il file RisposteEs02.txt a rbruni@cli.di.unipi.it come attachment di un messaggio di posta elettronica con Subject: ES-02 (ad esempio usando il mailer pine e seguendo le corrispondenti istruzioni).

Per chi è collegato col portatile: scaricare il file supporto.zip nella cartella ProgJava11/ES02 e usare il comando unzip supporto.zip per aprire la cartella compressa.


Esercizi

[00]  PER INIZIARE:

  • SETTARE PROXY (http://cdc.cli.di.unipi.it/proxy.pac) E CACHE (5MB) NEI BROWSER CHE UTILIZZATE
  • CREARE (SE ASSENTE) LA CARTELLA ProgJava11 NELLA VOSTRA HOME
  • CREARE LA CARTELLA ES02 COME SOTTOCARTELLA DI ProgJava11
  • COPIARE IL FILE RisposteEs02.txt NELLA CARTELLA ProgJava11/ES02

[01]  Copiare dalla home del docente (~rbruni) il file eseguibile provami dentro la cartella ProgJava11/ES02. Lanciare l'esecuzione di tale eseguibile (file binario) dando il comando da shell ./provami. Che cosa succede?
Terminare l'esecuzione del programma provami sfruttando un'opportuna combinazione di tasti.
Nota: se il comando provami non funziona sul vostro sistema, potete provare a ripetere l'esercizio col file riprovami.

[02]  Eseguire di nuovo il comando ./provami. Aprire un'altra shell e usare una sequenza di comandi per bloccare l'esecuzione del processo provami.
Suggerimento: determinare il PID del processo e poi usare un'opportuna opzione del comando kill.

[03]  Copiare dentro la directory ProgJava11/ES02 la cartella ~rbruni/sisal incluse tutte le sue sottocartelle e tutti i file in esse contenuti.
Suggerimento: Si cerchi una opportuna opzione del comando cp.

[04]  La cartella sisal dell'esercizio precedente contiene i dati delle estrazioni del superenalotto nel periodo gennaio-aprile 2009, raggruppati settimanalmente e per mese, che verranno usati nei prossimi esercizi. Usare il comando ls per verificare che le cartelle e i file copiati corrispondano alla seguente struttura:


sisal:
year2009

sisal/year2009:
month01  month02  month03  month04

sisal/year2009/month01:
week01.txt  week02.txt  week03.txt  week04.txt  week05.txt

sisal/year2009/month02:
week01.txt  week02.txt  week03.txt  week04.txt

sisal/year2009/month03:
week01.txt  week02.txt  week03.txt  week04.txt  week05.txt

sisal/year2009/month04:
week01.txt  week02.txt  week03.txt  week04.txt  week05.txt

[05]  I file con suffisso txt elencati sopra contengono una linea per ogni estrazione. In ogni linea sono elencati (nell'ordine) i sei numeri estratti, il numero jolly e il numero superstar. Scrivere un comando per mostrare sullo standard output l'elenco completo delle estrazioni nel periodo gennaio-aprile 2009.
Suggerimento: sfruttare i caratteri wildcard per selezionare i file da concatenare.

[06]  Usare la ridirezione dello standard output per creare il file ProgJava11/ES02/estrazioni.txt con l'elenco completo delle estrazioni nel periodo gennaio-aprile 2009.

[07]  Indicare un comando che visualizzi l'elenco dei numeri jolly estratti.
Suggerimento: si sfrutti il comando cut (con opportune opzioni) per selezionare il solo campo dei numeri jolly di ogni riga.

[08]  Indicare un comando che visualizzi l'elenco dei numeri jolly estratti ordinato numericamente.
Suggerimento: si sfrutti il comando cut (con opportune opzioni) per selezionare il solo campo dei numeri jolly di ogni riga.

[09]  Indicare un comando per visualizzare l'elenco dei numeri jolly estratti ordinato numericamente e senza ripetizioni.
Suggerimento: estendere la soluzione dell'esercizio precedente sfruttando anche il comando uniq.

[10]  Indicare un comando per contare quanti numeri jolly sono stati estratti esattamente una volta.
Suggerimento: estendere la soluzione dell'esercizio precedente sfruttando opportune opzioni del comando uniq e del comando wc.

[11]  Indicare un comando per contare quante volte è stato estratto il numero 11 nelle sestine regolari (ovvero, tralasciando numeri jolly e superstar).

[12]  Scrivere i comandi necessari per creare il file ProgJava11/ES02/estratti.txt contenente l'elenco ordinato numericamente e senza ripetizioni di tutti i numeri apparsi nelle sestine del periodo gennaio-aprile 2009 (tralasciando numeri jolly e superstar).
NOTA: il file deve essere ottenuto senza ricorrere a editing manuale.

[13]  Usare i comandi tar e zip per creare gli archivi compressi sisal.tgz e sisal.zip che raccolgono la cartella sisal e tutte le sue sottocartelle e file. Quale archivio occupa meno spazio?