Il mio primo giorno in Laboratorio di Calcolo... - Informatica

Transcript

Il mio primo giorno in Laboratorio di Calcolo... - Informatica
Il mio primo giorno in Laboratorio di
Calcolo...
Disclaimer: alcune delle istruzioni che seguono potrebbero ledere la dignità di qualche lettore.
Tuttavia l'esperienza acquisita negli anni passati ci ha insegnato a non dare nulla per scontato.
✓
✓
✓
✓
✓
✓
✓
✓
Il computer dovrebbe essere già acceso; se lo schermo è nero è perché lo schermo è in
standby (in tal caso il led del monitor sarà arancione) o perché, sempre lo schermo, è
spento (in tal caso il led sarà spento). Per riattivare lo schermo in standby basta
muovere il mouse o premere qualche lettera a caso della tastiera. Per accendere lo
schermo...a voi il compito di capire come.
Potrebbe capitare che la macchina sia effettivamente spenta. In tal caso...accendetela ma
ricordate:
I COMPUTER (DEL LABORATORIO) NON DEVONO ESSERE SPENTI
QUANDO SI SMETTE DI USARLI, quindi chi ha usato la macchina prima di voi ha
sbagliato!
Prima di poter utilizzare username e password (le stesse della posta elettronica di
ateneo, senza il suffisso “@studenti.unimi.it”) per accedere alle macchine di laboratorio
dovete registrarvi a quest'ultimo accedendo, da un qualsiasi computer dotato di accesso
a Internet, alla pagina:
https://registrazione.fisica.unimi.it/cgi-sec/autentica.cgi
e seguendo le istruzioni lì date.
✓
✓
✓
Chi di voi avesse già ottenuto lo username e la password e provveduto a registrarsi
attraverso la procedura descritta sopra, immetta tali dati quando richiesti: fate attenzione
alle lettere maiuscole/minuscole e controllate che il CAPS-LOCK (quello che fa scrivere
tutte le lettere maiuscole) non sia stato accidentalmente premuto.
Coloro i quali, invece, fossero temporaneamente sprovvisti, per qualsiasi ragione, di
username e password convalidati, possono temporaneamente utilizzare
•
•
USERNAME: studente
PASSWORD: ChiBenComincia
✓
Le macchine del laboratorio usano il sistema operativo Fedora, appartenente alla
famiglia Linux. Quello che vedete davanti a voi è il Desktop (o scrivania). Nella parte
alta del monitor compare la barra dei comandi (analoga a quella di Windows) con dei
Menu (Applications ecc..) e delle icone. Cliccando sui Menu potrete vedere le varie voci
che contengono. Fermando invece il puntatore su una icona (senza cliccare) vedrete
comparire un'etichetta che spiega quale programma è associato all'icona.
Le icone che compaiono possono cambiare da utente a utente (mistero del Laboratorio)
e possono essere personalizzate (fatelo a tempo perso).
✓
✓
Oltre ai Menu e alle icone compaiono nella barra altre informazioni (data e ora) e altri
oggetti irrilevanti ai fini della vostra produttività.
✓
Chi di voi avesse già familiarità con Linux e i comandi di shell può ignorare quanto
segue di questa dispensa e cominciare ad adattare il proprio ambiente di lavoro alle
proprie esigenze. Gli altri non si spaventino: Linux fornisce una interfaccia con l'utente
estremamente simile a quella di Windows (finestre, cartelle, funzioni associate ai tasti
del mouse) e, per l'uso che ne farete durante questo corso, non sarà necessario entrare
nei dettagli del sistema. Tuttavia doverete imparare ad usare un oggetto scomparso da
tempo dai sistemi Windows: la shell di sistema.
La shell di sistema, o semplicemente shell, è un programma che consente di dare
comandi al
computer. I comandi che introdurremo in questa dispensa sono:
•
Comandi per l'esplorazione del file system (cd, ls, pwd)
•
Comandi per la copia, lo spostamento e la cancellazione di files (cp, mv, rm)
•
Comandi per l'accesso a computer in rete (ssh) e copia di file tra computer in rete (scp)
NOTA: molte delle operazioni che vedremo possono essere fatte utilizzando
direttamente l'interfaccia grafica, come in Windows. Tuttavia, conoscere questo insieme di
comandi è utile in
vista dell'utilizzo del sistema per la compilazione di programmi.
✓
•
•
•
•
Durante una giornata tipo in Laboratorio utilizzeremo i seguenti programmi di uso
comune:
Editor di testi: nedit
Browser Internet: Firefox (ad esempio perché non mi ricordo la sintassi dell'istruzione
printf, vado a controllarla su
http://www.cplusplus.com/reference/clibrary/cstdio/printf.html ).
Chi di voi non avesse dimestichezza con questi strumenti è pregato di acquisirne un po'
quanto prima in modo da potersi concentrare sui problemi di programmazione anziché
sull'ABC
✓
Alla fine di una sessione di lavoro dobbiamo scollegarcidal calcolatore (E NON
SPEGNERE). Per far questo clicchiamo sul menu System, selezioniamo la voce
Logout... e l'opzione Log Out.
Esplorazione del file system.
L'insieme dei files contenuti nel disco fisso di sistema è organizzato in cartelle (directory).
Ciascuna directory può contenere files o altre directory. Tale organizzazione dei files contenuti
nel computer è chiamata file system.
Per fare un esempio concreto e contingente, vediamo come è organizzato il file system di un
sistema Linux come Fedora.
La totalità dei files e delle cartelle è contenuta in una cartella chiamata root. Sotto la cartella
root (che si indica con lo slash /) si trovano un insieme di sottocartelle contenti tutti i
programmi e i files necessari al computer per funzionare (usr, bin, proc,...) e tutti i dati degli
utenti che utilizzano il computer (home).
Come risultato di questa organizzazione, ciascun file (o cartella) è univocamente identificato dal
suo nome completo, ovvero dal percorso che conduce dalla root alla cartella contente il file (o la
cartella) più il nome del file (o cartella). Ad esempio, il nome completo della cartella linus, nella
cartella home, a sua volta sottocartella della cartella / è /home/linus.
In Linux ad ogni utente viene assegnata una cartella personale, chiamata home directory,
avente tipicamente come nome il nome dell'utente. Tutte le home directories degli utenti si
trovano nella cartella home.
Nella figura qui a fianco è mostrato un esempio di struttura del file system a partire dalla home
directory /home/leslie. Negli esempi che seguono faremo riferimento a questo pezzo di file
system.
Comando cd (change directory):
Sintassi:
cd nome_directory
Descrizione: consente di accedere ad una sottocartella della cartella in cui mi trovo.
Esempio: mi trovo nella cartella props. Dando il comando cd customers mi porto nella
sottocartella customers della cartella props.
Sintassi:
cd nome_completo_directory
Descrizione: consente di accedere ad una qualsiasi cartella.
Esempio: mi trovo nella cartella leslie. Dando il comando cd /home/leslie/customers
(ricordiamo che tutte le home directory si trovano tutte sotto la catrella /home) mi porto nella
sottocartella customers della cartella props.
Sintassi:
cd ..
Descrizione: mi porta alla cartella contenente la cartella in cui mi trovo.
Esempio: facciamo riferimento alla figura qui sopra:sono attualmente nella cartella props della
figura. Dando il comando cd .. mi porto nella cartella leslie.
Comando ls (list) :
Sintassi:
ls
Descrizione: consente di visualizzare il contenuto della cartella in cui mi trovo.
Esempio: mi trovo nella cartella props. Digitando il comando ls vedrei comparire
(approssimativamente)
customers progetto1 progetto2
Il comando ls accetta delle opzioni; quella per noi più interessante è l'opzione -l (quindi il
comando complessivo: ls -l) che consente di visualizzare tutte le informazioni rilevanti sui file
contenuti nella directory (data di creazione, modifica, permessi di accesso, proprietario).
Comando pwd (print working directory):
Sintassi:
pwd
Descrizione: consente di visualizzare il nome completo della directory in cui mi trovo.
Esempio: mi trovo nella cartella props. Digitando il comando pwd ottengo:
/home/leslie/props
NOTA: Lavorando con la shell di sistema capita spesso di dimenticarsi in quale punto del file
system mi trovo: imparerete molto presto ad apprezzare questo comando.
Copia, Spostamento e Cancellazione di Files.
Passiamo ora alla descrizione dei principali comandi per la manipolazione dei files e delle
cartelle. Prima di procedere è necessaria una precisazione. Come detto poco fa, ogni file (e
directory) è identificata univocamente dal suo nome completo. Tuttavia, quando il file che mi
interessa è nella cartella in cui mi trovo o in una sua sottocartella, è sufficiente specificare solo il
percorso relativo alla cartella in cui mi trovo.
Esempio: mi trovo nella cartella props. Il nome customers/jones.new è equivalente al nome /
home/leslie/props/customers/jones.new.
Comando cp (copia):
Sintassi:
cp nome_file_da_copiare nome_directory_in_cui_copiare
Descrizione: consente di copiare un file in un'altra cartella. Il file copiato avrà lo stesso nome
dell'originale.
Esempio: mi trovo nella cartella props. Digitando il comando cp progetto1 customers
ottengo la creazione della copia del file progetto1 nella sottocartella customers.
Sintassi:
cp nome_file_da_copiare nome_file_in_cui_copiare
Descrizione: consente di creare una copia del file avente però un nome diverso.
Esempio: mi trovo nella cartella props. Digitando il comando cp progetto1 customers/
progetto1nuovo ottengo la creazione della copia del file progetto1nuovo nella sottocartella
customers.
Attenzione: se vogliamo copiare directory è necessaria l'opzione -r (recursive)
Sintassi:
cp -r nome_directory_da_copiare nome_directory_in_cui_copiare
Descrizione: consente di copiare una directory e tutto il suo contenuto in un'altra cartella.
Comando mv (move):
Sintassi:
mv nome_originale_file nuovo_nome_file
Descrizione: consente di rinominare un file in un'altra cartella. Ovviamente è possibile spostare
un file cambiandone il nome completo.
Esempio: mi trovo nella cartella props. Digitando il comando mv progetto1 progetto_bello
rinomino il file progetto1. Invece con il comando mv progetto1 customers sposto
progetto1 nella sottocartella customers.
NOTA: a differenza della copia, il comando mv si applica alle directory senza modifiche.
Comando rm (remove):
Sintassi:
rm nome_file (rm -r nome_directory)
Descrizione: consente di eliminare un file (o una directory).
Esempio: mi trovo nella cartella props. Digitando il comando rm progetto1 elimino il file
progetto1. Invece con il comando rm -r customers elimino sottocartella customers e tutto il
suo contenuto.
ATTENZIONE: se eliminiamo erroneamente un file (o una cartella) con il comando di shell rm
il file sarà definitivamente eliminato e non messo nel Cestino. Quindi attenti a non cancellare
per sbaglio giornate di lavoro!
Comando mkdir (make directory):
Sintassi:
mkdir nome_directory
Descrizione: consente di creare una directory
Esempio: mi trovo nella cartella props. Digitando il comando mkdir nuovadir creo la
directory nuovadir nella cartella props. La nuova cartella, ovviamente vuota, è una
sottodirectory della cartella props.
Accesso a calcolatori in rete e copia di file in rete.
Potrà capitarvi di lavorare su diversi computer, per esempio una macchina in laboratorio e il
vostro PC personale, e di dover trasferire files da una macchina all'altra. Uno dei sistemi più
semplici e diffusi è la chiavetta USB, capace sostituto del dischetto. Ciò richiede però l'accesso
fisico ad entrambi i computer.
Inoltre, motivi tecnici legati alla sicurezza del sistema informatico, non consentono operazioni
comuni come la copia dei files dalla vostra cartella a quella del collega con cui, per esempio,
avete condiviso il computer a lezione.
Un metodo alternativo per la copia diretta è la copia in rete. Il file system del laboratorio di
calcolo, e quindi anche la vostra home directory, sono in rete. Questo significa che, conoscendo
le coordinate giuste, potrete accedere ad esso da qualsiasi macchina collegata ad “internet”.
Vediamo qui due comandi di shell che consentono di manipolare files in remoto.
Comando ssh (secure shell):
Sintassi:
ssh [email protected]
Descrizione: consente di collegarsi al Laboratorio di Calcolo e di accedere ai propri files, come
se la shell da cui avete lanciato il comando fosse la shell del computer del laboratorio. Per
accedere dovrete ovviamente fornire la vostra password quando richiesta.
Comando scp (secure copy):
Sintassi:
scp nome_file_da copiare
[email protected]:nome_file_destinazione
Descrizione: siete fuori dal Laboratorio e volete copiare un file nella vostra home directory. Il
file specificato verrà copiato nella locazione indicata. Modificando il comando in scp -r è
possibile copiare directory.
Sintassi:
scp [email protected]:nome_file_da copiare
nome_file_destinazione
Descrizione: siete fuori dal Laboratorio e volete copiare un file dalla vostra home directory. Il
file specificato verrà copiato nella locazione indicata.
NOTA: per copiare directory si usano gli stessi comandi con l'opzione -r (quindi scp -r).
Come anticipato, è necessario usare il comando scp anche per copiare e directory nella home
dei vostri colleghi, anche se state usando entrambi lo stesso computer. Voi, infatti, non siete
autorizzati a farlo. Il vostro collega, usando la vostra shell, dovrà digitare
scp nome_file_da_copiare nome_file_destinazione
con la solita opzione -r in caso dovesse copiare una directory.
Dovrete quindi comportarvi come se voleste trasferire files tra computer distanti tra loro
attraverso la rete. A differenza di quanto succede quando state lavorando in remoto, però, non
sarà necessario specificare l'indirizzo del Laboratorio in rete (tolab.fisica.unimi.it): si applica un
ragionamento analogo a quello valido per il comando cd....ma questa è un'altra storia....