La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sistemi Operativi - Shell 1 Il sistema operativo LINUX La shell Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica.

Presentazioni simili


Presentazione sul tema: "Sistemi Operativi - Shell 1 Il sistema operativo LINUX La shell Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica."— Transcript della presentazione:

1 Sistemi Operativi - Shell 1 Il sistema operativo LINUX La shell Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica

2 Sistemi Operativi - Shell 2 La shell E lo strato più esterno del S.O. e fornisce linterfaccia utente Offre una via di comunicazione con il S.O. –dialogo interattivo –comandi memorizzati in un file di script In Unix la shell non è parte del kernel –è un normale processo utente

3 Sistemi Operativi - Shell 3 Esecuzione della shell Una shell può essere attivata: –automaticamente al login (secondo la specifica in /etc/passwd) –in modo annidato dentro un'altra shell (si ritorna alla shell iniziale quando termina quella interna) Per terminare una shell: –exit –il carattere di EOF (tipicamente ^d)

4 Sistemi Operativi - Shell 4 Caratteri speciali /separa i nomi dei direttori in un path ?un carattere qualunque *una sequenza di caratteri qualunque ~il direttorio di login ~utente il direttorio di login dell'utente [ ]un carattere tra quelli in parentesi { }una parola tra quelle in parentesi (separate da virgola) …non espande le espressioni regolari

5 Sistemi Operativi - Shell 5 Le shell disponibili In Unix sono disponibili molte shell: –Bourne shell (sh): la shell originaria, molto usata nella programmazione sistemistica –C-shell (csh): la shell di Berkeley, ottima per l'uso interattivo e per gli script non di sistema –Korn shell (ksh): la Bourne shell riscritta dall'AT&T per assomigliare di più alla C-shell –Tahoe C-shell (tcsh): dal progetto Tahoe, una C-shell migliorata –Bourne again shell (bash)

6 Sistemi Operativi - Shell 6 File di configurazione della shell Allavviamento ogni shell cerca nel direttorio di login i propri file di configurazione: –.bash_profile : comandi eseguiti al login –.bashrc : comandi eseguiti allavviamento csh e tcsh usano anche il file.logout per eseguire comandi al termine della sessione

7 Sistemi Operativi - Shell 7 Caratteristiche della shell Completion Gestione di espressioni regolari Redirezione dell'I/O Pipeline History Aliasing Gestione dei processi Scripting Variabili

8 Sistemi Operativi - Shell 8 Caratteristiche della shell Completion Gestione di espressioni regolari Redirezione dell'I/O Pipeline History Aliasing Gestione dei processi Scripting Variabili

9 Sistemi Operativi - Shell 9 Completion Espansione dei nomi di file con il carattere memorizzato nella variabile filec (spesso TAB o ESC) –per i nomi di file eseguibili la shell cerca nei direttori del path –per file generici, la shell espande nomi di file nel direttorio corrente

10 Sistemi Operativi - Shell 10 Caratteristiche della shell Completion Gestione di espressioni regolari Redirezione dell'I/O Pipeline History Aliasing Gestione dei processi Scripting Variabili

11 Sistemi Operativi - Shell 11 Espressioni regolari La shell espande automaticamente le espressioni regolari Le espressioni regolari vengono sostituite con la lista dei nomi di file che soddisfano il pattern

12 Sistemi Operativi - Shell 12 Espressioni regolari (cont) > ls file1 file2 rc.conf myconf.txt > ls -l file* Shell > ls -l file1 file2

13 Sistemi Operativi - Shell 13 Espressioni regolari (cont) > ls file1 file2 rc.conf myconf.txt > ls -l *conf* Shell > ls -l rc.conf myconf.txt

14 Sistemi Operativi - Shell 14 Espressioni regolari (cont) > ls file1 file2 rc.conf myconf.txt > ls -l *conf* Shell > ls -l *conf*

15 Sistemi Operativi - Shell 15 Caratteristiche della shell Completion Gestione di espressioni regolari Redirezione dell'I/O Pipeline History Aliasing Gestione dei processi Scripting Variabili

16 Sistemi Operativi - Shell 16 processo stdinstdout stderr Ogni processo ha tre canali di I/O standard: Redirezione dell'I/O Ogni canale può essere ridiretto: –su file –su un altro canale tramite pipe

17 Sistemi Operativi - Shell 17 Ridirezione dell'I/O da/su file comando < file stdin da file comando > file stdout in file (cancellato se esiste) comando >> file stdout accodato a file comando < file (bash) stderr+stdout in file comando 2> file (bash) stderr in file (1 è stdout)

18 Sistemi Operativi - Shell 18 Caratteristiche della shell Completion Gestione di espressioni regolari Redirezione dell'I/O Pipeline History Aliasing Gestione dei processi Scripting Variabili

19 Sistemi Operativi - Shell 19 Definizione della pipe Il collegamento stdout-stdin si chiama pipe e crea in memoria un canale diretto tra i due processi proc stdin stdout stderr proc stdin stdout stderr

20 Sistemi Operativi - Shell 20 Redirezione dell'I/O tramite pipe comando1 | comando2 –pipe tra i due comandi Esempi: –ls -la | more

21 Sistemi Operativi - Shell 21 Caratteristiche della shell Completion Gestione di espressioni regolari Redirezione dell'I/O Pipeline History Aliasing Gestione dei processi Scripting Variabili

22 Sistemi Operativi - Shell 22 History : mostra i comandi eseguiti precedentemente !n: esegue il comando numero n nel buffer !-n: esegue l'n-ultimo comando !$: l'ultimo parametro del comando precedente !*: tutti i parametri del comando precedente !stringa: l'ultimo comando che inizia con stringa !!:s/vecchio/nuovo: rimpiazza le occorrenze di vecchio nell'ultimo comando con nuovo

23 Sistemi Operativi - Shell 23 Caratteristiche della shell Completion Gestione di espressioni regolari Redirezione dell'I/O Pipeline History Aliasing Gestione dei processi Scripting Variabili

24 Sistemi Operativi - Shell 24 Aliasing E possibile definire dei comandi con nuovi nomi (alias), tipicamente più semplici alias Elenca gli alias definiti alias nome valore (C-shell) Definisce un alias (racchiudere valore tra apici se contiene degli spazi) unalias nome Cancella un alias

25 Sistemi Operativi - Shell 25 Caratteristiche della shell Completion Gestione di espressioni regolari Redirezione dell'I/O Pipeline History Aliasing Gestione dei processi Scripting Variabili

26 Sistemi Operativi - Shell 26 I processi Linux è un sistema operativo multitasking E possibile eseguire contemporaneamente più processi Dalla shell è possibile eseguire i comandi in due modalità: –batch: lutente può eseguire un nuovo comando solo dopo la terminazione del primo processo –concorrente: lutente può eseguire un nuovo comando anche se il primo non è concluso

27 Sistemi Operativi - Shell 27 Esecuzione batch comando1 comando2 > comando1 > comando2

28 Sistemi Operativi - Shell 28 Esecuzione concorrente comando1 comando2 > comando1 & > comando2

29 Sistemi Operativi - Shell 29 Interruzione di processi comando1 CTRL-Z fg

30 Sistemi Operativi - Shell 30 Stato dei processi Run fg Run bg Sospeso Shell comando comando & fg bg CTRL-Z

31 Sistemi Operativi - Shell 31 Comandi per gestire i processi jobs elenca i job bg %job-idporta il job in background fg %job-id porta il job in foreground

32 Sistemi Operativi - Shell 32 I processi A ogni processo sono associati: –pidprocess id –uiduser id di chi ha eseguito il processo –stimeistante in cui il processo è partito –... Il comando ps mostra lelenco dei processi

33 Sistemi Operativi - Shell 33 % ps -l S UID PID PPID TTY TIME COMD R ttys0 0:00 ps S ttys0 0:00 telnetd S ttys0 0:00 -csh Il comando ps Il comando ps permette di elencare i processi ed il loro stato –-eelenca tutti i processi –-felenco in formato pieno –-lelenco in formato lungo

34 Sistemi Operativi - Shell 34 % ps -l S UID PID PPID TTY TIME COMD R ttys0 0:00 ps S ttys0 0:00 telnetd S ttys0 0:00 -csh Il comando ps Il comando ps permette di elencare i processi ed il loro stato –-eelenca tutti i processi –-felenco in formato pieno –-lelenco in formato lungo Stato: Rin esecuzione Tbloccato Ssleeping Zzombie

35 Sistemi Operativi - Shell 35 % ps -l S UID PID PPID TTY TIME COMD R ttys0 0:00 ps S ttys0 0:00 telnetd S ttys0 0:00 -csh Il comando ps Il comando ps permette di elencare i processi ed il loro stato –-eelenca tutti i processi –-felenco in formato pieno –-lelenco in formato lungo UID dellutente che ha eseguito il comando

36 Sistemi Operativi - Shell 36 % ps -l S UID PID PPID TTY TIME COMD R ttys0 0:00 ps S ttys0 0:00 telnetd S ttys0 0:00 -csh Il comando ps Il comando ps permette di elencare i processi ed il loro stato –-eelenca tutti i processi –-felenco in formato pieno –-lelenco in formato lungo Process ID

37 Sistemi Operativi - Shell 37 % ps -l S UID PID PPID TTY TIME COMD R ttys0 0:00 ps S ttys0 0:00 telnetd S ttys0 0:00 -csh Il comando ps Il comando ps permette di elencare i processi ed il loro stato –-eelenca tutti i processi –-felenco in formato pieno –-lelenco in formato lungo Parent PID

38 Sistemi Operativi - Shell 38 % ps -l S UID PID PPID TTY TIME COMD R ttys0 0:00 ps S ttys0 0:00 telnetd S ttys0 0:00 -csh Il comando ps Il comando ps permette di elencare i processi ed il loro stato –-eelenca tutti i processi –-felenco in formato pieno –-lelenco in formato lungo Console

39 Sistemi Operativi - Shell 39 % ps -l S UID PID PPID TTY TIME COMD R ttys0 0:00 ps S ttys0 0:00 telnetd S ttys0 0:00 -csh Il comando ps Il comando ps permette di elencare i processi ed il loro stato –-eelenca tutti i processi –-felenco in formato pieno –-lelenco in formato lungo Tempo complessivo dedicato al processo

40 Sistemi Operativi - Shell 40 % ps -l S UID PID PPID TTY TIME COMD R ttys0 0:00 ps S ttys0 0:00 telnetd S ttys0 0:00 -csh Il comando ps Il comando ps permette di elencare i processi ed il loro stato –-eelenca tutti i processi –-felenco in formato pieno –-lelenco in formato lungo Comando

41 Sistemi Operativi - Shell 41 Terminazione di un processo E possibile terminare forzatamente un processo con i comandi: –kill -9 pid –kill -9 %job-id

42 Sistemi Operativi - Shell 42 Gestione temporizzata dei processi at time filename –esegue il programma all'ora specificata at -l –elenca i job sottomessi at -r [jobname] –rimuove dalla coda il job

43 Sistemi Operativi - Shell 43 Caratteristiche della shell Completion Gestione di espressioni regolari Redirezione dell'I/O Pipeline History Aliasing Gestione dei processi Scripting Variabili

44 Sistemi Operativi - Shell 44 File di comandi (script) E possibile memorizzare in un file una serie di comandi, eseguibili richiamando il file stesso Esecuzione indiretta: –source Esecuzione diretta eseguendo lo script –è necessario che abbia il permesso di esecuzione –la prima riga del file inizia con #! seguita dal nome (con il path assoluto) della shell con cui si devono eseguire i comandi

45 Sistemi Operativi - Shell 45 Script di shell #!/bin/csh date who

46 Sistemi Operativi - Shell 46 Caratteristiche della shell Completion Gestione di espressioni regolari Redirezione dell'I/O Pipeline History Aliasing Gestione dei processi Scripting Variabili

47 Sistemi Operativi - Shell 47 Bash: variabili La shell mantiene un insieme di variabili per la personalizzazione dell'ambiente export variabile='valore' –assegna un valore alla variabile (senza spazi) –export serve per rendere la variabile accessibile ad altri processi echo $variabile –visualizza il valore della variabile indicata unset variabile

48 Sistemi Operativi - Shell 48 Variabili di shell Variabili più utili: –HOME = direttorio di login –PATH = direttori in cui cercare i comandi (in parentesi, separati da spazi) –PROMPT_COMMAND = il prompt dei comandi –PWD = il direttorio corrente –? = risultato dell'ultimo comando


Scaricare ppt "Sistemi Operativi - Shell 1 Il sistema operativo LINUX La shell Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica."

Presentazioni simili


Annunci Google