Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati <[email protected]> Politecnico di Torino Dip. Automatica e Informatica Sistemi Operativi - Introduzione 1 Programma • Linux: introduzione e comandi principali • Shell: l’interprete dei comandi • Comandi avanzati e script • Il linguaggio di programmazione AWK Sistemi Operativi - Introduzione 2 Indice • Filtri • Altri comandi avanzati Sistemi Operativi - Introduzione 3 Indice • Filtri • Altri comandi avanzati Sistemi Operativi - Introduzione 4 Filtri • Comandi che operano sul proprio standard input per filtrarlo secondo alcuni parametri: • • • • • grep sed cut sort uniq Sistemi Operativi - Introduzione 5 sed • sed permette di fare semplici trasformazioni di un testo passato come input. • Sintassi: sed [opzioni] {script} [file]... • Opzioni utili: • -f script esegue i comandi nel file script • -n stampa solo le parti richieste (def. tutto stdin) • Sintassi degli script: • ogni comando ha la seguente sintassi [address[,address]] command Sistemi Operativi - Introduzione 6 sed - comandi • Comandi: • comandi con 0 o 1 indirizzo: • = stampa il numero della riga corrente • q termina l’elaborazione • comandi con 1 o 2 indirizzi: • d elimina la riga corrente • p stampa la riga corrente • s/old/new/flag sostituisce old con new • flags: • num | g | p • y/old/new/ Sistemi Operativi - Introduzione trasforma i caratteri in old con quelli in new 7 sed - indirizzi • 0 indirizzi - il comando si applica a ogni linea • 1 indirizzo - il comando si applica a tutte le righe con quell’indirizzo, che puo` essere: • num • /regexp/ • $ • 2 indirizzi - il comando si applica a tutte le righe comprese tra i due indirizzi (compresi). Sistemi Operativi - Introduzione 8 sed - esempi Esempi: • cat file.txt | sed –n ‘=’ | tail –n 1 • sed ‘1 d’ file.txt • sed –n ‘/^\/\*/,$ p’ file.txt • cat f1.c | sed ‘s/myfunc/myFunc/g’ > f2.c Sistemi Operativi - Introduzione 9 cut • cut seleziona porzioni di ogni linea del file in input. • Sintassi: cut -c|-f list [–d delim] [file]... • Parametri: • list • -d delim lista dei campi da selezionare usa delim per dividere i campi (default TAB) Esempi: • cat pippo.txt | cut –f 1,3 • cut –f 1-3,5-6 –d “ ” pippo.txt Sistemi Operativi - Introduzione 10 sort • sort ordina i file in input • Sintassi: sort [option]... [file]... • Opzioni utili: • • • • • -f -n -r -k c1[,c2] -m case insensitive ordine numerico (default alfabetico) ordine inverso ordina sulla base dei soli campi selezionati merge di file gia` ordinati Esempi: • cat pippo.txt | sort –r –k 1,3 -f Sistemi Operativi - Introduzione 11 uniq • uniq stampa o elimina le righe ripetute nel file in input. N.B. Richiede che il file sia ordinato!!! • Sintassi: uniq [options] [in_file] [out_file] • Opzioni utili: • • • • -c -d -f num -i stampa il numero di ripetizioni prima della riga stampa solo le righe ripetute ignora i primi num campi per il confronto case insensitive Esempi: • cat pippo.txt | sort –r –k 1,3 | uniq –f 1 Sistemi Operativi - Introduzione 12 Indice • Filtri • Altri comandi avanzati Sistemi Operativi - Introduzione 13 wc • wc visualizza il numero di linee, parole e byte nel file in input. • Sintassi: wc [options] [file...] • Opzioni utili: • -c • -w • -l conta il numero di byte conta il numero di parole conta il numero di linee Esempi: • num_lines=`cat pippo.txt | wc –l` Sistemi Operativi - Introduzione 14 tr • tr copia stdin su stdout facendo le sostituzioni specificate. • Sintassi: tr [options] string1 [string2] • Opzioni utili: • -d cancella i caratteri in string1 Esempi: • echo ciao | tr ia IA Sistemi Operativi - Introduzione cIAo 15 tar • tar gestisce l’archiviazione (e la compressione) di dati. • Uso normale: tar –czvf file.tgz directory tar –xzvf file.tgz • Opzioni utili: • • • • -c -z, -j -v -f Sistemi Operativi - Introduzione crea l’archivio comprime (gzip o bzip2) verbose (stampa i messaggi) specifica il file di archivio 16