Sistemi operativi, A.A. 2011/2012 (M. Cesati) Scaletta esercitazione #1, 8.03.2012 1 Installazione distribuzione Ubuntu tramite Wubi (demo) 2 Login & password 2.1 Non usare l'account "root" 3 Apertura di un terminale con una shell di comandi 3.1 [Alt-F2],"xterm" 4 Esempio d'uso della shell di comandi 4.1 Comando "date" 4.2 Attenzione alla distinzione tra lettere maiuscole e minuscole 4.3 Comandi sulla stessa linea con ";" 4.4 Continuazione di un comando alla riga successiva con "\" 5 Filosofia di UNIX 5.1 Ciascuno fa poche cose ma fatte bene 5.2 Tutti collaborano tra loro 5.3 Tutti comunicano tramite file di testo 5.4 Tutto (o quasi) e' un file 6 I flussi principali di un programma UNIX 6.1 Lo standard output (default: schermo) 6.2 Lo standard input (default: tastiera) 6.3 Lo standard error (default: schermo) +-----------+ standard | | standard input ---->| programma |----> output | | +-----------+ | | v standard error 7 Comando "echo" 7.1 Esempio: $ echo "Ciao" 7.2 I programmi possono ricevere argomenti dalla linea di comando 7.3 Il comando "echo" copia gli argomenti letti dalla linea comando sullo standard output 8 Redirezione dello standard output 8.1 Esempio: $ echo "Ciao" > saluto 8 Comando "cat" 8.1 Esempio: $ cat saluto 8.2 Concatena il contenuto dei file indicati in linea comando e li copia in standard output 8.3 Esempio $ cat saluto saluto > saluto2; cat saluto2 8.4 Senza argomenti "cat" copia dallo standard input allo standard output 8.5 Si puo' anche indicare lo standard input tramite "-" 8.6 Esempio: $ cat saluto2 - > saluto3 Arrivederci (Ctrl-D) per segnalare la fine dello standard input $ cat saluto3 9 Comunicazione tra programmi tramite la "pipe" 9.1 Concatena lo standard output di un comando con lo standard input del successivo 9.2 Esempio: $ echo "Amico" | cat saluto - saluto 10 Il comando "ls" per elencare i file 10.1 Esempio $ ls 10.2 Opzione "-l" 10.3 Opzione "-F" 11 Il comando "man" per visualizzare la documentazione 11.1 Esempio: $ man ls 11.2 Alle volte esistono piu' pagine di manuale con lo stesso nome in sezioni differenti 11.3 Esempio $ man 1 time; man 2 time 12 File regolari e cartelle (o directory) 12.1 Un file regolare e' un classico contenitore di dati 12.2 In UNIX non esiste realmente differenza tra file di testo e file binari 12.3 Una directory contiene file ed altre directory 12.4 La directory principale "/" e' detta radice (root) 12.5 Pathname assoluti e relativi 12.6 Esempio: "/home/cesati/esso12/es01" 12.7 Il nome "." rappresenta la cartella corrente 12.8 Il nome ".." rappresenta la cartella al livello superiore (verso la radice) 13 Il comando "pwd" per visualizzare la cartella corrente 13.1 Esempio: $ pwd 13.2 Il comando "ls" legge dalla linea di comando un percorso di file o cartella 13.3 Il ruolo dei caratteri jolly "*" e "?" 14 Il comando "cd" per cambiare la cartella corrente 14.1 Esempio: $ cd ..; ls; cd es01 15 Il comando "mkdir" per creare una nuova cartella 15.1 Esempio: $ mkdir a; cd a; echo "in cartella a" > a1; ls; cd ..; ls 16 Il comando "mv" per rinominare file e spostarli in cartelle diverse 16.1 Esempio: $ cd a; mv a1 a2; ls; mv a2 ../a1; ls .. 16.2 Opzione "-i": chiedi conferma quando sovrascrive un file esistente 17 Il comando "cp" per copiare un file 17.1 Esempio: $ cp a1 a3; ls 17.2 Opzione "-r" per copiare ricorsivamente un sotto-albero 18 Il comando "rm" per distruggere un file 18.1 Esempio: $ cd /home/cesati/esso12/es01; rm a1; ls 18.2 Opzione "-f": forza la cancellazione 18.3 Opzione "-r": ricorsivamente cancella l'intero sotto-albero 18.4 Opzione "-i": chiedi conferma 18.5 Il comando "rmdir" per cancellare cartelle vuote 19 I comandi "more" e "less" per paginare un file di testo 19.1 Esempio: $ more scaletta.txt 20 Messaggi di errore dei comandi sullo standard error 20.1 Esempio: $ ls nonesiste 20.2 Redirezione dello standard error tramite 2> 20.3 Esempio: $ ls nonesiste 2> errore; cat errore