====== Esercitazione 1 ======
Dove si inizia ad interagire con la shell.
===== Esercizio 1 =====
* A partire dalla vostra home directory, creare una cartella ''temp'';
* Entrare nella cartella appena creata;
* Creare due sottocartelle ''sorgente'' e, come sottolivello, ''destinazione'' (destinazione sarà una sottodirectory di ''sorgente'');
* Creare nella cartella sorgente un file di nome ''esempio.txt'';
* Editare il file con ''gedit'' : da shell digitare
gedit esempio.txt
e scrivere all’interno del file la riga
contenuto_1
(da shell digitare gedit esempio.txt)
* Controllare da shell il percorso assoluto (path assoluto) della cartella corrente (sorgente) e scriverlo (con ridirezione append ''>>'') nel file.
===== Esercizio 2 =====
* Posizionatevi (se non ci siete già) all’interno della cartella ''sorgente''
* Cancellate il file ''esempio.txt'' creato durante l’esercizio 1 precedente
* Create un nuovo file di testo ''lista1.txt'' ed inserite all’interno 5 nomi di amici;
* Create un nuovo file di test ''lista2.txt'' ed inserite all’interno 5 nomi di amici;
* Spostate il file ''lista1.tx''t dalla cartella sorgente alla cartella destinazione;
* Copiate il file ''lista2.txt'' dalla cartella sorgente alla cartella destinazione.
===== Esercizio 3 =====
* Posizionatevi all’interno della cartella ''destinazione'';
* Visualizzate tutti i file contenuti nella //directory corrente//;
* Concatenare i due file contenuti nella directory nel nuovo file ''lista3.txt'' e visualizzate il risultato.
===== Esercizio 4 =====
* Posizionandovi nella vostra home directory;
* Create una nuova sottodirectory chiamata ''num_utili''
* Posizionatevi in ''num_utili'' e copiateci il file {{:fisica:informatica:201415:esercitazioni:rubrica.tar|rubrica.tar}}
* scompattate il file ''rubrica.tar'' con il comando
tar xvf rubrica.tar
il comando estrae un file di testo chiamato "rubrica.txt"
* Editate il file ''rubrica.txt'' con gedit in modo da cancellare tutte le righe che non contengono informazioni utili (es. righe vuote, righe di asterischi,...);
* Stampate a video il contenuto del file "rubrica.txt" risultante (Provate ad usare tutti e tre i comandi a vostra disposizione per questo: ''pg'', ''more'' e ''less'')
* Create un nuovo archivio compresso che contenga il file "rubrica.txt" con il comando
tar cvf rubrica.tar rubrica.txt
* Controllate che l'archivio contenga correttamente il file con
tar tvf rubrica.tar
===== Esercizio 5 =====
* Ordinate lessicograficamente il file ''rubrica.txt'' dell’esercizio precedente salvando il suo contenuto nel file ''rubricaOrd.txt''
* Visualizzate le prime 5 linee del file appena creato
* Create un nuovo file ''rubrica1.txt'' che contiene le prime 5 linee di ''rubricaOrd.txt'' seguite dalle ultime 5 linee dello stesso file usando i comandi di ridirezione
===== Esercizio 6 =====
* Comprimete il file ''rubrica1.txt'' dell’esercizio precedente usando il comando ''gzip'' Controllate se il comando ha creato un nuovo file. Dov’è il file originale?
* Visualizzate le informazioni del file compresso usando il comando ''file''
* e' possibile visualizzare il contenuto del file compresso ?
* Decomprimete il file compresso usando il comando ''gunzip''
* Che cosa fa il comando:
grep perino rubricaOrd.txt
e
grep perino rubricaOrd.txt | wc -l
?
===== Esercizio 7 =====
* Leggete la pagina del manuale relativa ai comandi ''whoami'', ''du'' e ''df'': Cosa fanno questi comandi?
* Andate nella vostra home e lanciate
du -hd 1
Cosa significano le opzioni ''-h'' e ''-d''? Cosa è ''1'' in questo caso?
* Leggete la pagina del manuale relativa al comando ''cal''. Cosa fa questo comando? A cosa serve l'opzione ''-m'' ?
* Visualizzate la pagina del manuale del comando ''tar'' utilizzato nell'esercizio 4
* create l'archivio compresso ''rrr.tar.gz'' contenente i file ''rubrica.txt'', ''rubrica1.txt'' e ''rubricaOrd.txt'' dell’esercizio 5.
===== Esercizio 8 =====
Eseguire il comando
(for((i==0;i<1000;i++)) do echo "Fermami se ci riesci" ; sleep 1; done)
questo stampera' per 1000 volte la frase //Fermami se ci riesci// senza restituire il prompt.
* Interrompere l'esecuzione del comando in modo da riottenere il prompt dopo due stampe.
* Riattivare il comando e bloccarlo temporaneamente (CTRL-Z). Cosa è successo ?
* Usare il comando ''fg'' per riattivare il comando. Terminarlo di nuovo con CTRL-C
* Riattivare e bloccare di nuovo il comando con CTRL-Z
* Dare adesso il comando ''bg''. Questo vi permette di riattivare l'esecuzione riottenedo il prompt della shell per inviare contemporaneamente altri comandi. L'esecuzione del comando in questo caso è detta esecuzione in background attivandone poi l'//esecuzione in background//.
===== Esercizio 9 =====
Utilizzare l'esecuzione in background per attivare contemporaneamente stessa shell la finestra dell'editore gedit e il prompt per inviare nuovi comando con
gedit &
questo sarà utile per non chiudere la finestra di editing del programma fra una compilazione e l'altra