CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di...

55
© 2001 - Carlo Brandolese © 2001 - Carlo Brandolese CEFRIEL CEFRIEL Consorzio per la Formazione e la Consorzio per la Formazione e la Ricerca Ricerca in Ingegneria dell’Informazione in Ingegneria dell’Informazione Politecnico Politecnico di Milano di Milano Il Sistema Operativo UNIX Il Sistema Operativo UNIX Prima Parte Prima Parte Introduzione, Shell, File system e Processi Introduzione, Shell, File system e Processi Docente: Docente: Carlo Brandolese Carlo Brandolese Politecnico di Milano Politecnico di Milano [email protected] [email protected] www.elet.polimi.it/~brandole www.elet.polimi.it/~brandole

Transcript of CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di...

Page 1: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

© 2001 - Carlo Brandolese© 2001 - Carlo Brandolese

CEFRIELCEFRIELConsorzio per la Formazione e la RicercaConsorzio per la Formazione e la Ricercain Ingegneria dell’Informazionein Ingegneria dell’Informazione

PolitecnicoPolitecnicodi Milanodi Milano

Il Sistema Operativo UNIXIl Sistema Operativo UNIX

Prima PartePrima Parte

Introduzione, Shell, File system e ProcessiIntroduzione, Shell, File system e Processi

Docente:Docente:

Carlo BrandoleseCarlo Brandolese

Politecnico di MilanoPolitecnico di [email protected]@elet.polimi.it

www.elet.polimi.it/~brandolewww.elet.polimi.it/~brandole

Page 2: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 22 - -

SommarioSommario

Prima Parte1. Introduzione2. La shell

sh

Variabili di ambienteComandi

3. Il File SystemIntroduzioneComandi

4. ProcessiIntroduzioneComandi

Seconda Parte5. Utilities

FiltriArchiviazioneL’editor vi

6. ScriptingIntroduzioneArgomentiVariabiliRedirezione e pipeliningComandiFunzoniComandi avanzati

Page 3: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 33 - -

IntroduzioneIntroduzione

Prima Parte1. Introduzione2. La shell

sh

Variabili di ambienteComandi

3. Il File SystemIntroduzioneComandi

4. ProcessiIntroduzioneComandi

Page 4: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 44 - -

La struttura a stratiLa struttura a strati

Il sistema operativo UNIX è organizzato a strati:

Applicazioni utente

Shell

File system

Periferiche virtuali

Kernel

Hardware

Punto di ingresso al sistema

Livello applicativo

Visione logica dei dispositivi di Memorizzazioe di massa

Condivisione delle risorse

Nucleo del sistema operativo

Supporto hardware

Page 5: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 55 - -

Accesso al sistemaAccesso al sistema

Per accedere ad un sistema è necessario un accountUn utente è identificato tramite:

usernamegrouppassword

Le informazioni relative agli utenti sono raccolte nel file /etc/passwd

root:aG4dhH1z:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:daemon:x:2:2:daemon:/sbin:adm:GL16gtWn:3:4:adm:/var/adm:lp:x:4:7:lp:/var/spool/lpd:mail:x:8:12:mail:/var/spool/mail:news:x:9:13:news:/var/spool/news:...

Page 6: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 66 - -

LoginLogin

L’ingresso ad un sistema viene detto loginUna tipica sessione di login:

La password non viene visualizzata La stringa brandole@apollo>

Viene detta shell promptE’ definibile dall’utente

I comandi digitati sono interpretati dalla shell

apollo console login: brandolepassword: *******

Last login: Tue Jun 20 14:39:00 from apollo.cefriel.itSun Microsystems Inc. SunOS 5.5.1 Generic May 1996brandole@apollo>

Page 7: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 77 - -

ComandiComandi

passwd [user]Consente all’utente corrente di modificare la propria password (i dati sono salvati nel file /etc/passwd)

su [-l] userSimula la login di un utente differente rispetto a quello corrente

whoRiporta la lista degli utenti connessi alla macchina

exitAbbandona la shell correnteL’utente rimane autenticato sul sistema

Page 8: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 88 - -

ComandiComandi

logoutAbbandona il sistema e termina la sessione

useradd [options] loginCrea un nuovo utente in base alle optionsIl comando aggiunge una linea al file /etc/passwd

userdel [-r] loginElimina un account dal sistema

groupadd [-g gid] groupCrea un nuovo gruppo di utenti

groupdel groupElimina un gruppo dal sistema

Page 9: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 99 - -

La shellLa shell

Prima Parte1. Introduzione2. La shell

sh

Variabili di ambienteComandi

3. Il File SystemIntroduzioneComandi

4. ProcessiIntroduzioneComandi

Page 10: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1010 - -

La shellLa shell

La shell è l’interfaccia verso il sistema operativoOgni shell definisce tre file standard per gestire le operaioni di ingresso/uscita

stdin: standard input (la tastiera)stdout: standard output (il terminale corrente)stderr: standard error (il terminale corrente)

I comandi inviati alla shell possono essere:Interni: Vengono eseguti nella shell corrente e

possono modificare lo stato della shellEsterni: Vengono eseguiti in una shell differente e

non possono modificare lo stato della shell

corrente

Page 11: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1111 - -

La shellLa shell

La shell è l’interprete dei comandi UNIXLa shell può eseguire i comandi in due modi:

Interattivo: comandi immessi dall’utente al promptBatch: comandi raccolti in uno script file

Esistono diversi tipi di shellsh, bash La shell standard. È su tutti i sistemiksh Korn shellcsh, tcsh C-like shell

Tutte le shell forniscono circa le stesse funzionalitàLe diverse shell differiscono principalmente per quanto riguarda la sintassi

Page 12: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1212 - -

/bin/sh:/bin/sh: formato comandi formato comandi

Un comando ha la seguente sintassi generale:

cmd [-opt] [file[...]] [--special] [;]

I vari campi indicano:cmd Nome del comando-opt Opzioni standardfile[...] Lista di nomi di file separata da spazi--special Opzioni speciali (long options); Separa i comandi di una lista

I comandi di una lista semplice sono eseguiti in sequenza

Page 13: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1313 - -

/bin/sh:/bin/sh: nomi di file nomi di file

Indicati esplicitamente oppure mediante globbingIl globbing si basa su alcuni caratteri speciali combinati a formare un pattern:

~/ Home directory dell’utente corrente* Sequenza di zero o più caratteri qualsiasi? Singolo carattere qualsiasi[s-e] I caratteri compresi tra s ed e

Il pattern è espanso nei nomi ad esso sovrapponibiliEsempi:

*.c File con estensione .cfoo[0-9] File con nome foo seguito da una cifra

Page 14: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1414 - -

/bin/sh: /bin/sh: documentazionedocumentazione

UNIX fornisce una manualistica sui comandiI manuali sono accessibili dalla shell in modo testoman [-s n] cmd

-s n Sezione dei manuali cui fare riferimentocmd Comando di cui mostrare il manuale

brandole@apollo> man useraddMaintenance Commands useradd(1M)NAME useradd - administer a new user login on the systemSYNOPSIS useradd [-c comment] [-d dir] [-e expire] [-f inactive] [-g group] [-G group [, group ...]] [-m [-k skel_dir]] [-u uid [-o]] [-s shell] loginDESCRIPTION useradd adds a new user entry to the /etc/passwd and /etc/shadow files. It also creates supplementary group memberships for the user (-G option) and creates the...

Page 15: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1515 - -

/bin/sh: /bin/sh: configurazioneconfigurazione

La shell è parzialmente configurabileTramite le opzioni della linea di comandoTramite il comando set

Può essere associato un profile o configurazione ad ogni utente tramite opportuni script file

.cshrc, .tcshrc

.login, .logout

E’ possibile definire nomi abbreviati o alternativi per i comandi standard:

AliasingUnaliasing

Page 16: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1616 - -

/bin/sh: /bin/sh: configurazioneconfigurazione

E’ possibile raccogliere sequenze di comandi in uno scriptUno script può essere considerato alla pari di un nuovo comando UNIXGli script possono essere sviluppati in linguaggi diversi da sh, ad esempio:

awk Elaborazione testised Elaborazioni testiTcl/Tk Generico, sviluppo interfaccie graficheperl Genericopython Generico

Page 17: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1717 - -

/bin/sh: /bin/sh: Variabili di Variabili di ambienteambiente

Le varibili di ambienteContengono informazioni relative alla sessione correnteDeterminano alcuni aspetti della configurazone dell’ambiente

Identità:USER Username dell’utenteGROUP Grouppo di appartenenza dell’utente

Host:HOST Nome della macchina correnteREMOTEHOST Nome della macchina remotaDISPLAY: Nome del display in uso

Page 18: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1818 - -

/bin/sh: /bin/sh: Variabili di Variabili di ambienteambiente

Path:HOME Home directory dell’utentePATH Lista dei path per gli eseguibiliMANPATH Lista dei path delle pagine manLD_LIBRARY_PATH Lista di ricerca delle libreriePWD Directory corrente

Shell:SHELL Tipo della shell correnteSHLVL Livello della shell correnteTERM Tipo di terminale

Page 19: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 1919 - -

sh [–x –e] –c cmd | scrEsegue l’interprete dei comandiAlcune opzioni possono essere impostate tramite set

setenv [var [value]]Gestisce le variabili di ambiente

unsetenv varElimina la variabile var dall’ambiente

export [var [var] ... ]Rende le varibili specificate disponibili nell’ambinte delle applicazioni eseguite nella shell corrente

historyMostra la storia dei comandi eseguiti dal prompt

ComandiComandi

Page 20: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2020 - -

!{string|num}Ripete un comando precedentemente eseguito

!!Ripete l’ultimo comando eseguito

set var [= value]Definisce una variabile e ne assegna il valoreAlcune variabili modificano le opzioni della shell

alias [name string]Definisce una nome alternativo per un comando

unalias name ... | -aRimuove le definizioni di nomi alternativi

ComandiComandi

Page 21: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2121 - -

SommarioSommario

Prima Parte1. Introduzione2. La shell

sh

Variabili di ambienteComandi

3. Il File SystemIntroduzioneComandi

4. ProcessiIntroduzioneComandi

Page 22: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2222 - -

IntroduzioneIntroduzione

Il File System fornisce all’utente una visione logica dei dispositivi di memorizzazione di massa, quali:

Hard DiskCD ROMFloopyDAT

La struttura di un file system si basa su due concetti fondamentali:

FileDirectory

Sistemi operativi diversi utilizzano diverse implementazioni di file system

Page 23: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2323 - -

FileFile

Il concetto di file offre una visone omogenea delle informazioni memorizzateLa visone non dipende dal tipo di dispositivo fisico su cui le informazioni vengono memorizzateUn file è costituito da:

Un insieme di informazioni omogeneeUn nome simbolicoUn insieme di attributi

Un file può contenere:DatiProgrammiRiferimenti

Page 24: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2424 - -

FileFile

Ad un file sono associati alcuni attributi che ne descrivono alcune caratteristiche:

Nome E’ il nome simbolico con riferirsi ad esso

Tipo Definisce il tipo dei dati contenuti.

Locazione E’ un riferimento alla posizione fisica

Dimensione Dimensione dei dati

Protezione Definisce le politiche di accessoOra e Data Indicano il momento della creazione,

dell’ultima modifica e dell’ultimoaccesso

Proprietario Indica il nome dell’utente che ha creatoil file ed il suo gruppo di appartenenza

Page 25: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2525 - -

DirectoryDirectory

L’elemento fondamentale per l’organizzazione dei file è la directoryEsistono diverse strutture di directory

Directory a singolo livelloDirectory a due livelliDirectory ad alberoDirectory a grafo aciclicoDirectory a grafo generale

UNIX adotta una struttura a grafo generaleIl sistema operativo è più complesso: loop infinitiSoluzione: limitare la profondità/lunghezza del path

Page 26: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2626 - -

DirectoryDirectory

Esempio di directory a grafo generale

bin mike bill jhon

gcc mike test data gnu much foo

aax data foo mary work

gnu mom much

Page 27: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2727 - -

ProtezioneProtezione

Il file system UNIX gestisce gli accessi ai file secondo lo schema detto Simplified Access Control ListGli utenti sono identificati in base a

Username: Identificativo dell’utenteGroup: Identificativo di gruppo,

condiviso da più utenti

Gli utenti sono raggruppati in tre classiOwner: Solo il proprietario del fileGroup: Solo i membri del gruppo

del proprietario del fileOther: Tutti gli utenti

Page 28: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2828 - -

ProtezioneProtezione

Le operazioni che un utente può effettuare su un file sono raggruppate in tre classi

Read: Lettura, copiaWrite: Scrittura, modifica, eliminazioneExecute: Esecuzione

Le operazioni che un utente può effettuare su una directory sono raggruppate in tre classi

Read: Elenco dei file contenutiWrite: Creazione/rimozione dei file contenutiExecute: Entrata nella directory, creazione di file

nella directory, elenco dei file contenuti

Page 29: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 2929 - -

ProtezioneProtezione

Ad ogni file sono associati:OwnerGroupSimplified Access Control List

La Simplified ACL è formata da tre gruppi di bit:Ogni gruppo si riferisce ad una classe di utentiOgni bit del gruppo si riferisce ad una operazione

owner group other

executewrite

read

rwx

owner group other

rwx rwx

111 101 101

7 5 5

rwx rwx rwx

Page 30: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3030 - -

ComandiComandi

cd [path]Cambia la directory corrente

pwdMostra il path assoluto della directory corrente

ls [path]Mostra l’elenco dei file nella directory path o in quella corrent

find path [-name pattern]Ricerca e mostra i file in tutto il sottoalbero che inizia dalla directory path

Page 31: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3131 - -

ComandiComandi

chmod mode file ...Cambia i diritti di accesso ai file specificati

chown [-R] owner[:group] file ...Modifica il proprietario di un file

chgrp [-R] group file ...Modifica il gruppo di un file

cp src destCopia uno o più file o directory

mv src destSposta o rinomina uno o più file o directory

Page 32: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3232 - -

ComandiComandi

rm [-r dir...] [file...]Rimuove uno o più file o directory

touch [file...]Modifica le date di accesso o di modifica dei fileSe un file non esiste viene creato

mkdir dirCrea una nuova directory

rmdir dir...Rimuove una o più directory vuote

Page 33: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3333 - -

ComandiComandi

du dir...Mostra lo stato di utilizzo dei dischi

df dirMostra lo spazio disponibile sui vari file system

lpr [–P dest] file... Invia allo spooler di stampa uno o più file

lpq [-P dest]Mostra lo stato della coda di stampa

lprm [-P dest] [-|id] Rimuove un job dalla coda di stampa

lpstatMostra lo stato di tutti gli spooler

Page 34: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3434 - -

LinkLink

Esistono due tipi di link: soft (symbolic) o hardSoft link

È un riferimento ad un file o ad una directoryRimuovendo un link il file originale non viene rimossoRimuovendo un file i link divengono inconsistentiIl comando ls mostra i symbolic link usando una l come primo carattere degli attributi del file

Hard linkÈ una copia del descrittore di un file o di una directoryIl file non viene rimosso fino a che esistono link Il comando ls mostra gli hard link incrementando link count, nella seconda colonna

Page 35: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3535 - -

LinkLink

- foo

- bar

- frob

d bin

l foo

- bar

- frob

d bin

i-node

./bar./bar

i-node

This is thefile namedbar...

This is thefile namedbar...

i-node

This is thefile namedbar...

This is thefile namedbar...

Soft link Hard link

1

1

1

6

2

2

1

6

Page 36: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3636 - -

ComandiComandi

ln -s src [dest]Crea un link soft ad uno o più file o directory

brandole@apollo> ls -l-rw-r--r-- 1 brandole 5 Jul 14 14:37 originalbrandole@apollo> ln –s original link1brandole@apollo> ln –s original link2brandole@apollo> ls -llrwxrwxrwx 1 brandole 8 Jul 14 14:38 link1 -> originallrwxrwxrwx 1 brandole 8 Jul 14 14:38 link2 -> original-rw-r--r-- 1 brandole 5 Jul 14 14:37 originalbrandole@apollo> rm link1brandole@apollo> ls -llrwxrwxrwx 1 brandole 8 Jul 14 14:38 link2 -> original-rw-r--r-- 1 brandole 5 Jul 14 14:37 originalbrandole@apollo> rm originalbrandole@apollo> ls -llrwxrwxrwx 1 brandole 8 Jul 14 14:38 link2 -> originalbrandole@apollo> cat link2cat: cannot open link2brandole@apollo>

Page 37: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3737 - -

ComandiComandi

ln src [dest]Crea un link hard ad uno o più file o directory

brandole@apollo> ls -l-rw-r--r-- 1 brandole 5 Jul 14 14:37 originalbrandole@apollo> ln original link1brandole@apollo> ln original link2brandole@apollo> ls -llrwxrwxrwx 3 brandole 8 Jul 14 14:38 link1lrwxrwxrwx 3 brandole 8 Jul 14 14:38 link2-rw-r--r-- 3 brandole 5 Jul 14 14:37 originalbrandole@apollo> rm link1brandole@apollo> ls -llrwxrwxrwx 2 brandole 8 Jul 14 14:38 link2-rw-r--r-- 2 brandole 5 Jul 14 14:37 originalbrandole@apollo> rm originalbrandole@apollo> ls -llrwxrwxrwx 1 brandole 8 Jul 14 14:38 link2brandole@apollo> cat link2This is the content of the file...brandole@apollo>

Page 38: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3838 - -

DeviceDevice

Un device è un file speciale che fornisce una interfaccia comune a diversi dispositivi o datiI device sono raccolti in /dev

/dev/stdin Standard input/dev/stdout Standard output/dev/stderr Standard error/dev/null Null file/dev/tty Terminale fisico (seriale)/dev/pty Terminale virtuale (telnet, xtem)/dev/console Terminale di default/dev/dsk/c0t0d0s00 Dispositivo SCSI numero 0/dev/fd/0 Floppy disk numero 0

Page 39: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 3939 - -

Organizzazione del file systemOrganizzazione del file system

UNIX prevede la seguente organizzazione/ Root directory/bin/ Raccoglie gli eseguibili e i comandi standard/dev/ Contiene i device/home/ Contiene le home directory degli utenti./lib/ Contiene le librerie statiche e dinamiche sia

di sistema, sia degli applicativi /local/ E’ il mount-point dei file system locali/mnt/ E’ il mount-point dei file system addizionali/opt/ Contiene pacchetti software aggiuntivicontinua

Page 40: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4040 - -

Organizzazione del file systemOrganizzazione del file system

/usr/ Contiene parti addizionali del sistema/var/ Contiene file temporanei o semi-

temporanei di sistema. Tali file sonoessenziali per il sistema

/var/spool/ Contiene le code di stampa/var/mail/ Contiene le ‘inbox’ degli utenti/var/log/ Contiene i transcript delle operazoni

di sistema/proc/ Fornisce l’accesso ai processi

attraverso una interfaccia basata sulmodello del file system

/tmp/ Directory temporanea

continua

Page 41: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4141 - -

Organizzazione del file systemOrganizzazione del file system

/etc/ Contiene file di configurazione/etc/rc0.d/ Contiene gli script di shutdown.

I nomi degli script iniziano con Knn e

vengono eseguiti in ordine alfabetico.

Sono invocati con argomento stop/etc/rcS.d/ Contiene gli script di boot in single

user mode. I nomi degli script iniziano con Snn e sono invocaticon argomento start

/etc/rc2.d/ Contiene gli script di boot in multiuser mode

/etc/init.d/Raccoglie tutti gli script di boot e dishutdown. Le directory rcn.dcontengono link a questi file

continua

Page 42: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4242 - -

Organizzazione del file systemOrganizzazione del file system

/etc/rc<n>/ Script di boot principali.Eseguono gli script nelle directory /etc/rcn.d/

/etc/skel/ Contiene file di configurazione

utente di default/etc/psswd Password file/etc/fstab Tabella dei file system da

montare al boot/etc/mnttab Tabella dei file montati/etc/hosts Tabella di risoluzione degli IP /etc/resolv.conf Tabella di routing/etc/services Elenco dei servizi forniti dal

demone di rete inetd

Page 43: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4343 - -

MountingMounting

L’operazione di mounting permette di collegare un file system ad una directory, detta mount-point, di un altro file system:

Il mount-point è una directoryIl contenuto preesistente del mount-point diviene temporaneamente inaccessibile

La rimozione di un tale collegamento viene detta unmounting:

Il contenuto preesistente del mount-point è nuovamente accessibileNon è possibile scollegare un file system se un processo sta operando sul file system montato

Page 44: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4444 - -

MountingMounting

E’ possibile collegare file system condivisi attraverso una rete (NFS mounting)Il file /etc/mnttab tiene traccia dei file system correntemente montatiLe operazioni di mounting e unmounting agiscono sul file /etc/mnttabMounting e unmounting sono eseguibili solo da root

È possibile permettere ad un utente generico di montare e smontare file system particolari

CD-ROM localiFloppy

Page 45: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4545 - -

MountingMounting

Il file /etc/mnttab contiene le seguenti informazioni sui file system montati

special Il nome del file system o del devicemount-point Il path del mount-point fstype Il tipo di file system montatooptions Opzioni di montaggio, tipicamente

i diritti di accessotime Ora di montaggio del file system

Il file /etc/fstab (a volte /etc/vfstab) indica i file system da montare al boot del sistema

Page 46: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4646 - -

ComandiComandi

mount dev mntMonta il file system dev nella directory mnt

mountall [table]Effettua il montaggio dei file system specificati nella tabella table

umount devRimuove un file system montato

eject deviceEspelle un dispositivo rimovibile (floppy disk, CD-ROM)

syncAggiorna lo stato del file system

Page 47: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4747 - -

SommarioSommario

Prima Parte1. Introduzione2. La shell

sh

Variabili di ambienteComandi

3. Il File SystemIntroduzioneComandi

4. ProcessiIntroduzioneComandi

Page 48: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4848 - -

IntroduzioneIntroduzione

ProgrammaOperazioni che devono essere svolte da un calcolatore

ProcessoÈ una istanza di un programma in esecuzioneÈ costituito da

Una immagine del del suo codice macchinaUn descrittore di processo

Il descrittore del processo contieneIdentificativo del processo o process id (pid)Stato del processoProgram counterInformazioni sulla memoriaAltre informazioni

Page 49: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 4949 - -

EsecuzioneEsecuzione

Eseguire un processo comportaLa creazione di un descrittore di processoIl caricamneto in memoria della immagine del programma

Un processo viene sempre creato da un altro processo

Il processo creatore si chiama processo padre o parent processIl processo creato si chiama processo figlio o child process

Nel sistema operativo UNIX tutti i processi discendono dal processo sched, cioè lo scheduler

Page 50: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 5050 - -

EsecuzioneEsecuzione

I processi possono essere eseguiti in due modalitàForeground Il processo figlio eredita e ritiene tutte

le risorse del padre. Il padre è sospeso inattesa della terminazione del figlio

Backgroud Il processo figlio eredita tutte le risorsedel padre. Il processo padre rimane inesecuzione. È lo scheduler ad assegnarele risorse ai due processi

L’utente può specificare la modalità di esecuzione di un processoLa modalità di esecuzione può cambiare durante la vita di un processo

Page 51: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 5151 - -

OperazioniOperazioni

Su un processo si possono eseguire alcune operazioniCreazione

Un processo viene creato in foreground fornendo ad una shell il nome del programma corrispondentePer creare un processo in background si usa il carattere & alla fine della linea di comando della shell

TerminazioneUn processo in foreground viene terminato premendo opportune combinazioni di tasti, tipicamente CTRL-CUn processo in background viene terminato inviandogli un opportuno segnale (SIGKILL, SIGABRT) tramite il comando kill

Page 52: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 5252 - -

OperazioniOperazioni

SospensioneUn processo in foreground viene sospeso premendo opportune combinazioni di tasti, tipicamente CTRL-ZUn processo in background viene sospeso inviandogli un opportuno segnale (SIGSTOP) tramite i comandi kill e stop

ContinuazioneSi può forzare la continuazione di un processo sospeso utilizzando i comandi fg e bgÈ anche possibile inviare al processo sospeso un opportuno segnale (SIGCONT) tramite il comando kill

Page 53: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 5353 - -

OperazioniOperazioni

DuplicazioneUn processo può essere duplicato solo attraverso chiamate a funzioni di sistema operativo

AnalisiÈ possibile visualizzare alcune informazioni relative ai processi utilizzando i comandi ps e jobs

Page 54: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 5454 - -

ComandiComandi

programCrea un nuovo processo in foreground

program &Crea un nuovo processo in background

ps -auxMostra alcune informazioni riguardanti tutti i processi correntemente in esecuzione

jobsMostra la litsa dei processi figli della shell corrente

Page 55: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © 2001 - Carlo Brandolese Il Sistema Operativo UNIX.

Il Sistema Operativo UNIX - IIl Sistema Operativo UNIX - I © 2001 - Carlo Brandolese© 2001 - Carlo Brandolese- - 5555 - -

ComandiComandi

fg %jobidPorta un processo in foreground

bg %jobidPorta un processo in background

kill pidTermina un processo

stop pidSospende un processo

time commandEsegue command e mostra i tempi di esecuzione