Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoCarlo Galli Modificato 10 anni fa
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 <<HERE stdin da here document text HERE 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 2103 1728 1676 ttys0 0:00 ps S 0 1675 110 ttys0 0:00 telnetd S 2103 1676 1675 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 2103 1728 1676 ttys0 0:00 ps S 0 1675 110 ttys0 0:00 telnetd S 2103 1676 1675 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 2103 1728 1676 ttys0 0:00 ps S 0 1675 110 ttys0 0:00 telnetd S 2103 1676 1675 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 2103 1728 1676 ttys0 0:00 ps S 0 1675 110 ttys0 0:00 telnetd S 2103 1676 1675 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 2103 1728 1676 ttys0 0:00 ps S 0 1675 110 ttys0 0:00 telnetd S 2103 1676 1675 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 2103 1728 1676 ttys0 0:00 ps S 0 1675 110 ttys0 0:00 telnetd S 2103 1676 1675 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 2103 1728 1676 ttys0 0:00 ps S 0 1675 110 ttys0 0:00 telnetd S 2103 1676 1675 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 2103 1728 1676 ttys0 0:00 ps S 0 1675 110 ttys0 0:00 telnetd S 2103 1676 1675 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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.