Sei sulla pagina 1di 39

Corso base Linux

1a sessione

Novembre 2012
Programma

● Introduzione

● Partizionamento dischi
● Fdisk
● Installazione

● Utilizzo base di VI

Novembre 2012
Introduzione

● Linux rappresenta solo il cuore del sistema


operativo, il cosiddetto kernel.
● È la sua parte più importante ma è solo una delle
tantissime che lo compongono.
● In particolare si tende a chiamare più
correttamente il sistema operativo GNU/Linux,
per evidenziare il contributo del progetto GNU.
● Noi, per brevità, lo chiameremo semplicemente
Linux

Novembre 2012
Introduzione

● Multiutente
● Multitasking
● Aperto
● Portabile
● Stabile
● Personalizzazione libera
● Sicurezza

Novembre 2012
Introduzione

● Una distribuzione Linux, detta comunemente anche


distro, è una distribuzione software che include un
kernel Linux e un insieme variabile di altri strumenti e
applicazioni software, siano esse freeware, open
source o commerciali.

● Le due grandi famiglie attuali:


● basate su Red Hat
● Fedora

● Suse

● basate su Debian
● Ubuntu

● Knoppix

Novembre 2012
Partizionamento

Novembre 2012
Partizionamento

Lo standard POSIX prevede la


presenza delle seguenti directory
di sistema:

● boot ● home
● sbin ● tmp
● sys ● dev
● etc ● lib
● opt ● usr
● var ● proc
● bin

Novembre 2012
Partizionamento

/boot
Contiene il kernel, la sua configurazione attuale, le
mappe dei simboli di sistema e i files del boot manager
GRUB.

Attenzione alle modifiche dei file in questa directory e


sue sottodirectory!

Novembre 2012
Partizionamento

/etc
Contiene tutti i file di configurazione di sistema.

● Molti programmi memorizzano il file customizzato


nella home dell'utente
• Script di avvio e chiusura
• Password (oscurate)

Novembre 2012
Partizionamento

/bin
● Contiene gli eseguibili di base
● cp, rm, mv, ls...
● echo, cat...
● kill, stat...
● le shell disponibili

Novembre 2012
Partizionamento

/sbin
Equivale a /bin per superutenti

Contiene comandi specifici di amministrazione:

● per la rete (es. setup, ifconfig)


● per i dischi (es.fdisk)
● per il logging (es. logrotate, logsave)
● per il boot (es. firstboot)

e molti altri...

Novembre 2012
Partizionamento

/usr
Contiene i programmi utente, ad esempio:

● il sistema grafico X + window manager


● le utility evolute per l'utilizzo e la configurazione di:
● applicazioni desktop

● stampanti

● dischi

● librerie

e molto altro...

Novembre 2012
Partizionamento

/opt
● Directory nuova, non molto usata
● Dovrebbe sostituire /usr/local
● Ci vanno programmi che mal si adattano a mettere i
propri eseguibili in /bin e le proprie configurazioni
in /etc, separatamente.
● Java ha abitato per lungo tempo qui

Novembre 2012
Partizionamento

/tmp
● Una cartella ad accesso universale dove tutti
possono andare a scrivere e cancellare
● Tutti i programmi vi possono appoggiare file
temporanei durante la loro esecuzione e tutti gli
utenti possono analogamente usare lo spazio
comune

Occhio ad eventuali usi impropri dello spazio!

Novembre 2012
Partizionamento

/var
Contiene (ad esempio):
● i file di logging

● i lock dei programmi

● le mailbox

Novembre 2012
Partizionamento

/dev
Directory dei dispositivi virtuali:
● dischi e partizioni

● porte seriali, parallele, ausiliari, . . .

● frame-buffer, video, ram, . . .

● terminali seriali e virtuali

● standard input, output e error

● zero, null e random

Novembre 2012
Partizionamento

/home
La propria cartella personale

È possibile indicarla tramite


● path assoluto: /home/nomeutente

● oppure ~ (tilde): ~/

● Raggiungibile con il comando cd senza parametri o


con cd ~
• Potete fare (quasi) tutto quello che volete qui

Novembre 2012
Partizionamento

/sys e /proc

Cartelle appartenenti a filesystem virtuali, generate


dinamicamente durante l'attività del kernel.

Contengono variabili di sistema e notizie sullo stato


dei dispositivi e processi

Novembre 2012
9

Partizionamento

Minimo
Sono richieste almeno due partizioni:
● una partizione generale (/, root) in cui saranno memorizzati tutti i file
● una partizione di swap (usata come Memoria Virtuale)

Consigliato
E' preferibile creare le seguenti partizioni:
● / (root), sotto la quale si trovano tutte le altre directory
● /boot, dove risiedono il kernel ed i file di boot
● /var, dove risiedono file che cambiano di dimensione, tipicamente i log.
È utile averla su partizione indipendente per evitare che un aumento
inatteso dei log riempia tutto il filesystem
● /home, file degli utenti. Può essere piccola e praticamente inutilizzata
(mail, dns server) o molto grossa e piena di documenti (web, file server)
● /tmp, dove risiedono file temporanei. È bene avere anche questa
directory su partizione indipendente

Novembre 2012
0

Installazione - Gparted

Qualora ci trovassimo con un disco rigido già


partizionato è possibile installare ugualmente Linux
senza perdere i dati esistenti utilizzando Gparted.
Gnome PARTition Editor - http://gparted.sourceforge.net/
E' possibile ridimensionare le partizioni esistenti
mantenendone il contenuto inalterato e liberare lo
spazio necessario all'installazione di Linux.
Alcune distribuzioni permettono di utilizzare questo
software durante l'installazione.

Novembre 2012
1

Fdisk

● Fdisk

Novembre 2012
2

Installazione - I Device

Device
In Linux (come in Unix) i dispositivi sono rappresentati da file contenuti
all'interno della cartella /dev.
In particolare i dischi rigidi di tipo IDE vengono indicati con:
/dev/hda per il primo disco presente sul primo controller IDE /dev/hdb per
il secondo disco IDE e così via.....
Dischi di tipo SCSI o SATA vengono identificati con /dev/sda, /dev/sdb
ecc.
Allo stesso modo le partizioni presenti nel disco /dev/sda vengono
indicate con:
/dev/sda1, /dev/sda2, ecc..
Mount Point
Le partizioni per essere visibili devono essere montate all'interno di una
directory sotto /
Per ognuna va indicato il relativo punto di mount:
/dev/hda1 ➔ /home
/dev/sda2 ➔ /

Novembre 2012
3

Installazione - Il Boot Loader

LILO o GRUB non si limitano solo al caricamento di Linux, ma


sono a tutti gli effetti dei veri e propri boot manager.
Consentono il caricamento di altri sistemi operativi presenti sul
disco rigido.

Durante l'installazione viene chiesto se installare il boot loader nel


Master Boot Record (MBR) o all'interno di una partizione Linux.
Normalmente si installa nel MBR quando Linux è il solo sistema
operativo o si vuole usare il boot loader anche come come boot
manager.

L'installazione del boot loader va eseguita con molta cura, un


errore può causare l'impossibilità di avviare il/i sistema/i
operativo/i presenti su disco rigido.

Novembre 2012
4

Utilizzo base di VI

Ci serve un editor di testo?

Cambiare una semplice configurazione?


# echo “1” > /etc/sys/net/ipv4/ip_forward

Aggiungere una linea alla fine di un file?


# echo “x11-vm/compiz ~x86” >> /etc/portage/package.keywords

Configurare /etc/apache2/httpd.conf?
???

Ci serve decisamente un editor di testo!

Novembre 2012
5

Utilizzo base di VI

Perché imparare ad usare vi?

● E' un editor prestante


● Compiti complessi con pochi tasti
● Efficace supporto per le regex nelle search and
replace
● E' presente in ogni sistema certificato POSIX come
Mac Os X, Solaris, BSD/OS, HP-UX, AIX, ...
● Aumenta la produttività, quando siamo padroni
dell'editor le operazioni sono molto rapide

Novembre 2012
6

Utilizzo base di VI

Cloni VI
Ci sono diverse versioni ( o Cloni ) di vi, ognuno con
funzionalità aggiuntive, ma che condividono tutti lo stesso
sottoinsieme di comandi e meccanismo di funzionamento.

• Vim ( aka "Vi IMproved" ) http://www.vim.org


• Elvis
• nvi
• Vile
• Gvim ( with gui )
• Bvi ( for binary files )
• Calvin ( for DOS OS )
• Lemmy, Elwin , WinVi ( for Windows OS )

Novembre 2012
7

Utilizzo base di VI

Diversi modi di avviare vi:

● you@yourhost$ vi
● you@yourhost$ vi file # Crea file se non esiste
● you@yourhost$ vi file1 file2 ... # Visualizza file1 poi file2
● you@yourhost$ vi -r file # Recupera file dopo un crash
● you@yourhost$ vi +string file # Esegue il comando string
● you@yourhost$ vi +23 file # Apre il file alla linea 23
● you@yourhost$ vi @rcfile # Legge I comandi da @rcfile

Novembre 2012
8

Utilizzo base di VI

• Command mode
Il cursore è sul testo, potete digitare solo comandi, e
nessuno dei caratteri che digitate viene visualizzato. Potete
solo vedere gli effetti dei comandi che inserite.
• Input mode
Ci si aspetta che in questa modalità digitiate del testo, che
viene visualizzato ed inserito. Usate questa modalità solo
per inserire del nuovo testo.
• Directive mode
Vi si accede con il comando <:>.
Il cursore si sposta sull'ultima riga dello schermo preceduto
da ':'
Vengono visualizzati I caratteri delle direttive inserite.

Novembre 2012
9

Utilizzo base di VI

Command mode e insert mode


Quando entrate in insert mode vedrete “ --INSERT-- “ in fondo a
sinistra sullo schermo. Se non è presente è probabile che siate in
command mode.
• Potete accedere all'insert mode con <i> ...
Ciò che digiterete verrà inserito prima della posizione del cursore.
• ... o con <a>
'append' ha l'effetto di inserire il testo digitato dopo la posizione
corrente del cursore.
• <Esc> permette di tornare in modalità normale
<:> apre directive line dove si possono inserire comandi per la
gestione dei file come <w> per 'write' e <q> per 'quit'.
quindi,
<a> [ text ] <Esc><:><w><q>
significa “ aggiungi text dal cursore, poi salva ed esci da vi” .
Novembre 2012
0

Utilizzo base di VI

Comandi principali
:w salva il file corrente
:w file salva il file corrente con nome file
:w! salva il file corrente sovrascrivendo
:q esce dall'editor
:q! esce dall'editor senza salvare cambiamenti
:wq esce dall'editor salvando i cambiamenti
:x esce dall'editor salvando i cambiamenti
:e file 'edit' apre file
:r file 'read' copia il contenuto di file sulla linea successiva
:n 'next' passa al prossimo file
:rew 'rewind' file list, torna al primo file della lista
:!cmd esegue il comando cmd

Novembre 2012
1

Utilizzo base di VI

Spostare il cursore

1G Muove all'inizio del testo


H Muove all'inizio dello schermo
M Muove al centro dello schermo
L Muove alla fine dello schermo
{ or } Muove all'inizio o alla fine del paragrafo
( or ) Muove all'inizio o alla fine della frase
$ Muove alla fine della linea
^ Muove al primo carattere non-blank della linea
n| Muove alla colonna n della linea corrente
w Muove al primo carattere della prossima parola
e Muove all'ultimo carattere della prossima parola
b Muove al primo carattere della parola precedente
+ Muove al primo carattere non-blank della prossima linea
- Muove al primo carattere non-blank della linea precedente

Novembre 2012
2

Utilizzo base di VI

Entrare nella modalità inserimento


Ctrl+G visualizza le informazioni inerenti il file corrente sull'ultima linea
i entra in insert mode, prima della posizione corrente
I entra in insert mode, all'inizio della linea
a entra in insert mode, dopo la posizione corrente
A entra in insert mode, alla fine della linea
o insert mode in una nuova linea, sotto la linea corrente
O insert mode in una nuova linea, sopra la linea corrente
J unisce la linea corrente e la successiva
u annulla l'ultimo cambiamento
U annulla tutti I cambiamenti effettuati sulla linea
<< sposta a sinistra la linea corrente
>> sposta a destra la linea corrente
<L sposta a sinistra tutte le linee dalla corrente all'ultima
visualizzata
>L sposta a destra tutte le linee dalla corrente all'ultima
visualizzata
Novembre 2012
3

Utilizzo base di VI

Comandi base

yy copia la linea corrente


3yy copia 3 linee a partire dalla corrente
yw copia fino al primo carattere della prossima parola
y) copia fino alla fine della frase corrente
yfz copia fino al primo carattere 'z' trovato
y$ copia fino alla fine della linea corrente

dd, 3dd, dw, d), dfz, d$ ... come sopra

p copia il contenuto del buffer nella posizione corrente


P copia il contenuto del buffer dopo la posizione corrente

Novembre 2012
4

Utilizzo base di VI

Ricerca

/pattern Ricerca il pattern


?pattern Ricerca il pattern a ritroso nel testo

n Ripete l'ultima ricerca


N Inverte l'ordine dell'ultima ricerca
/,? Ricerca usando l'ultimo pattern

Novembre 2012
5

Utilizzo base di VI

Espressioni regolari

Un'espressione regolare (regex) è una stringa,


solitamente racchiusa tra delimitatori, che include
wildcards, moltiplicatori e sequenze di escape, al fine
di poter riconoscere un'intera classe di stringhe.

Sono molto comuni nei linguaggi di programmazione


e scripting

Diverse sintassi nelle varie implementazioni:


GNU grep, perl, php, python, tcl, etc ...

Novembre 2012
6

Utilizzo base di VI

Espressioni regolari

^ Inizio della linea


$ Fine della linea
\w Carattere alfanumerico
\W Carattere non alfanumerico
\< Inizio parola
\> Fine parola

. Carattere qualsiasi

* occorrenza 0-n
? occorrenza 0-1
+ occorrenza 1-n

Novembre 2012
7

Utilizzo base di VI

Search & replace


:range definisce un range ( n , . , $ , % )
:r s / exp / text / sostituisce il primo match di exp con text
:r s / exp / text / c chiede conferma prima di sostituire
:r s / exp / text / g sostituisce ogni match di exp con text
:r s / exp / text / n sostituisce i primi n match di exp con text

: n , m g / exp / cmd ricerca nelle righe tra n ed m il pattern


exp, ed esegue il comando cmd

Esempi
:4,16g/exp/s//text/ ricerca exp tra le linee 4 e 16, e
sostituisce ogni occorrenza trovata con
text

:5,20g/exp/d elimina ogni riga trala 5 e la 20 in cui è


presente un'occorrenza di exp

Novembre 2012
8

Utilizzo base di VI

Opzioni

:set ic ricerca 'ignore case'


:set noic disabilita 'ignore case'
(si può usare /pattern\c per una singola ricerca ic)

:set smartcase abilita la ricerca delle maiuscole


solo quando utilizzate nel pattern

:set number attiva la numerazione delle righe

...
:set [no]option [dis]abilita l'opzione

Novembre 2012
9

Fine della presentazione

Grazie per l’attenzione

DGS S.p.A.
Via di Grotta Perfetta, 641 - 00142 Roma
Tel.: +39 06 581 18 93
Fax: +39 06 583 00 182
www.dgsgroup.it

Novembre 2012

Potrebbero piacerti anche