Unix/GNU-Linux - di.unito.itbaroglio/bioinfo/aa0304/slide_intro.pdf · Dipartimento di Informatica...
Transcript of Unix/GNU-Linux - di.unito.itbaroglio/bioinfo/aa0304/slide_intro.pdf · Dipartimento di Informatica...
Unix/GNU-Linux
Cristina BaroglioDipartimento di Informatica
Università di Torino011-6706703
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