linux & emacs - unipdaceccato/intro_2011_2012/lezione_linux... · organizzazione ad albero i...

76
1 Linux & Emacs Linux & Emacs Linux & Emacs Linux & Emacs

Upload: others

Post on 16-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

11

Linux & EmacsLinux & EmacsLinux & EmacsLinux & Emacs

Page 2: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

22

• Il software può essere diviso in due grandi classi: i programmi di sistemaprogrammi di sistema, che gestiscono le funzionalità del

sistema di calcolo i programmi applicativiprogrammi applicativi, che risolvono i problemi degli utenti

• L’insieme dei programmi di sistemaprogrammi di sistema viene comunemente identificato con il nome di Sistema OperativoSistema Operativo (SO)(SO)

• Definizione:Definizione: Un sistema operativo è un programma che Un sistema operativo è un programma che controlla l’esecuzione dei programmi applicativi ed agisce controlla l’esecuzione dei programmi applicativi ed agisce come interfaccia fra le applicazioni e l’hardware del come interfaccia fra le applicazioni e l’hardware del calcolatorecalcolatore

Cos’è un sistema operativo Cos’è un sistema operativo

Page 3: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Struttura del SOStruttura del SO

Interfaccia nucleo verso l’esterno

hardware

File system Gestore I/O Gestore processi

Gestore memoria

Gestore processori

Servizi richiesti dagli utenti al SO

nucl

eo

Page 4: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Struttura di un SOStruttura di un SO

Elementi principali di un SO: Shell (interfaccia SO e utente) Kernel (insieme di programmi che realizzano

le funzioni di base di un calcolatore)

Page 5: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Sistema operativo: Sistema operativo: shellshell Shell (guscio): interfaccia tra SO e utenti E’ il programma che permette agli utenti di

comunicare con il sistema e di avviare I programmi

Di solito grafica (GUI – Graphical User Interface), ma anche testuale

Page 6: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Sistema operativo: Sistema operativo: kernel kernel

Kernel (nucleo): programmi per le funzioni base del calcolatore

Kernel suddiviso in moduli Ogni modulo ha una funzione diversa Funzioni piu’ importanti:

gestione processigestione processigestione processorigestione processorigestione memoria (principale e secondaria)gestione memoria (principale e secondaria)gestione dispositivi di I/Ogestione dispositivi di I/O

Page 7: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Struttura del SOStruttura del SO

Interfaccia nucleo verso l’esterno

hardware

File system Gestore I/O Gestore processi

Gestore memoria

Gestore processori

Servizi richiesti dagli utenti al SO

nucl

eo

Page 8: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

88

• Poiché la memoria principale è volatile e troppo piccola per contenere tutti i dati e tutti i programmi in modo permanente, il computer è dotato di memoria secondariamemoria secondaria In generale, la memoria secondaria è data da hard disk e

dischi ottici• Il SO garantisce una visione logica uniforme del processo di

memorizzazione: Astrae dalle caratteristiche fisiche dei dispositivi per definire

un’unità di memorizzazione logica − il filefile Ciascuna periferica viene controllata dal relativo device driver,

che nasconde all’utente le caratteristiche fisiche variabili dell’hardware: modalità e velocità di accesso, capacità, velocità di trasferimento

La gestione della memoria secondaria La gestione della memoria secondaria −− 1 1

Page 9: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

99

• Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria secondaria:

Allocazione dello spazio

Gestione dello spazio libero

Ordinamento efficiente delle richieste di accesso al disco

La gestione della memoria secondaria La gestione della memoria secondaria −− 2 2

Page 10: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

1010

• Il file è l’astrazione informatica di un archivio di dati Il concetto di file è indipendente dal mezzo sul quale viene

memorizzato (che ha caratteristiche proprie e propria organizzazione fisica)

• Un file system è composto da un insieme di file• Il SO è responsabile delle seguenti attività riguardanti la

gestione del file system: Creazione e cancellazione di file Creazione e cancellazione di directory Manipolazione di file e directory Codifica del file system sulla memoria secondaria

La gestione del file system La gestione del file system

Page 11: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

FileFile

Per ogni file vengono memorizzate varie ulteriori informazioniidentificatore: nomefile.estensionedata di creazione e ultima modificadimensioneposizione effettiva dei dati nella memoria di massadiritti di accessoetc

Page 12: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Estensioni dei fileEstensioni dei file

.exe : programma eseguibile

.txt : file di testo

.doc : file di Microsoft Word

.xls : file di Microsoft Excel

.jpg, .gif : file di immagini

.wav, .mp3 : file di suoni

.mpg, .avi : file di filmati

.c, .cpp, .java : file di programmi C, C++, Java

Page 13: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Operazioni su fileOperazioni su fileCreazioneAperturaChiusuraCancellazioneCopia RinominaVisualizzazioneLetturaScritturaModifica…

Page 14: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Organizzazione dei fileOrganizzazione dei fileI file sono organizzati logicamente in modo gerarchico.

la organizzazione logica permette l'astrazione dalla loro organizzazione fisica nella memoria di massa.

L'unità principale di raggruppamento si chiama directory: un insieme di file e altre directory.

Page 15: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Organizzazione ad albero

● I dischi fissi sono divisi in partizioni.● Ogni partizione e' organizzata gerarchicamente come un albero rovesciato (come quello genealogico).● Ogni nodo dell'albero è file o directory.● I nodi sono organizzati per livelli e legati con relazioni del tipo padre-figlio.● Un figlio ha un solo padre.● Un padre potrebbe avere più figli.● Directory: un nodo che può avere figli.● File: un nodo senza figli.● Il padre più in alto = radice

directoryfile

Page 16: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

A

ED

CB

F

d e

a

b c

hgf

/A/c

radice

/A/C/D/f

/A/C/E/h

/

Linux: Organizzazione dei file

directory

file

/a

path (percorso): la sequenza di nodi dalla radice “/” fino ad un certo nodo

Page 17: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Percorso relativo e assolutoPercorso assoluto: un percorso che specifica la posizione di un file a partire dalla radice:

Esempio: percorso assoluto del file d: /A/B/d (inizia per “/”)

Percorso relativo: la posizione di un file a partire da una posizione all' interno dell'albero dei file (solitamente da una “directory corrente”)

Esempio: direttory corrente: /A percorso relativo del file d:B/d (inizia senza “/”)

Page 18: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Vari sistemi operativiVari sistemi operativiUnix La sua storia inizia nel 1969Sistema portabile scritto in linguaggio CSO multi-utente, multi-tasking, time-sharingDosProgettato da Microsoft nel 1980 per IBMSO mono-utente,mono-taskingInterfaccia a linea di comandoWindowsProgettato da Microsoft nel 1985SO multi-utente,multi-tasking, time-sharingInterfaccia grafica a finestreMac OSProgettato dalla Apple a partire dal 1984è il sistema operativo per i computer Macintosh

Page 19: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: permessi sui fileLinux: permessi sui fileOgni file ha una serie di permessi associati che indicano chi puo’ eseguire operazioni sui file e che tipo di operazioniGarantisce la sicurezza delle attivita’ degli utenti e del sistema stessoTipi di permessoLettura, scrittura, esecuzioneDestinatariProprietario, gruppo di utenti, altri

Page 20: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: permessi sui fileLinux: permessi sui fileI permessi• rwx-xr-x

• I permessi sono (fino a) 9 caratteri, raggruppati per 3, che indicano rispettivamente i permessi perl'owner, per il gruppo e per gli altri utenti.

Page 21: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: permessi sui fileLinux: permessi sui file--- nessuna autorizzazione--x esecuzione-w- scrittura-wx scrittura, esecuzione r-- lettura r-x lettura,esecuzione rw- lettura, scrittura rwx lettura, scrittura, esecuzione

Page 22: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: interfaccia grafica eLinux: interfaccia grafica e shellshell

Interfaccia graficapermette di lavorare graficamente con l’utilizzo di finestrePer essere piu’ intuitivo e semplice da usareRicorda l’interfaccia di Windows

• Barra delle applicazioni• Menu di avvio• Visualizzazione del file system attraverso icone

Shell l’interfaccia testuale tramite la quale l’utente puo’ operare con il sistema

Page 23: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: interfaccia graficaLinux: interfaccia grafica

Per aprire una shell:

Cliccare su ‘Applicazioni’ nel menu di avvio dove si trovano tutti gli applicativi del sistema

Cliccare su ‘Terminale’

Page 24: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comandiLinux: comandi

Sintassi generale di un comando (dalla shell)nome_comando [opzioni] [argomento1…argomentoN]

Tra parentesi quadre vengono poste le stringhe che non sono necessariamente usate

Le stringhe vanno separate da spaziI nomi dei comandi vanno specificate con lettere

minuscole (Linux e’ case sensitive)

Page 25: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comando pwdLinux: comando pwd

Indica la posizione attuale nel file system con il percorso completo pwd

Esempio: pwd /home/aceccato

Esercizio: visualizzare la posizione all’avvio della shell

Page 26: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comando lsLinux: comando lsVisualizza il contenuto di una cartella o i file ls [opzione] [nome_directory] [nome_file]

Opzioni: -a

• elenca tutti i file compresi quelli nascosti- l

• per ogni elemento della lista fornisce informazioni aggiuntive-R

• discende ricorsivamente anche tutte le sottodirectory-t

• Elenca gli elementi in ordine temporale

Esercizio: visualizzare il contenuto della home con l’ausilio delle varie opzioni

Page 27: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comando cdLinux: comando cdUtilizzato per spostarsi tra directory all’interno del file systemcd [nome-directory]

• Entra nella directory specificata • Esempio: cd documenti

cd .. • Si sale di un livello nell’albero, posizionandosi nella

directory del livello immediatamente superiorecd

• Si ritorna all propria home

Esercizio: spostarsi nella cartella Desktop visualizzarne il contenuto e poi ritornare alla home

Page 28: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comando mkdirLinux: comando mkdirUtilizzato per creare directorymkdir [opzioni] nome_directory

Nomi utilizzabiliCaratteri alfabetici e numerici, _, -, .

Esempiomkdir intro1112

Esercizio: creare una directory ‘programmi’ e una directory ‘documenti’ nella propria homecrerare una directory ‘programmi2’ nella directory ‘programmi’ posizionarsi nella directory ‘documenti’

Page 29: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comando touchLinux: comando touchCrea un file vuototouch nome_file

EsempioTouch file.txt

Esercizio: creare un file vuoto ‘prova.txt’ nella directory ‘documenti’creare un file vuoto ‘prog1.txt’ nella directory ‘programmi’

Page 30: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comando cpLinux: comando cpCopia il file nella directory indicatacp [opzioni] file_origine nome_directory

nel file di destinazionecp [opzioni] file_origine file_destinazione

Esempio: cp file1.txt file2.txt

Esercizio 1: copiare il file ‘prova.txt’ che si trova nella directory ‘documenti’ nel file ‘prova2.txt’

Esercizio 2: copiare il file prova2.txt nella directory ‘programmi’

Page 31: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comando rmLinux: comando rmCancella i file specificati (non le directory)rm [opzioni] nome_file

Esempio: rm file1.txt

Esercizio: creare un sottodirectory ‘corso’ nella directory ‘programmi’copiare nella directory ‘corso’ il file ‘prova2.txt’ presente nella directory ‘programmi’rimuovere il file ‘prova2.txt’ dalla directory ‘programmi’

Page 32: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comando rmdirLinux: comando rmdirCancella una directory se e’ vuotarmdir nome_directory

Esempio: rmdir programmi

Esercizio: creare il file vuoto ‘nuovo.txt’ nella directory ‘corso’ e poi rimuovere la directory ‘corso’

Page 33: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comando picoLinux: comando picoSemplice editor di testo dalla shellPermette di creare, leggere o modificare file di testopico nome_file

Comandi principaliCtrl O salva fileCtrl X esce

Esercizio: aprire con pico il file ‘prova.txt’, che si trova nella directory ‘documenti’ , scrivere ‘Ciao’, salvare il file e uscire

Page 34: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comando manGuida per i comandi di Linuxman nome_comandoIndicaCome si usa il comandoTutte le opzioni permesse per i varia comandiSi naviga attraverso le frecceTasto q per chiudere il manuale

Esempio: man mkdir, man ls

Page 35: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comando moreLinux: comando more• Il comando:>> more nome_file

stampa a schermo il contenuto del file “nome_file”, una videata alla volta. Per scorrere alla prossima pagina si usa la barra spaziatrice, per terminare la visualizzazione si usa il tasto q

Page 36: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comando lessLinux: comando less• Il comando:>> less nome_filestampa a schermo il contenuto del file “nome_file” epermette di scorrere la visualizzazione per riga utilizzando i tasti “freccia in alto” e “freccia in basso”.

• Per terminare la visualizzazione si usa il tasto “q”(quando finisce esce comunque da solo)

Il contenuto viene visualizzato una videata alla volta. Per scorrere alla prossima pagina si usa la barra spaziatrice, per terminare la visualizzazione si usa il tasto q

Page 37: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Linux: comando topLinux: comando toptop [opzioni] Top produce un output a monitor diviso in una parte alta,

che contiene informazioni generali sul sistema, e in una parte sottostante, che mostra i processi e il loro utilizzo di CPU

Opzioni:- k + numero processo, termina il processo in questione.- r + numero processo, modifica il valore nice di un processo; cioè la

sua priorità, da -20 (massima priorità) a 19 (minima priorità). Quindi un valore nice negativo migliora le prestazioni di esecuzione di un processo rispetto ad uno positivo.

Uscite da 'top' premendo il tasto q.

Page 38: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

EMACS

Page 39: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

EMACS

• E' un editor di testo ma anche un ambiente di sviluppointegrato, cioè è possibile utilizzarlo sia per scrivereun programma che per compilare quest'ultimo edeseguirlo rimanendo all'interno di Emacs.

• Inoltre è altamente personalizzabile ed è presente intutte le installazioni di Linux.

Page 40: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

EMACS

Emacs fa un uso di combinazioni di più tasti. I tasti di cui Emacs fa maggiore uso sono normalmente abbreviati nella documentazione come C (per Control o Ctrl) e M per (Meta) (Alt).

Mentre le più moderne tastiere di PC hanno uno o più tasti etichettati come Ctrl, poche ne hanno uno etichettato come Meta. Ingenerale il tasto Alt corrsiponde al tasto Meta.

Page 41: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Tasti di controllo

• C-x f, significa “premere control-x e poi, dopo averrilasciato control, premere f”.

• C-x Cs, significa “premere control-x e poi, senzarilasciare control, premere s”.

• M-x shell significa “premere alt-x e digitare la parolashell”.

Page 42: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Buffer e file A differenza di alcuni editor, quando aprite un file in Emacs

questo non sta ``aperto'' tutto il tempo in cui lavorate con esso. Al contrario, Emacs legge il file in un buffer in memoria.

Mentre state editando il buffer e lavorando con i dati, niente è cambiato sul disco. Solo quando di fatto salvate il buffer, allora il file sul disco viene aggiornato.

Buffer significa ``una copia del file che si trova attualmente in memoria''. Un buffer non deve sempre essere riferito ad uno specifico file sul disco. Spesso Emacs creerà dei buffer come risultato dei comandi che lancerete. Questi buffer potranno contenere il risultato dei comandi, una lista di selezioni da cui scegliere e così via.

Page 43: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Avviare EMACS• Il modo comune per avviare Emacs è tramite ilcomando di shell

>>emacs• E' utile avviare Emacs in modalita' background, ovvero in una finestra diversa dalla shell, utilizzando il comando>>emacs &

In questo modo, non si tiene occupata la shell ed essa può quindi essere usata per avviare altri comandi. Appena si seleziona la finestra di Emacs è possibile iniziare a digitare comandi.

Page 44: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Avviare EMACS

• Un'altro modo di avviare Emacs e' tramite il comando>> emacs nomefile &che avvia Emacs visualizzando il file che ha il nome nomefile, se esiste, o visualizzando un nuovo file vuoto denominato nomefile se questo non esiste.• Ad esempio, per creare il file vuoto “prova” utilizzeremo ilcomando>> emacs prova &

Page 45: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Uscire da EMACS

• Esistono due comandi per uscire da Emacs, poiché vi sono due tipi di uscita, che consistono nel sospendere Emacs e nel chiuderlo.• Sospendere significa fermare temporaneamente Emacs e ridare il controllo al processo che lo ha avviato (solitamente la shell), permettendo in seguito di riprendere il lavoro nella stessa sessione di Emacs con gli stessi buffer, la stessa lista degli appunti, le stesse informazioni sulle modifiche, etc.

C-z Sospende Emacs

Page 46: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Uscire da EMACS• Chiudere Emacs significa terminare definitivamente il programma. È possibile riavviarlo nuovamente in seguito, ma si otterrà un Emacs nuovo: non c'e` modo di ripristinare esattamente la stessa sessione dopo che esso è stato chiuso.

C-x C-c Chiude Emacs

• Alla chiusura Emacs offre la possibilità di salvare tutti i buffer modificati che contengono dei file. Ogni modifica non salvata verrà persa definitivamente.

Page 47: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

RIGA DI STATO• L'ultima riga di ogni finestra di testo è chiamata riga di stato, e descrive brevemente lo stato della finestra Stessa. -cs:ch buffer (modalita')--linea--posizione------- Ch Se il buffer è stato modificato, ch contiene due asterischi **,

altrimenti contiene --. Se il buffer è a sola lettura, ch contiene %* se esso è stato modificato, %% altrimenti.

buffer è il nome del buffer associato alla finestra. Nella maggior parte dei casi, è lo stesso nome del file su cui si sta lavorando. Il buffer visualizzato nella finestra selezionata (la finestra in cui si trova il cursore) è anche il buffer selezionato, ovvero quello in cui è possibile effettuare modifiche. Quando si parla delle modifiche che un comando apporta al buffer, ci si riferisce al buffer correntemente selezionato.

Page 48: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

RIGA DI STATO

linea è una L seguita dal numero di riga ove si trova il cursore. La posizione informa se vi è altro testo che precede o che segue quello visualizzato nella finestra. Se il buffer è piccolo ed è completamente visibile nella finestra, posizione appare come All. In caso contrario, è Top se si sta guardando l'inizio del buffer, Bot se si sta guardando la fine, oppure n%, dove n è la percentuale del buffer che si trova prima del testo attualmente visualizzato in finestra.

Page 49: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Area dei messaggiLa riga in fondo alla finestra (subito sotto alla riga di stato) viene chiamata area messaggi: essa viene usata per mostrare brevi messaggi testuali.

Se un comando non può essere eseguito, esso può produrre un messaggio d'errore nell'area messaggi. I messaggi d'errore sono accompagnati da un suono o da un lampeggio dello schermo.

Alcuni comandi mostrano nell'area messaggi delle informazioni: il messaggio contiene informazioni sulle modifiche che il comando ha prodotto, specie se esse non sono evidenti guardando il testo su cui si sta lavorando (es. wrote file se avete salvato un certo file).

Page 50: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Area Messaggi

I messaggi che compaiono nell'area messaggi sono conservati in un buffer chiamato *Messages* .

Se si è perso qualche messaggio che è comparso brevemente sullo schermo, è possibile passare al buffer *Messages* per rivederlo.

L'area messaggi viene inoltre usata per mostrare il minibuffer, una finestra che serve per introdurre gli argomenti da passare ai comandi, come ad esempio il nome di un file da aprire.

Quando il minibuffer è in uso, l'area messaggi presenta del testo che solitamente finisce con due punti (:), ed in essa compare il cursore (visto che in quel momento il minibuffer è anche la finestra selezionata). È sempre possibile uscire dal minibuffer (e da ogni esecuzione di un comando) digitando C-g.

Page 51: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

BARRA MENU'

Ogni finestra di Emacs ha (in prossimità del margine superiore) una barra dei menù che può essere usata per effettuare una serie di operazioni piuttosto comuni. E' possible usare il mouse per scegliere un comando dalla barra dei menù.

Alcuni dei comandi nella barra dei menù sono associati a delle sequenze di tasti

Page 52: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Alcune combinazioni di tasti

TASTI FUNZIONE DESCRIZIONEC-x C-s Save Buffer Salva il buffer corrente sul

disco

C-x u oppure C-x _ Undo Annulla l'ultima operazioneC-c C-f Find file Apre un file dal discoC-s isearch-forward Cerca una stringa in avanti in

modo incrementale

C-r isearch-backward Cerca una strina in dietroC-h t Help with tutorial Usa la guida interattivaC-h x Describe key Mostra cosa fa una sequenza

di caratteri

Page 53: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Ricerca di stringhe

• Emacs puo' effettuare la ricerca di stringhe in posizione sia successiva (C-s) che precedente (C-r) alla posizione del cursore.• Cercare una stringa e' un comando che provoca lo spostamento del cursore: lo porta dove la stringa compare.• Il comando di ricerca di Emacs e' "incrementale“: La ricerca avviene proprio mentre si scrive la stringa da cercare.• Premendo C-s (o C-r) compare il messaggio "I-search" nell'area messaggi (l’ultima riga della finestra Emacs).

Page 54: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Ricerca di stringhe

• Durante una ricerca incrementale Emacs va al punto successivo in cui compare la stringa scritta fino a quel momento. Per raggiungere il punto successivo (precedente) in cui compare di nuovo la parola bastapremere C-s (C-r) di nuovo.• Se durante una ricerca incrementale si preme il tasto <Delete> l'ultimo carattere della stringa da cercare scompare e la ricerca torna all'ultimo risultato trovato prima che questo carattere fosse scritto.

Page 55: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Sostituzione di stringhe

• Emacs vi permette anche di sostituire tutte le ripetizioni di una stringa con qualche altra stringa. Per farlo, richiamate il sottomenu' replace dal menu' edit. • Ad esempio se volete sostituire tutte le ricorrenze di “hello” con “ciao”, nell'area messaggi, dopo le parole “Query replace'' digitate “hello” e premete invio; vi viene richiesto nuovamente dell'input, e dovete inserire “ciao”. Emacs quindi scorrerà il testo, si fermerà ad ogni ricorrenza della parola “hello”, e vi chiederà se volete sostituirla con “ciao”. Premete y o n ogni volta, per “yes” o “no”.

Page 56: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Salvare il file

• C-x C-s Salva il file• Questo copia il testo contenuto in Emacs nel file su disco. La prima volta che si effettua questa operazione Emacs dà un nuovo nome al file originale in modo da conservarlo. Il nuovo nome è ottenuto aggiungendo un carattere "~" alla fine del nome originale. Quando il salvataggio è terminato Emacs mostra il nome del file appena scritto, con il messaggio "Wrote ...nomefile" nella parte bassa dello schermo.

Page 57: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Salvare il file

• C-x C-s Salva il file• Se si apportano delle modifiche ad un file ma questo non e’ ancora stato salvato, queste modifiche potrebbero essere perse se il sistema si bloccasse. Quindi Emacs scrive periodicamente un file di salvataggio automatico per ogni file che viene modificato. Il nome del file di salvataggio automatico ha un carattere # all' inizio e alla fine: ad esempio se il file si chiama "pippo.txt" il nome del file di salvataggio automatico sarà "#pippo.txt#". Quando poi il file viene salvato nel modo consueto Emacs cancella il file di salvataggio automatico.

Page 58: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Compilatori in Linux

Page 59: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Compilatori in Linux

Page 60: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Editor in Linux

Page 61: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Editor in Linux

Page 62: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Editor in Linux

Page 63: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Compilatori in Windows

Page 64: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Compilatori in Windows

Page 65: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Compilatori in Windows

Page 66: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Compilatori in Windows

Page 67: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Editor in Windows

Page 68: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Compilatori in Mac

Page 69: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

Per iniziare

L'accoppiata migliore per iniziare è formata da:L'accoppiata migliore per iniziare è formata da:

• • un editor a scelta tra un editor a scelta tra jEdit ejEdit e Emacs Emacs perché tali perché talieditor sono disponibili per tutti i sistemi operativieditor sono disponibili per tutti i sistemi operativi

(inoltre se passate da un sistema all’altro i vostri file(inoltre se passate da un sistema all’altro i vostri file

sono portabili)sono portabili)

• • GCC GCC come compilatore perché in questo modo sicome compilatore perché in questo modo siimparano a compilare i programmi da console, conimparano a compilare i programmi da console, con

l'enorme vantaggio di esperienza rispetto all'utilizzol'enorme vantaggio di esperienza rispetto all'utilizzo

di sistemi automatici (IDE) come Dev-C++ o Kdevelop.di sistemi automatici (IDE) come Dev-C++ o Kdevelop.

Page 70: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente
Page 71: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

CYGWIN

Page 72: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

MINGW

Page 73: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

EMACS

Page 74: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

EMACS

Page 75: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

EMACS

Page 76: Linux & Emacs - UniPDaceccato/Intro_2011_2012/Lezione_Linux... · Organizzazione ad albero I dischi fissi sono divisi in partizioni. Ogni partizione e' organizzata gerarchicamente

EMACS