Laboratorio di Programmazione Federico Spizzo Gianluigi Cibinetto Dipartimento di Fisica / Edificio C Dipartimento di Fisica / Edificio C Stanza 006 Tel: 0532 974231 E-mail: [email protected] Stanza 228 Tel: 0532 974328 E-mail: [email protected] Il sistema operativo / inux Il sistema operativo (all'inglese OS, operating system) è il programma responsabile del controllo e della gestione - dei componenti hardware che costituiscono un computer - dei programmi che su di esso girano Il sistema operativo mette anche a disposizione dei programmi una interfaccia software per accedere alle risorse hardware (dischi, memoria, I/O in generale) del sistema. utenti software altre periferiche ( , , ... ) Linguaggio C Il sistema operativo / Linux Utenti / i comandi base gestione dei file & directory gestione dispositivi di memoria (USB/floppy) Il sistema operativo / Linux Il sistema operativo è MULTIutente: - amministratore di sistema (root) - utente1 - utente2 - ... [possiede tutti i privilegi] [i suoi privilegi possono essere limitati] [i suoi privilegi possono essere limitati] Privilegi: r (read) il file/directory può essere letto/a dall’utente w (write) il file/directory può essere scritto/a dall’utente x (execute) il file può essere eseguito/a dall’utente – si può accedere alla directory Ogni utente gestisce i privilegi di accesso dei file/directory di sua proprietà Gli utenti sono divisi in gruppi Il sistema operativo / Linux Organizzazione delle directory / directory principale (root) Primo livello di directory /bin /boot /dev /etc /home /lib ... /home/utente1 /home/utente2 /home/studente Secondo livello di directory directory di lavoro di utente1 directory di lavoro di utente2 directory di lavoro di studente Come ci muoviamo tra le varie directory? -> la shell dei comandi All’apertura della shell, l’utente si trova automaticamente nella sua directory di lavoro Utente: studente -> passwd: studente directory di lavoro: /home/studente home/studente> prompt dei comandi Il sistema operativo / Linux Elenco di comandi ls pwd permette di visualizzare il contenuto della directory permette di visualizzare il percorso assoluto della directory mkdir permette di creare una directory Sintassi: mkdir nome_directory cd permette di cambiare directory sintassi: cd percorso_directory_di_destinazione Se ci troviamo nella directory /home/studente e vogliamo andare nella sottodirectory programmi, possiamo scrivere: cd /home/studente/programmi (usando il percorso assoluto) oppure cd programmi (usando il percorso relativo) oppure cd ./programmi (il simbolo . rappresenta la directory corrente) Il sistema operativo / Linux Se ci troviamo nella directory /home/studente/programmi e vogliamo tornare in /home/studente, possiamo scrivere: cd /home/studente (usando il percorso assoluto) oppure cd .. (il simbolo .. rappresenta la directory che contiene quella attuale) Se siamo in /home/studente/programmi e vogliamo andare in /home/studente/varie possiamo scrivere: cd /home/studente/varie (usando il percorso assoluto) cd ../varie (usando il percorso relativo) ________________________________________________________________________________ cp copia un file Sintassi: cp percorso_file_origine percorso_file_destinazione Se mi trovo nella directory /home/studente/programmi al cui interno si trova il file prova.txt cp prova.txt prova1.txt (creo una copia del file all’interno della stessa directory) cp prova.txt /home/studente/varie/prova.txt (creo una copia del file all’interno di un’altra directory) Se sono in /home/studente, posso fare la stessa cosa in questo modo cp /home/studente/programmi/prova.txt /home/studente/varie/prova.txt cp ./programmi/prova.txt ./varie/prova.txt (il simbolo . rappresenta la directory corrente) Il sistema operativo / Linux del cancella un file Sintassi: del percorso_file_da_cancellare Attenzione! Un file cancellato NON può essere recuperato mv sposta/rinomina un file Sintassi: mv percorso_iniziale_del_file percorso_finale_del_file cat mostra a video il contenuto di un file Sintassi: cat percorso_del_file tail mostra a video il contenuto della parte finale di un file Sintassi: tail percorso_del_file Il sistema operativo / Linux I comandi visti fino ad ora possono essere utilizzati anche con alcune opzioni che ne modificano l’esecuzione. Ad esempio ls ls -al produce come risultato l’elenco dei file contenuti nella directory produce come risultato l’elenco dei file contenuti nella directory; sono compresi i file nascosti e vengono mostrati i limiti d’accesso di ciascun elemento della directory (privilegi) Output prodotto dal comando ls esempio.c indicazioni.txt Output prodotto dal comando ls -al U G O utente gruppo a cui appartiene l’utente Le caratteristiche indicate (r, w, x) si riferiscono a: User / Group / Others Per modificare le modalità di accesso si può utilizzare il comando chmod Esempio: voglio che gli utenti del mio gruppo possano modificare un file (esempio.c) che risulta loro accessibile solo in modalità lettura chmod g+w esempio.c Il sistema operativo / Linux La redirezione Alle volte può tornare utile non mostrare a video il risultato dell’azione di un comando (ovvero l’output del comando), ma salvarlo all’interno di un file. Esempio: supponiamo di trovarci nella directory /home/studente ls il comando permette di visualizzare il contenuto della directory /home/studente ls > elenco_file.txt l’operatore di redirezione, >, consente di salvare nel file elenco_file.txt l’output del comando ls cat elenco_file.txt visualizziamo il contenuto del file elenco_file.txt per verificare quanto detto Per maggiori informazioni fare riferimento al manuale! Sintassi: man nome_del_comando_di_cui_mi_servono_le_opzioni man cp mostra tutte le informazioni relative al comando cp