Unix/GNU-Linux - di.unito.itbaroglio/bioinfo/aa0304/slide_intro.pdf · Dipartimento di Informatica...

Post on 17-Feb-2019

224 views 0 download

transcript

Unix/GNU-Linux

Cristina BaroglioDipartimento di Informatica

Università di Torino011-6706703

baroglio@di.unito.it

URL del corso

http://www.di.unito.it/~baroglio/bioinfo/aa0304/index.html

protocollo

id. macchina

cammino1 3

2

1

2

3

Computer Studente Computer Docente

Utente / Sistema

?

Leggi posta

Scrivi doc.

Esegui programma

Guarda foto

Macchina Fisica

➲ Hardware: macchina fisica● Elaborazione = propagazione di differenze

di potenziale

➲ Interpretazione: bit ed operazioni sui bit

➲ Primo passo: ● trasformare i bit in simboli● Es: 100 0010 0001 SUM i1 i2

Macchina Astratta

M. Fisica

M. Astratta1

M. Astratta2

Regole di traduzione

Principio:tutti i livelli sono equivalenti dal punto di vista computazionale

Quanti livelli?

➲ A piacere!

Bla blabla bla

Monitor

Metafora:oggetti +azioni

es. file

L' utente interagiscecon un'interfacciagrafica

copia

rinomina

cancella

Cosa c'è nel mezzo?

Bla blabla blaLivelli Bassi

gestione I/O, gestione degli utenti, dei file della memoria ecc.

Il Sistema Operativo

(1) gestisce le risorse e (2) nasconde le complicazioni

Utente non esperto ... (1)

➲ Esistono i file● Unità di memoria● File = documento● Vi sono diversi tipi di file, estensione = in-

dicatore del tipo

➲ Domanda: ● posso avere due file con lo stesso nome?● ... dipende ...

Utente non esperto ... (2)

➲ Esistono anche le cartelle● Raccoglitori di file● Posso avere file con lo stesso nome in

cartelle diverse!● Le cartelle sono tutte dello stesso tipo● Si possono creare, cancellare, copiare, ...

➲ Domanda: ● Se 2 utenti usano lo stesso computer pos-

sono usare/modificare uno i file dell'altro?● ... dipende ...

Utente non esperto ... (3)

➲ Utenti:● A cosa servono login e password?● Possono più utenti lavorare contempo-

raneamente su di una stessa macchina? (ma una macchina non ha una tastiera sola?)

● Ha senso parlare di tipi di utenti differenti?

Utente non esperto ... (4)

➲ Esecuzione di programmi:● Apro un editor e comincio a scrivere del

testo, intanto ascolto un mp3 mentre il mio browser scarica un applicativo da in-ternet e un software di simulazione esegue un esperimento che terminerà fra un paio d'ore ...

● Come può avvenire tutto ciò contempo-raneamente?

Sistema Operativo

Gestisce le risorse (memoria, CPU, ...), nasconde le complicazioni dell'HW,

gestisce gli utenti, i processi, tutto ciò in maniera trasparente all'utente

Es. Windows 2000/NT/XP/ME, Solaris, Irix, BeOS, OS X, freeBSD, Unix, Linux (RedHat,

SuSe, Mandrake, Debian, ...), Symbian

Linux

➲ File System➲ Gestione degli Utenti➲ Shell➲ Comandi di base➲ Editor➲ Ambiente di lavoro

File System

➲ L'utente vede la memoria organizzata in file➲ File: sequenza di byte, ha un nome, un contenuto

e vari attributi, fra cui il proprietario, la data di ul-tima modifica, la dimensione

➲ I file sono organizzati in una struttura gerarchica: un albero

Radice / root

Alberi e scatole cinesi

Radice / root

Le due rappresentazionisono equivalenti

Cammini assoluti

Radice / root

Docbinsrc

Applic1

alfa beta

gammaalfa

(a) /Doc/alfa(b) /src/Applic1/alfa

Utenti

➲ Linux (Unix) è un S.O. multi-utente➲ Ogni utente è identificato da login (id.

Pubblico) e password (id. Privato)➲ Ogni utente deve poter lavorare come

se fosse l'unico che utilizza quella macchina

➲ Ogni utente è proprietario di una porzione del file system

Utenti e file system

Radice / root

usr

rossiverdi

Home directory:~verdi~rossi

Shell

>> comando [parametri]

...output del comando>>

I comandi sono datiin forma testuale

Un comando puòavere degli argomenti(parametri)

Dopo l'elaborazionepuò essere visualizzatoun output

il prompt indica chela shell è in attesa di comandi

Shell = interfaccia utenteè un interprete di comandi

Metafora

➲ La metafora non è più quella degli oggetti con azioni applicabili

➲ Al computer si “parla” con un lin-guaggio molto rigoroso

All'atto del login si entra in un ambiente grafico ma per lavorare occorre per lo più interagire con il sistema in forma testuale

vantaggio: incremento esponenziale della flessibilità

Primi comandi

whoami date clear finger nome_utente who traceroute 12.234.21.8

Sistema case-sensitive,ovvero le maiuscole sono intese diverse dalle corrispondenti minuscole(Windows è case-insensitive)

i nomi di file e directory nonpossono contenere spazi

Working Directory (1)

➲ Molti comandi consentono di lavorare su file, che vengono passati come ar-gomento:

cp /usr/pippo/file1.doc /usr/pippo/file2.doc

➲ Usare cammini assoluti è scomodo➲ Ogni utente ha associata una directo-

ry di lavoro (working directory) ...

Working Directory (2)

➲ In molti sistemi Unix, la W.D. è inizial-izzata alla Home Directory, all'inizio della sessione di lavoro

➲ Può essere modificata➲ Per fare riferimento a file contenuti

nella W.D. è sufficiente il nome

cp file1.doc file2.doc

Working Directory (3)

Radice / root

rossi

progetti

backup

file1.txt file2.doc

WD

> cd progetti

> cd ../backup

Radice / root

WD

Se voglio copiare ilfile /Doc/alfa in Applic1, che è la WD:

>> cp ../../Doc/alfa .

Cammini Relativi

Docbinsrc

Applic1

delta beta

gammaalfa

Comandi per file e directory

➲ cp file1 file2➲ cp file1 directory➲ mv file1 file2➲ mv file1 [... fileN] directory➲ mv directory1 directory2➲ rm file1 [... fileN]

● N.B. File e directory possono essere pre-ceduti da un cammino

➲ rmdir directory

Comandi per file e directory

➲ ls➲ ls nome*➲ ls -t➲ ls -lt➲ cd➲ cd directory➲ pwd➲ mkdir directory

Diritti di Accesso (1)

➲ Se più utenti si suddividono il file sys-tem, come si può essere sicuri che un altro utente non modificherà docu-menti importanti o leggerà infor-mazioni riservate?

➲ Ogni file/directory ha associati dei diritti di accesso

Diritti di Accesso (2)

➲ Utente privilegiato: root, l'amministra-tore di sistema

➲ Ogni file/dir ha un proprietario, che in-izialmente corrisponde all'utente che lo ha creato

➲ Gli utenti sono divisi in gruppi di la-voro

Diritti di Accesso (3)

➲ Ogni file ha associate 3 triple di per-messi: lettura (r), scrittura (w) ed ese-cuzione (x)

➲ La prima tripla corrisponde ai diritti del proprietario, la seconda a quelli degli utenti appartenenti al gruppo del proprietario (definiti da amminis-tratore), la terza tutti gli altri utenti

Esempio

➲ r w - r - - - - - documento.txt➲ Il file può essere letto/modificato dal

proprietario, solo letto dal gruppo, mentre gli altri utenti non possono neanche leggerlo

➲ Il simbolo meno significa che il per-messo è disabilitato

Esempio

➲ r w x r – x - - x programma➲ Non tutti i file sono eseguibili, per es-

serlo devono essere dei programmi eventualmente compilati. Le 'x' nell'e-sempio indicano che programma è eseguibile x tutti gli utenti; può essere lanciato da linea di comando. È leggi-bile solo da proprietario e gruppo e modificabile solo dal proprietario

Comando ls -l

➲ ls -l directory➲ Visualizza i file e le loro proprietà

compresi i diritti di accesso➲ es.

-rw- r-- r-- 1 baroglio mrtg 479 Jan 21 14:31 pr.htmldrwx r-x r-x 2 baroglio mrtg 4096 Nov 21 20:52 tmp -rwx r-x r-x 1 baroglio mrtg 136 Nov 4 10:46 wi.reg

Diritti di Accesso (4)

➲ Le directory hanno diritti di accesso analoghi ai file:

● Lettura (r): listare il contenuto della direc-tory

● Scrittura (w): creare o cancellare file● Attraversamento (x): posso usare la direc-

tory in un cammino

Esempio

➲ d r w x r – x - - - Documenti➲ Il proprietario può eseguire, fra le altre cose:

● ls● rm Documenti/file● mv testo.sxi Documenti/report.sxi

➲ Il gruppo non può eseguire rm

➲ Gli altri non possono neppure listare il contenu-to della cartella

Comando chmod

➲ Consente di cambiare i diritti di ac-cesso a file e directory:

● chmod {u, g, o, a} {+, -} {r, w, x}

➲ u = proprietario, g = gruppo, o = altri, a = tutti

➲ + = aggiungi permesso, - = rimuovi permesso

➲ r = lettura, w = modifica, x = esecuz / attraversamento

Esempio chmod

➲ r w - r - - - - - file1

➲ chmod g+w file1➲ r w - r w - - - - file1➲

➲ Se invece: chmod a+x file1➲ r w x r – x - - x file1

Comando chown

➲ chown new_o[:new_gr] file

➲ Viene cambiato il proprietario (ed eventualmente il gruppo) di file

➲ Implicitamente cambiano anche i diritti d' accesso!

Esempio chown

➲ r w - r - - - - - ut1 gr1 doc.txt

➲ chown ut2 doc.txt➲ r w - r - - - - - ut2 gr1 doc.txt

➲ Se invece: chown ut2:gr3 doc.txt➲ r w - r - - - - - ut2 gr3 doc.txt

Processi e flussi standard

➲ Ogni esecuzione di un programma è detta processo.

➲ Un processo ha un identificatore nu-merico (PID) ed esiste per un tempo di norma limitato.

➲ I processi sono gestiti dal SO in modo tale da ottenere un parallelismo vir-tuale

➲ Ogni processo ha un proprietario, che può ucciderlo

Vedere i processi nel sistema

➲ Comando ps (processes):Es.

● >>ps● PID TTY TIME CMD● 4474 pts/1 00:00:00 bash● 4631 pts/1 00:00:00 ps

➲ PID: id del processo, TTY: id del termi-nale, TIME: tempo di CPU, CMD: co-mando corrispondente al processo

➲ kill -9 pid (uccide il processo con PID=pid)

Processi e flussi

stdin

stdout

stderr

Processo

Ambiente

Ridirezione dei flussi

➲ Valori di default: ● Stdin: tastiera● Stdout: monitor● Stderr: monitor

➲ Ridirezione: mi consente di usare lo stesso programma facendo però lag-gere l'input da file o salvare l'output su file

Ridirezione (2)

➲ Ridirezione dell'input:programma < file_dati

➲ Ridirezione dell'output:programma > file_risultati

➲ Concatenazione di programmi ...

➲ pipe: è uno strumento che ridirige lo stdout di un processo nello stdin di un altro processo; solo l'output del sec-ondo viene riversato a video

➲ Effetto: composizione dell'elabo-razione dei due processi

Es. ls | wc -l

Pipe

Lista il contenuto diuna directory Conta linee

Esempi

➲ ls -l | more➲ Visualizza il contenuto di una directo-

ry a paginate➲ ps -aux | grep baroglio➲ Estrae dall'elenco dei processi in ese-

cuzione sul sistema solo quelli nella cui descrizione compare il nome baroglio