Post on 18-Feb-2019
transcript
Sistemi Operativi
Sistemi Operativi
Esercitazione 1: Introduzione a Linux
Davide Ariu Igino Coronadavide.ariu@diee.unica.it igino.corona@diee.unica.it
02 Ottobre 2007
Sistemi Operativi
History
I UNIX nasce nel 1969 come progetto di ricerca presso ilaboratori Bell della AT&T.
I Nel 1976 è stato messo gratuitamente a disposizionediventando così la base di molti corsi sui sistemi operativi e dinumerosi progetti di ricerca universitaria.
I Alla �ne degli anni '70 la AT&T fonda il proprio gruppo disupporto UNIX con lo scopo di far diventare il sistema in unprodotto commerciale. Il lavoro svolto nell'ambito di questogruppo di ricerca, è con�uito nelle release System III eSystem V che hanno avuto un grosso impatto sullarealizzazione dei sistemi moderni.
Sistemi Operativi
History
I UNIX nasce nel 1969 come progetto di ricerca presso ilaboratori Bell della AT&T.
I Nel 1976 è stato messo gratuitamente a disposizionediventando così la base di molti corsi sui sistemi operativi e dinumerosi progetti di ricerca universitaria.
I Alla �ne degli anni '70 la AT&T fonda il proprio gruppo disupporto UNIX con lo scopo di far diventare il sistema in unprodotto commerciale. Il lavoro svolto nell'ambito di questogruppo di ricerca, è con�uito nelle release System III eSystem V che hanno avuto un grosso impatto sullarealizzazione dei sistemi moderni.
Sistemi Operativi
History
I UNIX nasce nel 1969 come progetto di ricerca presso ilaboratori Bell della AT&T.
I Nel 1976 è stato messo gratuitamente a disposizionediventando così la base di molti corsi sui sistemi operativi e dinumerosi progetti di ricerca universitaria.
I Alla �ne degli anni '70 la AT&T fonda il proprio gruppo disupporto UNIX con lo scopo di far diventare il sistema in unprodotto commerciale. Il lavoro svolto nell'ambito di questogruppo di ricerca, è con�uito nelle release System III eSystem V che hanno avuto un grosso impatto sullarealizzazione dei sistemi moderni.
Sistemi Operativi
History
I Nel 1977 la AT&T rilascia all'Università di Berkeley
(California) la licenza sul codice di UNIX. Diverse distribuzionicome FreeBSD, OpenBSD e NetBSD hanno tutte comeprogenitore 4.4BSD-Lite sviluppato dal laboratorio di ricercaGSRG di Berkeley prima della sua chiusura.
I BSD e System V rappresentano le principali basi a partiredalle quali sono stati sviluppati la maggior parte delle versionidi UNIX.
I Linux nasce nel 1991 grazie a �Linus Torvalds�.
Sistemi Operativi
History
I Nel 1977 la AT&T rilascia all'Università di Berkeley
(California) la licenza sul codice di UNIX. Diverse distribuzionicome FreeBSD, OpenBSD e NetBSD hanno tutte comeprogenitore 4.4BSD-Lite sviluppato dal laboratorio di ricercaGSRG di Berkeley prima della sua chiusura.
I BSD e System V rappresentano le principali basi a partiredalle quali sono stati sviluppati la maggior parte delle versionidi UNIX.
I Linux nasce nel 1991 grazie a �Linus Torvalds�.
Sistemi Operativi
History
I Nel 1977 la AT&T rilascia all'Università di Berkeley
(California) la licenza sul codice di UNIX. Diverse distribuzionicome FreeBSD, OpenBSD e NetBSD hanno tutte comeprogenitore 4.4BSD-Lite sviluppato dal laboratorio di ricercaGSRG di Berkeley prima della sua chiusura.
I BSD e System V rappresentano le principali basi a partiredalle quali sono stati sviluppati la maggior parte delle versionidi UNIX.
I Linux nasce nel 1991 grazie a �Linus Torvalds�.
Sistemi Operativi
History
Sistemi Operativi
La shell di LINUX
Cos'è? A cosa serve?
Nel descrivere la famiglia di sistemi operativi Linux, è utiledistinguere alcuni elementi:
I Il Kernel rappresenta la base del sistema operativo. E' laparte del sistema che si occupa di interagire direttamente conl'hardware della macchina.
I Un Sistema Linux di base è un ambiente standard per leapplicazioni e la programmazione da parte dell'utente (nonesistono tuttavia delle funzionalità standard).
I Una distribuzione Linux include i componenti base delsistema Linux, oltre a una serie di tool di amministrazioneaventi lo scopo di sempli�care l'installazione, gli aggiornamenti,e la gestione dell'installazione e della disinstallazione sulsistema di altri pacchetti. Una moderna distribuzionecomprende solitamente dei tool per la gestione del �le system,la creazione di account di utenti, l'amministrazione di rete, etc.
Sistemi Operativi
La shell di LINUX
Cos'è? A cosa serve?
I La shell e' un interprete di comandi. Un interprete di comandifa da tramite tra utente e sistema operativo: la shell legge,interpreta e esegue i comandi inseriti dall'utente e ne presental' output al termine dell'esecuzione
I La tradizionale shell di linux è un interprete con interfacciautente di tipo testuale, cioè nella quale l'interazione tra utentee sistema operativo avviene attraverso stringhe di caratteri
Sistemi Operativi
La shell di LINUX
Cos'è? A cosa serve?
I La shell e' un interprete di comandi. Un interprete di comandifa da tramite tra utente e sistema operativo: la shell legge,interpreta e esegue i comandi inseriti dall'utente e ne presental' output al termine dell'esecuzione
I La tradizionale shell di linux è un interprete con interfacciautente di tipo testuale, cioè nella quale l'interazione tra utentee sistema operativo avviene attraverso stringhe di caratteri
Sistemi Operativi
La shell di LINUX
Cos'è? A cosa serve?
I Molti sistemi basati su LINUX possiedono un'interfacciagra�ca (GUI): X Window System (display server e applicazioneclient) è lo standard de facto
I L'utilizzo della shell ha diversi vantaggi:I Più veloce (non si deve usare il mouse. . . )I Più potente (attraverso gli script si possono automatizzare
delle sequenze di operazioni)I Le applicazioni dotate di GUI spesso sono solo degli �involucri�
di applicazioni utilizzabili da riga di comando
I La shell è essa stessa una applicazione. Esistono diverse shell,che mettono a disposizione del programmatore funzionalitàdiverse (sh, ksh, csh, etc. bash è la più famosa ed è previstadallo standard POSIX (Portable Operating System Interfacefor uniX))
Sistemi Operativi
La shell di LINUX
Cos'è? A cosa serve?
I Molti sistemi basati su LINUX possiedono un'interfacciagra�ca (GUI): X Window System (display server e applicazioneclient) è lo standard de facto
I L'utilizzo della shell ha diversi vantaggi:I Più veloce (non si deve usare il mouse. . . )I Più potente (attraverso gli script si possono automatizzare
delle sequenze di operazioni)I Le applicazioni dotate di GUI spesso sono solo degli �involucri�
di applicazioni utilizzabili da riga di comando
I La shell è essa stessa una applicazione. Esistono diverse shell,che mettono a disposizione del programmatore funzionalitàdiverse (sh, ksh, csh, etc. bash è la più famosa ed è previstadallo standard POSIX (Portable Operating System Interfacefor uniX))
Sistemi Operativi
La shell di LINUX
Cos'è? A cosa serve?
I Molti sistemi basati su LINUX possiedono un'interfacciagra�ca (GUI): X Window System (display server e applicazioneclient) è lo standard de facto
I L'utilizzo della shell ha diversi vantaggi:I Più veloce (non si deve usare il mouse. . . )I Più potente (attraverso gli script si possono automatizzare
delle sequenze di operazioni)I Le applicazioni dotate di GUI spesso sono solo degli �involucri�
di applicazioni utilizzabili da riga di comando
I La shell è essa stessa una applicazione. Esistono diverse shell,che mettono a disposizione del programmatore funzionalitàdiverse (sh, ksh, csh, etc. bash è la più famosa ed è previstadallo standard POSIX (Portable Operating System Interfacefor uniX))
Sistemi Operativi
La shell di LINUX
La shell bash
I La shell inizializza se stessa, poi emette un carattere di prompt(attesa) (ad es., $, #) e attende che l'utente inserisca unastringa da tastiera seguita da �invio�
I Esempio. utente@host:/home$
I I comandi digitati dall'utente compaiono dopo il simbolo $, icui caratteri vengono mostrati in tempo reale.
I La shell estrae dalla stringa la prima parolaI Suppone che sia un programma e cerca di eseguirloI Se esiste, si autosospende per eseguire il programmaI Terminato il programma, passa ad eseguire il comando
successivo
I E' possibile lavorare su più terminali virtuali. La combinazionedi tasti �Ctrl+Alt+Fx� (es. Ctrl+Alt+F3) consente di passareda un terminale all'altro
Sistemi Operativi
La shell di LINUX
La shell bash
I La shell inizializza se stessa, poi emette un carattere di prompt(attesa) (ad es., $, #) e attende che l'utente inserisca unastringa da tastiera seguita da �invio�
I Esempio. utente@host:/home$
I I comandi digitati dall'utente compaiono dopo il simbolo $, icui caratteri vengono mostrati in tempo reale.
I La shell estrae dalla stringa la prima parolaI Suppone che sia un programma e cerca di eseguirloI Se esiste, si autosospende per eseguire il programmaI Terminato il programma, passa ad eseguire il comando
successivo
I E' possibile lavorare su più terminali virtuali. La combinazionedi tasti �Ctrl+Alt+Fx� (es. Ctrl+Alt+F3) consente di passareda un terminale all'altro
Sistemi Operativi
La shell di LINUX
La shell bash
I La shell inizializza se stessa, poi emette un carattere di prompt(attesa) (ad es., $, #) e attende che l'utente inserisca unastringa da tastiera seguita da �invio�
I Esempio. utente@host:/home$
I I comandi digitati dall'utente compaiono dopo il simbolo $, icui caratteri vengono mostrati in tempo reale.
I La shell estrae dalla stringa la prima parolaI Suppone che sia un programma e cerca di eseguirloI Se esiste, si autosospende per eseguire il programmaI Terminato il programma, passa ad eseguire il comando
successivo
I E' possibile lavorare su più terminali virtuali. La combinazionedi tasti �Ctrl+Alt+Fx� (es. Ctrl+Alt+F3) consente di passareda un terminale all'altro
Sistemi Operativi
La shell di LINUX
La shell bash
I La shell inizializza se stessa, poi emette un carattere di prompt(attesa) (ad es., $, #) e attende che l'utente inserisca unastringa da tastiera seguita da �invio�
I Esempio. utente@host:/home$
I I comandi digitati dall'utente compaiono dopo il simbolo $, icui caratteri vengono mostrati in tempo reale.
I La shell estrae dalla stringa la prima parolaI Suppone che sia un programma e cerca di eseguirloI Se esiste, si autosospende per eseguire il programmaI Terminato il programma, passa ad eseguire il comando
successivo
I E' possibile lavorare su più terminali virtuali. La combinazionedi tasti �Ctrl+Alt+Fx� (es. Ctrl+Alt+F3) consente di passareda un terminale all'altro
Sistemi Operativi
La shell di LINUX
Comandi
I I comandi possono avere degli argomenti
I Es. Il comando di copia cpcp /home/ariu/sorgente.txt
Desktop/destinazione.txt
Copia il �le sorgente.txt sul Desktop chiamandolodestinazione.txt
I Possono prendere in ingresso delle opzioni (�ag) checonsentono di personalizzarne il comportamento
I Es. Il comando head
Di default il comando head file.txt consente di stampare leprime 10 righe di file.txt. Il comando head -20 �le.txtconsente di stampare le prime 20 righe di �le.txt. Il simbolo
�-� comunica alla shell che le stiamo passando in
ingresso un �ag e non un argomento.
Sistemi Operativi
La shell di LINUX
Comandi
I I comandi possono avere degli argomenti
I Es. Il comando di copia cpcp /home/ariu/sorgente.txt
Desktop/destinazione.txt
Copia il �le sorgente.txt sul Desktop chiamandolodestinazione.txt
I Possono prendere in ingresso delle opzioni (�ag) checonsentono di personalizzarne il comportamento
I Es. Il comando head
Di default il comando head file.txt consente di stampare leprime 10 righe di file.txt. Il comando head -20 �le.txtconsente di stampare le prime 20 righe di �le.txt. Il simbolo
�-� comunica alla shell che le stiamo passando in
ingresso un �ag e non un argomento.
Sistemi Operativi
La shell di LINUX
Comandi
I I comandi possono avere degli argomenti
I Es. Il comando di copia cpcp /home/ariu/sorgente.txt
Desktop/destinazione.txt
Copia il �le sorgente.txt sul Desktop chiamandolodestinazione.txt
I Possono prendere in ingresso delle opzioni (�ag) checonsentono di personalizzarne il comportamento
I Es. Il comando head
Di default il comando head file.txt consente di stampare leprime 10 righe di file.txt. Il comando head -20 �le.txtconsente di stampare le prime 20 righe di �le.txt. Il simbolo
�-� comunica alla shell che le stiamo passando in
ingresso un �ag e non un argomento.
Sistemi Operativi
La shell di LINUX
Comandi
I I comandi possono avere degli argomenti
I Es. Il comando di copia cpcp /home/ariu/sorgente.txt
Desktop/destinazione.txt
Copia il �le sorgente.txt sul Desktop chiamandolodestinazione.txt
I Possono prendere in ingresso delle opzioni (�ag) checonsentono di personalizzarne il comportamento
I Es. Il comando head
Di default il comando head file.txt consente di stampare leprime 10 righe di file.txt. Il comando head -20 �le.txtconsente di stampare le prime 20 righe di �le.txt. Il simbolo
�-� comunica alla shell che le stiamo passando in
ingresso un �ag e non un argomento.
Sistemi Operativi
Std in, Std out, Std err
Quando la shell o qualsiasi altro programma vanno in
esecuzione, hanno accesso a tre �le
I Standard input (lettura)
I Standard output (scrittura)
I Standard error (messaggi di errore)
Di solito questi tre �le sono associati al terminale
I Standard input → tastiera
I Standard output → video
I Standard error → video
Sistemi Operativi
Std in, Std out, Std err
Redirezione
Redirezione degli Standard Input, Output e Error
I < per ridirigere lo standard input
I > per ridirigere lo standard output
I 2 > per ridirigere lo standard error
I Esempio. sort < in > out
Il comando sort legge l'input dal �le in e scrive l'output sul�le out
I ls -l > out.txt 2> err.txt
Scrive l'output prodotto dal comando ls su out.txt e gli errorisul �le err.txt
I ls -l &> out_and_err.txt
Scrive l'output prodotto dal comando ls e gli errori suout_and_err.txt
Sistemi Operativi
Std in, Std out, Std err
Redirezione
Redirezione degli Standard Input, Output e Error
I < per ridirigere lo standard input
I > per ridirigere lo standard output
I 2 > per ridirigere lo standard error
I Esempio. sort < in > out
Il comando sort legge l'input dal �le in e scrive l'output sul�le out
I ls -l > out.txt 2> err.txt
Scrive l'output prodotto dal comando ls su out.txt e gli errorisul �le err.txt
I ls -l &> out_and_err.txt
Scrive l'output prodotto dal comando ls e gli errori suout_and_err.txt
Sistemi Operativi
Std in, Std out, Std err
Redirezione
Redirezione degli Standard Input, Output e Error
I < per ridirigere lo standard input
I > per ridirigere lo standard output
I 2 > per ridirigere lo standard error
I Esempio. sort < in > out
Il comando sort legge l'input dal �le in e scrive l'output sul�le out
I ls -l > out.txt 2> err.txt
Scrive l'output prodotto dal comando ls su out.txt e gli errorisul �le err.txt
I ls -l &> out_and_err.txt
Scrive l'output prodotto dal comando ls e gli errori suout_and_err.txt
Sistemi Operativi
Manuale
Mostra le informazioni di dettaglio relative ad un comando:
utilità, sintassi, opzioni, etc.
I Sintassi: man comando
I Esempio: man cp
Fornisce tutte le informazioni relative al comando di copia �lecp
I N.B. il manuale si chiude cliccando il carattere �q� (quit)Maggiori informazioni circa tutti i comandi possono essereottenute tramite l'utilizzo di man.
Sistemi Operativi
Manuale
Programmi di utilità di LINUX
Programmi di utilità di LINUX
I Comandi di gestione �le e directory
I Filtri (es. sort, grep)
I Compilatori e strumenti di sviluppo (es. gcc, g++, make)
I Elaborazione testi (es. vi, emacs)
I Amministrazione di sistema (es. fdisk, mkfs, . . . )
Lo standard POSIX ha speci�cato la sintassi e la semantica di uncentinaio di programmi
Sistemi Operativi
Manuale
Suggerimenti
I Se volete scrivere un comando o il nome di una programmavelocemente, ricorrete all'autocompletamento tramite tasto�tab�.
I Esempio. fd + �tab�→ fdisk)
I La shell conserva la storia dei comandi eseguiti: per navigarebasta premere i tasti �Su�e �Giu�
I Utilizzate sempre man per conoscere le esatte opzioni per uncerto comando
Sistemi Operativi
Manuale
Suggerimenti
I Se volete scrivere un comando o il nome di una programmavelocemente, ricorrete all'autocompletamento tramite tasto�tab�.
I Esempio. fd + �tab�→ fdisk)
I La shell conserva la storia dei comandi eseguiti: per navigarebasta premere i tasti �Su�e �Giu�
I Utilizzate sempre man per conoscere le esatte opzioni per uncerto comando
Sistemi Operativi
Manuale
Suggerimenti
I Se volete scrivere un comando o il nome di una programmavelocemente, ricorrete all'autocompletamento tramite tasto�tab�.
I Esempio. fd + �tab�→ fdisk)
I La shell conserva la storia dei comandi eseguiti: per navigarebasta premere i tasti �Su�e �Giu�
I Utilizzate sempre man per conoscere le esatte opzioni per uncerto comando
Sistemi Operativi
Manuale
Suggerimenti
I Se volete scrivere un comando o il nome di una programmavelocemente, ricorrete all'autocompletamento tramite tasto�tab�.
I Esempio. fd + �tab�→ fdisk)
I La shell conserva la storia dei comandi eseguiti: per navigarebasta premere i tasti �Su�e �Giu�
I Utilizzate sempre man per conoscere le esatte opzioni per uncerto comando
Sistemi Operativi
Manuale
Shutdown
Si, ma ora vorrei spegnere il PC!
$ shutdown -h now