1 / 28

Sistemi Operativi - Introduzione

Il sistema operativo UNIX Shell: uso avanzato e script. Niccol ò Battezzati <niccolo.battezzati@polito.it> Politecnico di Torino Dip. Automatica e Informatica. 1. Sistemi Operativi - Introduzione. Programma. Linux: introduzione e comandi principali Shell: l’interprete dei comandi

lavender
Download Presentation

Sistemi Operativi - Introduzione

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Il sistema operativo UNIX Shell: uso avanzato e script Niccolò Battezzati<niccolo.battezzati@polito.it> Politecnico di Torino Dip. Automatica e Informatica 1 Sistemi Operativi - Introduzione

  2. Programma • Linux: introduzione e comandi principali • Shell: l’interprete dei comandi • Linux: dettagli e comandi avanzati • Shell: uso avanzato e script • Il linguaggio di programmazione AWK • vi(m): un editor di testo 2 Sistemi Operativi - Introduzione

  3. Indice • Variabili • Funzioni • Costrutti di confronto (if e case) • Loop (for e while) • Read • Segnali 4 Sistemi Operativi - Introduzione

  4. Indice • Variabili • Funzioni • Costrutti di confronto (if e case) • Loop (for e while) • Read • Segnali 5 Sistemi Operativi - Introduzione

  5. Variabili • Variabili predefinite: • $0 nome script • $1,$2,... parametri • $# numero parametri • $* stringa con tutti i parametri • $? valore di ritorno dell’ultmo programma • $$ PID del processo • $?var ‘1’ se var e` stata definita • $#var il numero di elementi nell’array var 6 Sistemi Operativi - Introduzione

  6. Variabili - array • Sono gestite variabili vettoriali unidimensionali: • Esempi: • var=(1 2 5 ”ciao”) • echo ${var[0]} • echo ${var[1-3]} • Utili nelle funzioni: • BASH_ARGV[] e BASH_ARGC 7 Sistemi Operativi - Introduzione

  7. Indice • Variabili • Funzioni • Costrutti di confronto (if e case) • Loop (for e while) • Read • Segnali 8 Sistemi Operativi - Introduzione

  8. Funzioni • Si possono definire delle funzioni, prima che vengano chiamate, con la seguente sintassi: • [function] name () {commands} • Il valore di ritorno e` definito: • o dal valore dell’ultimo comando eseguito • o dal comando return • I parametri sono definiti con la notazione posizionale: • $1, $2, $3 ... • Le funzioni vengono chiamate con la seguente sintassi: • name param1 param2 ... 9 Sistemi Operativi - Introduzione

  9. Funzioni - esempio function printUsage { echo “Wrong number of parameters ($1)” echo “Usage: $0 param1 param2” exit 0 } ... if test $# -ne 2 then printUsage $# fi 10 Sistemi Operativi - Introduzione

  10. Indice • Variabili • Funzioni • Costrutti di confronto (if e case) • Loop (for e while) • Read • Segnali 11 Sistemi Operativi - Introduzione

  11. Costrutto if-then-fi • Sintassi: • if condition • then • commands • [elif condition • then • commands] • [else • commands] • fi • Condizioni: • iftest param op param • oppure • if [ param op param ] SERVONO gli SPAZI!!! 12 Sistemi Operativi - Introduzione

  12. Flag di confronto • Confronto tra numeri: • -eq vero sei due numeri sono uguali • -ne vero sei due numeri non sono uguali • -gt vero seil primo numero e` maggiore • -ge vero seil primo numero e` maggiore o uguale • -lt vero seil primo numero e` minore • -le vero seil primo numero e` minore o uguale • Confronto tra stringhe: • = vero sele due stringhe sono uguali • != vero sele due stringhe non sono uguali 13 Sistemi Operativi - Introduzione

  13. Flag di confronto • Confronto per file: • -f vero sel’argomentoe` un file normale • -d vero sel’argomentoe` una directory • -r vero sel’argomentoha il permesso di lettura • -wvero sel’argomentoha il permesso di scrittura • -xvero sel’argomentoha il permesso di esecuzione • Operatori logici: • ! NOT • -a AND • -o OR 14 Sistemi Operativi - Introduzione

  14. 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 1 *.c > $3 • else • printUsageAndExit • fi 15 Sistemi Operativi - Introduzione

  15. Costrutto case-esac • Sintassi: • case var in • str1) • commands ;; • str2|str3) • commands ;; • ... • *) • commands ;; • esac 16 Sistemi Operativi - Introduzione

  16. Costrutto case - esempi • case $1 in • 01 | 1) echo “Gennaio” ;; • 02 | 2) echo “Febbraio” ;; • ... • 12) echo “Dicembre” ;; • *) echo “Error: unknown month”;; • esac 17 Sistemi Operativi - Introduzione

  17. Indice • Variabili • Funzioni • Costrutti di confronto (if e case) • Loop (for e while) • Read • Segnali 18 Sistemi Operativi - Introduzione

  18. Costrutto for-do-done • Sintassi: • 1: • for (( expr1 ; expr2 ; expr3 )) • do • commands • done • 2: • for var in list... • do • commands • done 19 Sistemi Operativi - Introduzione

  19. 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 20 Sistemi Operativi - Introduzione

  20. Costrutto while-do-done • Sintassi: • while condition • do • commands • done 21 Sistemi Operativi - Introduzione

  21. 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_in >file_out 22 Sistemi Operativi - Introduzione

  22. Indice • Variabili • Funzioni • Costrutti di confronto (if e case) • Loop (for e while) • Read • Segnali 23 Sistemi Operativi - Introduzione

  23. Read • read permette di leggere una riga da stdin, con la seguente sintassi: • read var1 var2 ... varN • ogni parola (separata da spazi) viene messa in una variabile • l’ultima variabile contiene tutte le rimanenti parole • permette di fare input interattivo. 24 Sistemi Operativi - Introduzione

  24. read - esempi • (per scambiare due colonne in un file): • while read var1 var2 • do • echo $var2 $var1; • done <file_in >file_out • (input interattivo): • echo –n “Insert a sentence: ” • read w1 w2 others • echo “Word 1 is: $w1” • echo “Word 2 is: $w2” • echo “The rest of the line is: $others” 25 Sistemi Operativi - Introduzione

  25. Indice • Variabili • Funzioni • Costrutti di confronto (if e case) • Loop (for e while) • Read • Segnali 26 Sistemi Operativi - Introduzione

  26. Segnali • I processi possono ricevere dei segnali, o dall’utente o da altri processi. Il processo puo` quindi decidere di: • ignorare il segnale • eseguire il comportamento di default • gestire il segnale • Per mandare un segnale si usa il comando • kill –signal pid • dove signal puo` essere un numero o un nome (come KILL o USR1 ecc.). 27 Sistemi Operativi - Introduzione

  27. Segnali • Per specificareilcomportamentodaadottaresiusailcomando: trap [‘commands’] [signal...] • trap ‘commands’ signals... eseguecommandsallaricezionedisignals • trap ‘’ signals... ignoratuttiisegnalisignals • trap signals... ripristinailcomportamentodi default per isegnalisignals. 28 Sistemi Operativi - Introduzione

  28. Segnali - esempi • (per gestire il segnale SIGALRM): • trap ‘echo mi sono svegliato’ ALRM • (per ripristinare il valore di default): • trap ALRM • (per ignorare SIGUSR1 e SIGUSR2): • trap ‘’ USR1 USR2 29 Sistemi Operativi - Introduzione

More Related