Esercitazione 5
Esercizio 1
Scaricare il seguente tarball compresso contenente dei file sorgenti distribuiti in un albero di directories descritte nel file README contenuto nel tarball (file da scaricare). Completare il Makefile presente nella directory top-level in modo che generi l'eseguibile 'myprog' all'interno della directory 'bin', la libraria 'libbt.so' nella directory 'lib'. Il Makefile dovrà avere anche un target (PHONY) 'test1' che lancia il programma 'myprog' con opportuni parametri (vedi README) e confronta il risultato ottenuto con quello presente nella directory 'testfile'. Se i risultati coincidono la regola 'test1' dovra' stampare sullo standard output la stringa “test1 OK”.
Esercizio 2
Estrarre dal file /etc/passwd
il primo ed il sesto campo (login-name e home, rispettivamente) utilizzando il comando cut
. Concatenare utilizzando una pipe (simbolo |
) al comando cut
il comando grep
in modo da stampare sullo standard output solo i login-name che hanno la home in '/home/'. Ordinare alfabeticamente la lista ottenuta all'uscita del comando grep
utilizzando il comando sort
e quindi stampare sullo standard output la lista ottenuta nel formato 'login-name home' una per riga.
Esempio:
alice /home/alice
pippo /home/pippo
quo /home/quo
NB: fare attenzione al seguente messaggio di warning contenuto nel manuale del comando sort
:
“The locale specified by the environment affects sort order. Set LC_ALL=C to get the traditional sort order that uses native byte values.”
Esercizio 3
Utilizzando il comando find
, stampare la lista di tutti i nomi di file contenuti nella propria home (o in una directory creata appositamente per fare il test) che sono stati modificati negli ultimi 'X' minuti e che contengono al loro interno la parola 'Y' (X è un numero intero Y è una stringa, es. X=2 Y=ciao).
Usare il comando find
, ricordando che: per cercare solo file regolari l'opzione e' '-type f', per selezionare i file modificati entro 'X' minuti l'opzione da usare è '-mmin' (leggere attentamente l'entry nel manuale man 1 find
). Per cercare una parola all'interno di un file usare il comando grep
, l'opzione '-l' di grep
permette di stampare il nome del file che ha dato il match.