Esempio
A partire da una struttura del file system come in figura a) Si vuole creare nel file system una struttura come mostrato in figura b).
Soluzione
In primo luogo cerchiamo di capire a che punto dell’albero siamo:
oracolo.dma.unina.it$ pwd
/usr/users/caio/prog
oracolo.dma.unina.it$
1. Dobbiamo creare una directory che chiameremo temp
oracolo.dma.unina.it$ mkdir ../temp
2. spostare il file pippo.txt
, chiamandolo pippo.c
, nella nuova directory temp
oracolo.dma.unina.it$ mv pippo.txt ../temp/pippo.c
3. spostarsi nella directory temp
e chiamare il compilatore C per creare a.out
(eseguibile di pippo.c
)
oracolo.dma.unina.it$ cd ../temp
oracolo.dma.unina.it$ pwd
/usr/users/caio/temp
oracolo.dma.unina.it$ cc pippo.c
oracolo.dma.unina.it4 ls
a.out
pippo.c
4. creare l’eseguibile di pippo.c
assegnano il nome pippo
oracolo.dma.unina.it$ cc -o pippo pippo.c
oracolo.dma.unina.it$ ls
a.out
pippo.c
pippo
oracolo.dma.unina.it$
Esempio
Si vuole visualizzare il contenuto di una directory in modo da ottenere il maggior numero di informazioni sui file in essa contenuti.
Soluzione
Si esegua il comando:
oracolo.dma.unina.it$ ls -la
In risultato dell’esecuzione è mostrato in figura.
Esempio
Copiare i file come mostrato in figura seguendo opportunamente le frecce.
comandi Soluzione
1. spostarsi nella home directory
oracolo.dma.unina.it$ cd
oracolo.dma.unina.it$
2. copiare il file prova, chiamandolo topo.c
, nella directory temp
oracolo.dma.unina.it$ cp ../tizio/prova prog/topo.c
3. copiare il file pippo.c
nella directory prog
oracolo.dma.unina.it$ cp temp/pippo.cprog
oracolo.dma.unina.it$ ls prog
pippo.c
pluto.c
topo.c
oracolo.dma.unina.it$
Quando in un sistema operativo di tipo Unix si vuole eseguire un comando bisogna considerare diverse categorie di file di tipo standard. In particolare
questi file sono di tre tipi:
È possibile cambiare in maniera temporanea l’input e l’output verso altri file con l’uso dei caratteri
< ( per l'input) > o >> ( per l'output)
Eseguire il programma assoluto pippo
, e generare un file prog_res
che contiene il programma sorgente e i risultati dell’elaborazione.
Soluzione:
1. Esecuzione del programma pippo e redirezione dell’output al file results
oracolo.dma.unina.it$ pippo > results
2. Il file pippo.c
è inserito in prog_res
oracolo.dma.unina.it$ cat pippo.c > prog_res
3. Il file results è accodato in prog_res
oracolo.dma.unina.it$ cat results >> prog_res
Operazioni comuni
Lista dei files nella directory corrente
$ls |RETURN|
Lista dei files il cui nome termina con .txt nella directory corrente
$ls *.txt |RETURN|
Stampa della dimensione e delle proprietà dei files
$ls –l |RETURN|
-rwxr-xr-x 1 desalvo xv 11890 Jun 4 2001 test
-rw-r--r-- 1 desalvo xv 148 Jun 4 2001 test.c
drwxr-xr-x 2 desalvo xv 4096 Jan 15 22:09 test-directory
Stampa del nome della directory di lavoro corrente (full pathname)
$pwd |RETURN|
Cambio di directory
$cd |RETURN|
Ritorno alla directory al livello precedente
$cd .. |RETURN|
Creazione di una nuova directory
$mkdir |RETURN|
Rimozione di una directory vuota
$ rmdir |RETURN|
Spostamento o rinominazione di files
$ mv |RETURN|
Esempio di spostamento: $ mv pippo.txt txt_files/
Esempio di rinominazione: $ mv pippo.txt paperino.txt
Cancellazione di uno o più files
$rm |RETURN|
$rm pippo* |RETURN|
Copia di un file: $ cp pippo.txt paperino.txt |RETURN|
Visualizzazione del contenuto di un file (browsing): $more pippo.txt |RETURN|
Creazione o modifica di un file di testo (editing)
$ emacs pippo.txt |RETURN|
Stampa di un file
$ lpr -P |RETURN|
Informazioni sull’uso di un comando
$ man |RETURN|
Ogni utente è identificato da una coppia di informazioni:
L’utente accede al sistema fornendo username e password:
Login: accesso al sistema (da remoto)
$ ssh
Logout: uscita dal sistema
$ exit
Vengono utilizzati per manipolare FILES nel File System di S.O. oppure per visualizzane il contenuto
L’editor di testo maggiormente utilizzato è il vi perché:
Ottimo bilanciamento tra semplicità di utilizzo e potenza.
Dalla modalità comando si può passare alla modalità inserimento in accordo con la tabella che segue:
i – prima del cursore
a – dopo il cursore
I - all’inizio della linea
A – alla fine della linea
o – apertura linea precedente
O – apertura linea successiva
N.B. In modalità inserimento tutti i caratteri digitati sulla tastiera vengono inseriti nel file
Si accede a questa modalità mediante il tasto Esc
Spostamento del cursore
l – una colonna a destra
k – una linea sopra
j - una linea sotto
h – una colonna a sinistra
$ – fine linea
^ - inizio linea
w – parola successiva
e – fine parola
N.B. Si resta comunque in modalità comando
Sostituzione
cw – sostituzione della parola
cc – sostituzione della linea
C – fine di linea
r - carattere del cursore
Cancellazione
dw – cancella la parola
dd - cancella la linea
D – alla fine di linea
x – carattere del cursore
X – carattere prima del cursore
Altre funzioni
u - annulla
/ – ricerca in avanti
? – ricerca a ritroso
n – instanza successiva
. – ripete l’ultimo comando
Y – aggiorna la linea
p – inserisce sotto
P – inserisce sopra
ZZ – scrive ed esce
Esc – cancella il comando
Dalla modalità comando si passa alla modalità ultima linea secondo la seguente tabella:
:w – scrive il file
:q – esce
:wq – scrive ed esce
:n – file successivo
:r – legge il file
:e – aggiorna il file
:f – nome del file
:set – aggiorna le opzioni
:! – Uscita dalla shell
:n - linea n
N.B. Alcune opzioni di set:
1. Prolusione
2. Sistemi Operativi – parte prima
3. Sistemi Operativi – parte seconda
6. Il linguaggio C – parte prima
8. Il linguaggio C – funzioni e puntatori
10. Il linguaggio C – parte terza
11. La documentazione del software
12. Dati strutturati
13. Esercizi sui dati strutturati
14. Approfondimenti di C, Stringhe e file
15. Esercizi su stringhe e file
16. La ricorsione
17. Il linguaggio c++ parte prima
18. Il linguaggio C++ - parte seconda
19. Strutture dati di tipo astratto