Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Shell: uso avanzato e script Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.

Slides:



Advertisements
Presentazioni simili
INFORMATICA Altre Istruzioni di I/O
Advertisements

Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME HOSTTYPE Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
PHP.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
Generazione di Codice Intermedio
Algoritmi e Programmazione
Shell Scripting. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure contenuti.
1 System Call per Comunicazione tra Processi Pipe.
Università La Sapienza Web programming e programmazione multimediale 1 Web Programming e comunicazione multimediale Lezione 10: PHP.
Giuseppe Fabio Fortugno.
Semantiche dei linguaggi di programmazione
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
File.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Raffaella Rizzi DISCO Dipartimento di Informatica Sistemistica e Comunicazione Edificio U14 - primo piano - stanza.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Andrea Colombari, Carlo Drioli e Barbara Oliboni
I Thread.
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
La shell di Linux Linux ha una varietà di shell differenti:
Istruzioni Iterative Nicola Fanizzi
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME … Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
Strutture di controllo in C -- Flow Chart --
I File.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Dip. Automatica e Informatica
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX AWK Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX La shell Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Shell 1 Elementi di programmazione concorrente Niccolo` Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX La shell Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Shell: uso avanzato e script Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Vi(m): un editor di testo Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Analisi di Immagini e Dati Biologici
Corso di PHP.
Sistemi Operativi – La shell Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
Altri comandi avanzati Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
AWK Salvatore Campagna
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e stringhe Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Programmazione della shell pt.2
Pippo.
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni – BCOR Ingegneria Elettronica – BELR Introduzione al C Esercitazione 5 D. Bloisi, A.
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Script di shell (bash).
Introduzione a Javascript
1 PROGRAMMAZIONE IN SHELL The Unix Programming Environment Kernigham - Pike.
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
Corso di Laboratorio primo modulo Introduzione all'uso di un sistema operativo. Introduzione all'uso della shell (bash). Java – –Introduzione – –Tipi di.
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
CORSO AUTOGESTITO DI GNU/LINUX Riprendi in mano il TUO sistema Riprendi in mano il TUO futuro BASH SCRIPTING.
Amministrazione di reti di calcolatori - Massimo Bertozzi Shell e scripting.
Ambienti di Programmazione per il Software di Base
PROGRAMMAZIONE BASH – ISTRUZIONE IF
Tipi di Shell sh – Bourne shell csh – C shell ksh – Korn shell
Transcript della presentazione:

Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Shell: uso avanzato e script Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica

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

Sistemi Operativi - Introduzione 3 Programma Linux: introduzione e comandi principali introduzione file system (base) comandi principali Shell: linterprete dei comandi introduzione sessioni (variabili dambiente ecc.) funzioni di interpretazione regexp scripting di base Linux: dettagli e comandi avanzati file system, inode e link sed, grep (regexp) cut, sort, uniq, wc archiving (tar, gzip) introduzione del for in Shell: uso avanzato e script sintassi e controllo di flusso gestione parametri array read vi(m): un editor di testo demo delleditor introduzione alle regexp

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

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

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

Sistemi Operativi - Introduzione 7 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

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

Sistemi Operativi - Introduzione 9 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 dellultimo 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...

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

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

Sistemi Operativi - Introduzione 12 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!!!

Sistemi Operativi - Introduzione 13 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

Sistemi Operativi - Introduzione 14 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

Sistemi Operativi - Introduzione 15 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

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

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

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

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

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

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

Sistemi Operativi - Introduzione 22 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

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

Sistemi Operativi - Introduzione 24 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 lultima variabile contiene tutte le rimanenti parole permette di fare input interattivo.

Sistemi Operativi - Introduzione 25 read - esempi (per scambiare due colonne in un file): while read var1 var2 do echo $var2 $var1; done 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

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

Sistemi Operativi - Introduzione 27 Segnali I processi possono ricevere dei segnali, o dallutente 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.).

Sistemi Operativi - Introduzione 28 Segnali Per specificare il comportamento da adottare si usa il comando: trap [commands] [signal...] 1.trap commands signals... esegue commands alla ricezione di signals 2.trap signals... ignora tutti i segnali signals 3.trap signals... ripristina il comportamento di default per i segnali signals.

Sistemi Operativi - Introduzione 29 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