Esercitazioni
del corso di Laboratorio di Programmazione e Calcolo
n.
1
introduzione
all'ambiente Linux
Avvio
Avviare il computer facendo partire
Linux (SL - Scientific Linux 7.9).
Collegatevi usando come account
didXXY
con XX=01...16 a seconda del numero del PC che state usando
Y=v per il gruppo 1 (gioVedi')
Y=e per il gruppo 2 (lunEdi')
Y=m per il gruppo 3 (Martedi’)
la password verra' comunicata a voce
dal docente.
Il Desktop
Linux ha delle interfaccie grafiche che emulano il desktop di Windows. Queste
sono molteplici (kde, gnome...) e variano anche tra le varie distribuzioni di
Linux e tra le diverse versioni. Non bisogna quindi abituarsi a basarsi troppo
sulle icone ed i menu forniti dall'interfaccia.
D'altra parte l'interfaccia e' configurabile e puo' essere vantaggioso avere
alcune icone sul Desktop o sulla barra dei comandi per le applicazioni di uso
piu' frequente.
Il primo passo dell'esercitazione consistera' nel creare sulla barra dei
comandi l'icona corrispondente all'avvio di una finestra dalla quale si possano
dare istruzioni (terminal, shell o console) e, qualora non fosse gia' presente,
un'icona dalla quale far partire un browser web.
La gerarchia delle directory di Unix
Una directery principale, chiamata root e indicata con
/, contiene tutti le directory del
calcolatore, le quali a loro volta contengono altre directory... fino al
livello piu` interno che contiene i file (dati o
programmi).
Invece di mostrare le directory (come le cartelle Windows o Mac), in Unix
vengono mostrate le relazioni tra directory, mediante un albero rovesciato.
In cima abbiamo le radici (root) mentre i rami sono le sottodirectory.
bin, usr, home, dev, etc, sbin.... sono delle sottodirectory di root
didnnm,
didnnv etc... sono sottodirectory
di home (nn e' il numero del vostro PC).
Ogni gruppo ha un account
(did01m ... did16m , did01v ...
did16v) cui corrisponde una home directory sotto
home.
Indirizzo di un file nel
file-system Unix
Un file puo` essere identificato tramite
il suo pathname
completo (ad esempio il file cp della directory /bin: /bin/cp
), anche se esistono delle
scorciatoie.
In particolare gli eseguibili (comandi) vengono
cercati di default in una lista delle directory che include /bin e quindi generalmente non e` necessario indicare tutto
il path (cammino) e /bin/cp
equivale a cp.
Inoltre la directory in cui ci si trova in
quel momento (present working directory, ottenibile mediante il comando pwd) non ha bisogno di essere specificato, quindi per
copiare un file A in un file B entrambi nella directory corrente e` sufficiente
scrivere
cp A B
per copiare invece il file A dalla
directory dell'utente didnnm nella directory corrente, home directory
dell'utente didnnv, si puo` procedere mediante indirizzi assoluti
cp
/home/didnnm/A
/home/didnnv/B
cp
/home/didnnm/A
B
oppure usando gli indirizzi relativi
cp
../didnnm/A
B
(
../ e` la directory al di sopra di
quella attuale, ./ e' la directory corrente)
Navigazione nel file-system
pwd
present working directory, nessun
argomento, ritorna l'indirizzo della directory corrente
cd
change directory, seguito da un argomento
con la directory di destinazione, che puo` essere un indirizzo assoluto o
relativo
esempio, partendo dalla directory /home/did01m
cd
..
ci porta in
/home
cd
/home
ci porta in /home
cd
Desktop
ci porta nella sottodirectory Desktop
cd
/home/didnnY/Desktop
ci porta nella sottodirectory Desktop(Y=A oppure Y=B)
cd
~/Desktop
stessa cosa! (~ indica la propria home directory)
ls
list, fornisce la lista dei files della
directory corrente o della directory di cui si fornisce l'indirizzo.
Questo comando ha delle opzioni utili, di
cui per il momento ne indichiamo una sola: -F
(NB in Unix un comando seguito dal
carattere - e poi da un'altro carattere indica un'opzione, per avere tutte le
opzioni di un comando digitare man nome_del_comando, da una pagina del manuale si esce premendo q).
ls -F mostra i
diversi tipi di files presenti nella directory in modo diverso:
i sottodirectory seguite dal simbolo
back-slash /
gli eseguibili seguiti dal simbolo *
i file di dati o di testo senza alcun simbolo particolare
Manipolazione di files
cp
A B
copy: richiede due argomenti, l'indirizzo del file da copiare e quello del
file su cui copiare
mv
A B
move: sposta il primo file nel secondo
rm
A
remove: cancella il file A
more
A
mostra il contenuto del file A pagina per pagina
less
A
molto simile al precedente
cat
A
mostra il contenuto del file A tutto insieme
mkdir
D
crea la directory all'indirizzo D
rmdir
D
cancella la directory all'indirizzo D (solo se vuoto)
Creazione di files
esistono molti modi per creare files in
Unix ma ci concentreremo sull'uso di uno dei piu` diffusi e potenti editor di
testo: emacs.
Per fare partire una sessione di emacs
basta digitare emacs, ma per poter mantenere l'uso della finestra di comandi ed
evitare di avere problemi nel salvataggio del file si consiglia di digitare emacs nomefile
&.
Il simbolo & alla fine di un comando lancia l'esecuzione del
comando in background. Un ulteriore consiglio e' quello di lanciare sempre
emacs indicando quale sia il file da editare, anche quando questo sia ancora da
creare: emacs miofile.txt &, in questo modo si evita di trovarsi in un
ambiente non ben definito (scratch) dal quale puo' essere difficoltoso salvare
correttamente.
Questo editor puo` fare tantissime cose ma
per oggi ci limitiamo ad usarlo per creare un file di testo, a vostro
piacimento, e salvarlo mediante la sequenza di comandi
Ctrl-x
Ctrl-s (Ctrl-
tasto control tenuto premuto insieme al tasto indicato subito dopo)
emacs vi chiedera` di fornire il nome del
file su cui salvare il contenuto del suo buffer.
Si esce con Ctrl-x Ctrl-c.
Applicate i comandi elencati qui sopra
per eseguire le seguenti operazioni
a. controllare in che directory vi
trovate
b. se non siete nella vostra home
directory (/home/did01m o simili) portatevici
c. crearvi una sottodirectory ex1
d. verificare mediante il comando ls -F di averlo creato
e. spostarvi all'interno della
directory ex1
f. verificare col comando ls che questo e` vuoto
g. creare al suo interno un nuovo file
con emacs chiamandolo ex1.txt
h. leggerlo con il comando cat
i. leggerlo con il comando more: per avanzare di una pagina (files lunghi) premere la
barra, per uscire premere q
j. leggerlo con il comando less
k. rinominarlo esercitazione1.txt
l. se vi rimane tempo continuate ad
esercitarvi con emacs,
esploratene i menu e provate i comandi abbreviati sotto elencati
Ctrl-v spostamento in avanti di una pagina
Ctrl-p spostamento all'indietro di una riga
Ctrl-n spostamento in avanti di una riga
Ctrl-f spostamento in avanti di un carattere
Ctrl-b spostamento all'indietro di un carattere
Alt-f spostamento in avanti di una parola
Alt-b spostamento indietro di una parola
Ctrl-s ricerca in avanti
Ctrl-r ricerca all'indietro
Ctrl-x Ctrl-f nuova apertura di file
Ctrl-x Ctrl-s salva
Ctrl-x Ctrl-c esci
<canc> cancella il carattere precedente
Ctrl-k cancella la riga corrente dal cursore in poi
Ctrl-y incolla (l'ultima cosa cancellata)
Ctrl-x u undo (dell'ultima operazione)
Creazione di un file con i
vostri nomi
Nella vostra home directory, create un
file Nomi_2024_25_xxY.txt dove xx e' il numero del vostro gruppo e
Y e' un numero (1 , 2, 3) a seconda che frequentiate il laboratorio di giovedi
(Gruppo 1)’, lunedi’ (Gruppo 2) o martedi' (Gruppo 3).
Il file dovra' contenere:
- il
nome del corso
- l'anno accademico
- il giorno in cui frequentate il laboratorio (giovedi’, lunedi’o martedi')
e il numero corrispondente (Gruppo 1, 2 o 3)
- il numero del vostro gruppo (xx)
- il nome ed il cognome dei due studenti che compongono il gruppo