Unix/GNU-Linux Cristina Baroglio Dipartimento di Informatica Università di Torino 011-6706703 baroglio@di.unito.it
URL del corso http://www.di.unito.it/~baroglio/bioinfo/aa0304/index.html 1 3 protocollo 2 id. macchina cammino 2 Computer Studente 1 3 Computer Docente
Utente / Sistema? Leggi posta Esegui programma Guarda foto Scrivi doc.
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 Principio: tutti i livelli sono equivalenti dal punto di vista computazionale M. Fisica Regole di traduzione M. Astratta1 M. Astratta2
Quanti livelli? A piacere! Bla bla bla bla L' utente interagisce con un'interfaccia grafica Monitor Metafora: oggetti + azioni es. file copia cancella rinomina
Cosa c'è nel mezzo? Livelli Bassi Bla bla bla bla 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 = indicatore 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 possono usare/modificare uno i file dell'altro?... dipende...
Utente non esperto... (3) Utenti: A cosa servono login e password? Possono più utenti lavorare contemporaneamente 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 internet e un software di simulazione esegue un esperimento che terminerà fra un paio d'ore... Come può avvenire tutto ciò contemporaneamente?
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 ultima modifica, la dimensione I file sono organizzati in una struttura gerarchica: un albero Radice / root
Alberi e scatole cinesi Radice / root Le due rappresentazioni sono equivalenti
Cammini assoluti Radice / root src bin Doc Applic1 gamma alfa alfa beta (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 verdi rossi Home directory: ~verdi ~rossi
Shell Shell = interfaccia utente è un interprete di comandi >> comando [parametri]...output del comando >> I comandi sono dati in forma testuale Un comando può avere degli argomenti (parametri) Dopo l'elaborazione può essere visualizzato un output il prompt indica che la shell è in attesa di comandi
Metafora La metafora non è più quella degli oggetti con azioni applicabili Al computer si parla con un linguaggio 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 non possono contenere spazi
Working Directory (1) Molti comandi consentono di lavorare su file, che vengono passati come argomento: cp /usr/pippo/file1.doc /usr/pippo/file2.doc Usare cammini assoluti è scomodo Ogni utente ha associata una directory di lavoro (working directory)...
Working Directory (2) In molti sistemi Unix, la W.D. è inizializzata 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 WD > cd progetti rossi > cd../backup progetti backup file1.txt file2.doc
Cammini Relativi Radice / root WD src bin Doc Applic1 delta beta gamma alfa Se voglio copiare il file /Doc/alfa in Applic1, che è la WD: >> cp../../doc/alfa.
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 preceduti 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 system, come si può essere sicuri che un altro utente non modificherà documenti importanti o leggerà informazioni riservate? Ogni file/directory ha associati dei diritti di accesso
Diritti di Accesso (2) Utente privilegiato: root, l'amministratore di sistema Ogni file/dir ha un proprietario, che inizialmente corrisponde all'utente che lo ha creato Gli utenti sono divisi in gruppi di lavoro
Diritti di Accesso (3) Ogni file ha associate 3 triple di permessi: lettura (r), scrittura (w) ed esecuzione (x) La prima tripla corrisponde ai diritti del proprietario, la seconda a quelli degli utenti appartenenti al gruppo del proprietario (definiti da amministratore), 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 permesso è disabilitato
Esempio r w x r x - - x programma Non tutti i file sono eseguibili, per esserlo devono essere dei programmi eventualmente compilati. Le 'x' nell'esempio indicano che programma è eseguibile x tutti gli utenti; può essere lanciato da linea di comando. È leggibile 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.html drwx 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 directory Scrittura (w): creare o cancellare file Attraversamento (x): posso usare la directory 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 contenuto della cartella
Comando chmod Consente di cambiare i diritti di accesso 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 numerico (PID) ed esiste per un tempo di norma limitato. I processi sono gestiti dal SO in modo tale da ottenere un parallelismo virtuale 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 terminale, TIME: tempo di CPU, CMD: comando corrispondente al processo kill -9 pid (uccide il processo con PID=pid)
Processi e flussi stdin stdout Processo stderr Ambiente
Ridirezione dei flussi Valori di default: Stdin: tastiera Stdout: monitor Stderr: monitor Ridirezione: mi consente di usare lo stesso programma facendo però laggere 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 pipe: è uno strumento che ridirige lo stdout di un processo nello stdin di un altro processo; solo l'output del secondo viene riversato a video Effetto: composizione dell'elaborazione dei due processi Es. ls wc -l Lista il contenuto di una directory Conta linee
Esempi ls -l more Visualizza il contenuto di una directory a paginate ps -aux grep baroglio Estrae dall'elenco dei processi in esecuzione sul sistema solo quelli nella cui descrizione compare il nome baroglio