Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoEugenio Ventura Modificato 10 anni fa
1
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica
2
Sistemi Operativi - Introduzione 2 Programma Linux: introduzione e comandi principali Shell: linterprete dei comandi Comandi avanzati e script Il linguaggio di programmazione AWK
3
Sistemi Operativi - Introduzione 3 Indice Filtri File system: dettagli Script: costrutti di controllo
4
Sistemi Operativi - Introduzione 4 Indice Filtri File system: dettagli Script: costrutti di controllo
5
Sistemi Operativi - Introduzione 5 Filtri Comandi che operano sul proprio standard input per filtrarlo secondo alcuni parametri: grep sed cut sort uniq
6
Sistemi Operativi - Introduzione 6 grep grep cerca nei file di input le righe che fanno match con il pattern fornito. Sintassi: grep [opzioni] pattern [file...] Opzioni utili: -A num stampa altre num righe -H stampa il nome del file per ogni match -i case insensitive -n stampa il numero di riga del match -r, -R ricorsivo sul sottoalbero -v stampa solo le righe che non fanno match
7
Sistemi Operativi - Introduzione 7 grep - regexp Le espressioni regolari sono pattern che descrivono un insieme di stringhe. Espressioni complesse si costruiscono combinando espressioni semplici. Regexp: [c 1 c 2 ] uno qualsiasi dei caratteri in parentesi [c 1 -c 5 ] uno qualsiasi dei caratteri nel range [^c 1 -c 5 ] uno qualsiasi dei caratteri NON nel range. un carattere qualsiasi ^, $ inizio e fine riga \ inizio e fine parola
8
Sistemi Operativi - Introduzione 8 grep - regexp Operatori di ripetizione (possono seguire ogni regexp): * lelemento precedente ce` zero o piu` volte + lelemento precedente ce` una o piu` volte {n} lelemento precedente ce` esattamente n volte {n,} lelemento precedente ce` n o piu` volte {n,m} lelemento precedente ce` min n e max m volte Operatori di concatenzaione: | OR tra due regexp () gestiscono le precedenze tra gli operatori Loperatore \ serve per poter usare in modo letterale i caratteri che hanno significati speciali.
9
Sistemi Operativi - Introduzione 9 grep - esempi Esempi: ps -ef | grep my_loop 100[1-5] grep –H –n -r my_func( *.[ch] cat f1.c | grep –v \/\*[^\*]*\*\/ > f2.c
10
Sistemi Operativi - Introduzione 10 Indice Filtri File system: dettagli Script: costrutti di controllo
11
Sistemi Operativi - Introduzione 11 File system Lorganizzazione piu` comune del file system UNIX e`: / bin home sbin usr etc var dev mnt bin sbin lib include log
12
Sistemi Operativi - Introduzione 12 File system Il kernel virtualizza diverse partizioni (ognuna col suo file system) come se fossero tutte parte dello stesso albero. A ogni file di qualunque tipo e` associato un inode number, lindice di una tabella in cui ogni elemento (inode) contiene le informazioni di un file. Le directory sono delle tabelle che associano al nome di un file il suo inode number. Tale associazione si chiama link. Lo stesso inode number puo` apparire in piu` link!
13
Sistemi Operativi - Introduzione 13 File system - comandi Per creare dei link si usa il seguente comando: ln [opzioni] source_file [target_file] Opzioni utili: -s crea un link SIMBOLICO (default HARD link) N.B. I link simbolici contengono il path del file puntato e possono essere fatti tra file system differenti (gli hard link no!). Il comando rm rimuove il file solo se il numero dei link e` a 0 Il comando mv equivale ad eseguire prima ln e poi rm.
14
Sistemi Operativi - Introduzione 14 Indice Filtri File system: dettagli Script: costrutti di controllo
15
Sistemi Operativi - Introduzione 15 Costrutto if-then-fi Sintassi: if condition then commands [elif condition then commands] [else commands] fi Condizioni: if test param op param oppure if [ param op param ] SERVONO gli SPAZI!!!
16
Sistemi Operativi - Introduzione 16 Flag di confronto Confronto tra numeri: -eq vero se i due numeri sono uguali -ne vero se i due numeri non sono uguali -gt vero se il primo numero e` maggiore -ge vero se il primo numero e` maggiore o uguale -lt vero se il primo numero e` minore -le vero se il primo numero e` minore o uguale Confronto tra stringhe: = vero se le due stringhe sono uguali != vero se le due stringhe non sono uguali
17
Sistemi Operativi - Introduzione 17 Flag di confronto Confronto per file: -f vero se largomento e` un file normale -d vero se largomento e` una directory -r vero se largomento ha il permesso di lettura -w vero se largomento ha il permesso di scrittura -x vero se largomento ha il permesso di esecuzione Operatori logici: ! NOT -a AND -o OR
18
Sistemi Operativi - Introduzione 18 Costrutto if - esempi if test $1 = -r then recursive_search=1 fi if [ $recursive_search –eq 1 –a –d $2 ] then find $2 –name *.c > $3 elif [ $recursive_search –eq 0 –a –d $2 ] then find $2 –maxdepth 0 *.c > $3 else printUsageAndExit fi
19
Sistemi Operativi - Introduzione 19 Costrutto case-esac Sintassi: case var in str1) commands ;; str2|str3) commands ;;... *) commands ;; esac
20
Sistemi Operativi - Introduzione 20 Costrutto case - esempi case $1 in 01 | 1) echo Gennaio ;; 02 | 2) echo Febbraio ;;... 12) echo Dicembre ;; *) echo Error: unknown month;; esac
21
Sistemi Operativi - Introduzione 21 Il costrutto for-in for var in value1 value2 value3... do #commands done Esegue i comandi specificati, una volta per ogni valore assunto dalla variabile var.
22
Sistemi Operativi - Introduzione 22 Costrutto for-do-done Sintassi: 1: for var in list... do commands done 2: for (( expr1 ; expr2 ; expr3 )) do commands done
23
Sistemi Operativi - Introduzione 23 Il costrutto for-in - esempi 1: for i in `echo {1..5}` do echo $i >> numeri.txt done 2: for f in `ls | grep *7`; do chmod g+x $f; done equivalente a: find. –maxdepth 1 –name *7 –exec chmod g+x \{} \;
24
Sistemi Operativi - Introduzione 24 Costrutto for - esempi for (( i=0 ; i<10 ; i++ )) do echo $i done for i in `ls | grep *.c` do chown pippo:disney $i done
25
Sistemi Operativi - Introduzione 25 Costrutto while-do-done Sintassi: while condition do commands done
26
Sistemi Operativi - Introduzione 26 Costrutto while - esempi i=0 while [ $i –lt 10 ] do echo $i i=$(($i+1)) done (per scambiare due colonne in un file): while read var1 var2 do echo $var2 $var1; done file_out
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.