Esercitazione conclusiva - SisInfLab
Transcript
Esercitazione conclusiva - SisInfLab
Fondamenti Fondamenti di di Sistemi Sistemi Operativi Operativi DEI DEI--Politecnico Politecnicodi diBari Bari Linux e la shell Bash • Esercitazione conclusiva G. Piscitelli - M. Ruta - A. Cinquepalmi Testi di riferimento: • Linux e la shell Bash • La shell Bash • Comandi shell Bash http://sisinflab.poliba.it/ruta/linux/Linux e la shell Bash.pdf http://www-ictserv.poliba.it/piscitelli/doc/lab_esercitazioni_SO_no/bash_shell.pdf http://sisinflab.poliba.it/giannini/SO/Comandi_shell_bash.pdf A.A. 2016-2017 1 Fondamenti di Sistemi Operativi DEI - Politecnico di Bari Esercizi 1) Si supponga che la cwd sia /home/utente1. Descrivere l’albero delle directory risultante dopo che sono stati lanciati i seguenti comandi: • mkdir dir1 • touch file1 f1 Soluzione • mv f? dir1/ / • cd dir1 • mkdir dir2 ../dir2 • cp ../f* ../dir2/ home/ • cd dir2 • cp ../f* . utente1/ dir1/ f1 file1 dir2/ dir2/ file1 f1 A.A. 2016-2017 2 Fondamenti di Sistemi Operativi DEI - Politecnico di Bari Esercizi 2) Visualizza l'elenco di tutti gli utenti del sistema (solo il nome utente) Soluzione • sed 's/:.*/ /' /etc/passwd • cut -d\: -f1 /etc/passwd 3) Visualizza l'elenco degli utenti del sistema ed accanto al nome utente le relative shell Soluzione • sed 's/:.*:/ /' /etc/passwd • cut -d\: -f1,7 /etc/passwd 4) Visualizza l'elenco in formato esteso delle directory anche nascoste presenti sotto la directory corrente Soluzione • ls -la | grep '^d' 5) Visualizza i file regolari che sono accessibili in lettura a qualsiasi utente. Soluzione • ls -la | grep '^-\(r..\)\{3\}‘ • ls -la | grep -E '^-(r..){3}‘ (espressione regolare estesa) 6) Utilizzando esclusivamente ls e sed visualizza l'elenco in formato esteso dei file presenti sotto la directory corrente eliminando la colonna dei permessi Soluzione • ls -la | sed 's/.\{10\}//' A.A. 2016-2017 3 Fondamenti di Sistemi Operativi Esercizi DEI - Politecnico di Bari 7) Si cancellino i risultati errati dopo aver eseguito il seguente comando (motivare la risposta): • ls -l *a?b.sh -rw-rw-r-rw-rw-r-rw-rw-r-rw-rw-r- - 1 1 1 1 utente1 utente1 utente1 utente1 did did did did 2048 2048 2048 2048 2001-05-17 2001-05-17 2001-05-17 2001-05-17 20:29 20:29 20:29 20:29 acb.sh acb.sh.acb.shx x.abb.shx x.acb.sh Soluzione I risultati errati sono: -rw-rw-r- - 1 utente1 did 2048 2001-05-17 20:29 acb.sh.acb.shx -rw-rw-r- - 1 utente1 did 2048 2001-05-17 20:29 x.abb.shx Perché il comando chiede che siano visualizzati i file il cui nome presenta le seguenti caratteristiche: stringa + 'a' + carattere + '.sh' • *: una qualsiasi stringa di caratteri • a: il carattere a • ?: un solo carattere, qualsiasi • .sh: la sequenza di caratteri .sh A.A. 2016-2017 4 Fondamenti di Sistemi Operativi DEI - Politecnico di Bari Esercizi 8) Il file text contiene le seguenti parole casa cane gatto mondo volpe ciccio Indicare l’output del seguente comando • grep 'a\|[ae]$' text Soluzione • L’output è: casa cane gatto volpe N.B. Prestare attenzione alle parentesi! • grep '\(a\|[ae]\)$‘ text Restituisce: casa cane volpe A.A. 2016-2017 5 Fondamenti di Sistemi Operativi DEI - Politecnico di Bari Esercizi 9) Si supponga di avere il file studenti.matricole contenente una serie di cognomi, nomi e numeri di matricola separati dal carattere «;». Quale effetto ha il comando: • cat studenti.matricole | grep '^.*;5[1-3].\{4\}$' >> ~/studenti Soluzione • Il comando stampa le stringhe che iniziano per una sequenza qualunque di caratteri, sono seguite dal «;» e da 51 o 52 o 53 e terminano con 4 cifre, quindi le matricole che iniziano per 51 o 52 o 53 10) Mostrare una lista di tutti i file chiamati core in tutto il file system. Non visualizzare i messaggi di errore. Soluzione • find / -name core 2> /dev/null 11) Trovare i file che hanno un nome che inizi con a e termini con o presenti nella directory corrente dell’utente Soluzione • find . -name 'a*o' A.A. 2016-2017 10 Fondamenti di Sistemi Operativi DEI - Politecnico di Bari Esercizi 12) Descrivere cosa produce l’esecuzione di ciascun comando contenuto nel seguente script file a) cd b) mkdir dir c) echo pippo > pluto d) ln pluto ./dir/pluto e) ln -s pluto ./dir/pippo f) rm ./dir/pippo g) more pluto h) more ./dir/p???? Soluzione a) Vai nella home directory b) Crea una directory di nome dir c) Crea il file pluto e scrive al suo interno la stringa ‘pippo’ d) Crea un link fisico al file pluto presente nella home directory all’interno della directory /dir . Il nome del link fisico è pluto e) Crea un link simbolico al file pluto presente nella home directory all’interno della directory /dir . Il nome del link simbolico è pippo f) Elimina il file pippo presente in dir g) Visualizza (a pagine) il contenuto del file pluto presente nella home directory h) Visualizza (a pagine) tutti i file di 5 lettere che iniziano con la lettera p presenti nella directory dir A.A. 2016-2017 7 Fondamenti di Sistemi Operativi DEI - Politecnico di Bari Esercizi 13) Dato un file di testo text.txt contenente un elenco di iscritti a un circolo sportivo, scrivere un unico comando che permette di cercare tutti gli iscritti che hanno un cognome che inizi per vocale oppure che si chiamino ROSSI. Soluzione • grep '^[aeiou] \|\<ROSSI$' text.txt 14) Scrivete un unico comando (pipeline) per fornire il numero di file (e directory) a cui avete accesso, contenuti nella vostra home directory; Soluzione • ls ~ 2>/dev/null | wc -l 15) Scrivete un unico comando (pipeline) per fornire la lista dei file della home directory il cui nome è una stringa di 3 caratteri seguita da una cifra. Soluzione • ls ~ | grep '^[[:alpha:]]\{3\}[0-9]$' A.A. 2016-2017 8