You are on page 1of 50

1

L'ambiente UNIX: primi passi


Sistemi UNIX multiutente
necessit di autenticarsi al sistema
procedura di login
Login: immissione di credenziali
username: nome identificante l'utente in
maniera univoca
password: parola chiave segreta
Logout: procedura di uscita dal sistema
S!LL: interprete di comandi
Shell considerata: "#S
"ourne #gain Shell $il seguito della shell di
"ourne%& '()(*+,,-
2
.omandi di base
.omandi shell di base $per la sopravvivenza%
ls: mostra contenuto di una director/
cd dir: entro nella director/ dir
passwd: cambio password
file filename: stampa il tipo di file di filename
cat filename: mostra il contenuto di filename
pwd: stampa la director/ corrente
e0it $logout%: esegue il logout
man command: pagine di manuale su command
info command: pagine info su command
apropos string: cerca informazioni su string nel
database whatis
3
1pzioni ed argomenti
.iascuno dei comandi di shell va battuto in
seguito al prompt
.iascun comando termina con la pressione del
testo !nter
I comandi prevedono opzioni ed argomenti
opzioni: specificano la modalit di operazione
argomenti: specificano su cosa si opera
1pzioni:
formato breve $ ls *a %

pi2 opzioni con un solo 3 $ls *al e4uivalente ad


ls *a *l%& se non 5 richiesto un argomento per
l'opzione
formato esteso $ ls 3all %
4
.ombinazioni tasti shell
Utili combinazioni tasti bash
.trl6a: muove il cursore all'inizio della riga
.trl6c: termina un programma in esecuzione
.trl6d: logout
.trl6e: muove il cursore alla fine della riga
.trl6l: pulisce la schermata
.trl6r: cerca la command history
.trl6z: sospende un programma
#rrow Up78own: naviga la command history
Shift69ageUp78own: naviga il buffer del
terminale
:ab: completa il comando7nome file
:ab :ab: mostra i completamenti possibili
5
elp in linea: man pages
man pages: pagine di manuale
installate con gli applicativi
man sezione comando
': comandi utente
+: s/stem call
;: funzioni libreria .
-: file speciali $7dev%
<: specifiche formati file $7etc7passwd%
=: giochi
>: varie
): strumenti amministrazione superutente
(: documentazione funzioni ?ernel
6
elp in linea: whatis e **help
apropos: interroga il database whatis
apropos stringa
!s@: apropos browser
opzione 3help:
mostra brevemente le opzioni di utilizzo di
un programma
7
1rganizzazione dei dati: i file
In un sistema UNIX& tutto 5 visibile sotto forma
di file
.iA che non 5 visibile sotto forma di file& lo 5
sotto forma di processo
Bile: contenitore di informazioni $se4uenza di b/te%
:ipi di file:
file regolari
director/
file speciali
lin? simbolici
domain soc?et
named pipe
8
1rganizzazione gerarchica dei file

I file sono organizzati in maniera gerarchica


$ad albero%

Bile: contenitori di dati

8irector/ $cartelle%: contenitori di file e di


director/

Biles/stem: un gruppo di director/ e file& a


partire da una director/ radice $root%
bin/
usr/
local/
/
terminal
9
#ccesso ai file: percorsi
assoluti7relativi

.iascun file puA essere acceduto seguendo il


percorso $path% dalla director/ radice al file

9ath assoluto: si parte dalla root

7bin7terminal 5 il path assoluto

9ath relativo: si parte da un'altra director/

terminal 5 il path relativo di terminal rispetto alla


director/ 7bin
bin/
usr/
local/
/
terminal
10
#ccesso ai file: percorsi
assoluti7relativi

Simboli speciali utilizzati nei percorsi:

C7D: indica la director/ radice ed 5 un separatore


nel percorso

C@D: indica la director/ in cui l'utente si trova


attualmente

C@@D: indica la director/ immediatamente


superiore a 4uella attuale

Un percorso relativo di solito si indica riferendosi


alla director/ attuale:

@7sottodir'7sottodir+7file

@7terminal

.ome stampiamo la director/ correnteE

comando pwd
11
Lin? a file

Un lin? puA essere visto come una scorciatoia


per raggiungere un dato tipo di file

Se leggo spesso il file


7usr7share7man7man'7ls@'@gz& devo scrivere il
percorso tutte le volte

Fli creo un lin?

un file che sta& per esempio& nella mia director/


e che CpuntaD al file in 4uestione

8ue tipi di lin?:

lin? fisici $hard lin?%

lin? simbolici $soft lin?%


12
Lin? fisici

Gengono creati col comando ln

ln sorgente destinazione

Hichiedono permessi di lettura su destinazione

!lemento di director/ sorgente puntante al file


destinazione

Sorgente e destinazione devono risiedere sulla


stessa partizione

poichI il lin? simbolico 5 solo una director/ entr/& in


essa non puA essere scritta una informazione
relativa al disco su cui si trova destinazione

Se elencato col comando ls& un lin? fisico non


presenta differenze con l'originale

9er cancellare definitivamente il file in 4uestione&


bisogna rimuovere tutti gli hard lin? con rm
13
Lin? simbolici

Gengono creati col comando ln *s

ln *s sorgente destinazione

Non richiedono permessi di lettura su


destinazione

Bile speciale $piccolo% contenente un percorso


assoluto al file destinazione

Sorgente e destinazione possono risiedere su


partizioni diverse

poichI ho il percorso assoluto scritto su file

Se elencato col comando ls& un lin? simbolico


presenta differenze con l'originale $sono due file
diversi%

La rimozione del lin? simbolico non comporta la


rimozione del file collegato
14
Gisione delle director/

.ome stampiamo a video la director/ correnteE

pwd

.ome visualizziamo il contenuto di una director/


4ualsiasiE

ls directory

#lcune opzioni comuni di ls:

*a: visualizza tutti i file& anche 4uelli nascosti $il


cui nome comincia con il carattere @%

*r: visualizza ricorsivamente tutto l'albero di


sottodirector/

**color: output colorato per diversi tipi di file

*l: formato lungo $tutte le informazioni di un file%


15
Utenti e gruppi

Fli utenti dei sistemi UNIX sono classificati in


user e group

user: nome identificativo $di solito JK ) caratteri% che


caratterizza l'utente

memorizzati nel file 7etc7passwd insieme a tutte le loro


altre propriet

group: 5 un insieme di utenti

memorizzati nel file 7etc7group

.iascun file ha associati:

un utente creatore del file $owner%

un gruppo di utenti che lavorano sul file $group%

Utenti e gruppi permettono di garantire permessi


di accessi ai file a gruppi di utenti distinti
16
Utenti e gruppi

id: mostra l'identificatore della propria utenza

Un utente puA appartenere a pi2 gruppi& ma puA


essere attivo in un solo gruppo alla volta

newgrp: permette di passare da un gruppo ad un


altro

newgrp staff

sg: permette di eseguire comandi sotto un altro


gruppo

sg Jnuovo gruppoL *c JcomandoL

1SS: anche i gruppi hanno una passwordM

puA capitare che newgrp e sg ve la chiedano@@@


17
9ermessi dei file

Schema UNIX di permessi: rw0

Head: permesso di lettura sul file

Nrite: permesso di scrittura sul file

eXecute: permesso di esecuzione del file

:re insiemi di permessi associati ad un file:

owner: permessi rw0 dell'owner

group: permessi rw0 del gruppo

other: permessi rw0 per tutti gli altri


18
9ropriet dei file
Gisibili con il comando ls *l
*rw0r*0r*0 ' root root ><>'= Oul += '>:'- 7bin7ls
19
9ropriet dei file
Gisibili con il comando ls *l
*rw0r*0r*0 ' root root ><>'= Oul += '>:'- 7bin7ls

:ipo di file e permessi particolari

*: file regolare $eseguibile& file testo%

b: dispositivo a blocchi

c: dispositivo a caratteri

d: director/

l: lin?

p: fifo

s: soc?et
20
9ropriet dei file
Gisibili con il comando ls *l
*rw0r*0r*0 ' root root ><>'= Oul += '>:'- 7bin7ls

9ermessi dell'owner

r: l'owner $root% puA leggere il file

w: l'owner $root% puA scrivere il file

0: l'owner $root% puA eseguire il file

1SS@: il bit 0 puA anche essere impostato ad

s: setuid bit $esecuzione con i privilegi


dell'owner%

accesso diretto risorse N da parte di utenti


21
9ropriet dei file
Gisibili con il comando ls *l
*rw0r*0r*0 ' root root ><>'= Oul += '>:'- 7bin7ls

9ermessi del gruppo

r: tutti gli utenti del gruppo root possono leggere


il file

*: tutti gli utenti del gruppo root non possono


scrivere il file

0: tutti gli utenti del gruppo root possono


eseguire il file
22
9ropriet dei file
Gisibili con il comando ls *l
*rw0r*0r*0 ' root root ><>'= Oul += '>:'- 7bin7ls

9ermessi di tutti gli altri

r: tutti gli altri possono leggere il file

*: tutti gli altri non possono scrivere il file

0: tutti gli altri possono eseguire il file


23
9ropriet dei file
Gisibili con il comando ls *l
*rw0r*0r*0 ' root root ><>'= Oul += '>:'- 7bin7ls
Numero di hard
lin? al file
24
9ropriet dei file
Gisibili con il comando ls *l
*rw0r*0r*0 ' root root ><>'= Oul += '>:'- 7bin7ls
1wner del file
l'utente root
Fruppo del file
il gruppo root
25
9ropriet dei file
Gisibili con il comando ls *l
*rw0r*0r*0 ' root root ><>'= Oul += '>:'- 7bin7ls
8imensione del
file in b/te
26
9ropriet dei file
Gisibili con il comando ls *l
*rw0r*0r*0 ' root root ><>'= Oul += '>:'- 7bin7ls
8ata ed ora di
creazione
27
9ropriet dei file
Gisibili con il comando ls *l
*rw0r*0r*0 ' root root ><>'= Oul += '>:'- 7bin7ls
9ath assoluto
del file
28
.reazione di file e director/
m?dir: creazione di director/
rmdir: rimozione di director/
touch: creazione di file vuoti
rm: rimozione di file e director/
*r: cancella in maniera ricorsiva le sottodirector/
*f: forza la cancellazione senza chiedere
1SS@: in Linu0 N1N esiste un meccanismo
semplice per l'operazione di undelete
$annullamento cancellazione file%
se per sbaglio cancellate un file& l'avete perso
per sempre
a meno che non siate dei bravi hac?er@@@
29
Podifica utente e gruppo di un file

chown: permette di modificare owner e gruppo


iniziale di un file

chown JopzioniL JownerL:JgruppoL JfileL

chown JopzioniL JownerL:JgruppoL


Jdirector/L

*H: opera ricorsivamente sulle sottodirector/


chown 3recursive root:staff 7root
30
Podifica permessi di un file

chmod: permette di modificare i permessi


associati ad un file

8ue tipi di sintassi:

ottale

numeri in codifica ottale associati ai singoli permessi


r&w&0: rK-& wK+& 0K'

i permessi sono rappresentati da ; cifre ottali $><<& =--%

testuale

primo set di caratteri rappresenta il tipo di permesso:


uKuser& gKgroup& oKother& aKall $ugo%

il set di caratteri successivi rappresentano una


maschera dei permessi per il tipo di permesso
selezionato: rKread& wKwrite& 0Ke0ecute

fra i due set di caratteri viene messo un 6 per abilitare i


permessi oppure un 3 per disabilitarli

posso dare pi2 maschere separate da virgole


31
Podifica permessi di un file

9er dare i seguenti permessi al file prova:

owner: rw0

group: rw0

other: r0
posso immettere i seguenti due comandi& del
tutto e4uivalenti:
andreoliQromanella R S chmod ><< prova
andreoliQromanella R S chmod ug6rw0&o6r0 prova
32
Bile speciali

Localizzati nella director/ 7dev& servono ad


accedere alle risorse del sistema

dispositivi a blocchi

dischi& cdrom& dvd

dispositivi a carattere

linee seriali& terminali& mouse

Struttura file speciale:

7dev7Tdevice maUorVTdevice minorVTnumeroV

device maUor: nome identificativo della classe di


dispositivo $disco !I8!& disco S.SI& %

device minor: numero identificativo del tipo di


dispositivo $disco fisso !I8!& cdrom !I8!%

numero: identificatore del dispositivo $primo disco&


secondo disco& @@@%
33
Il files/stem 7 di Linu0

Non esiste il concetto delle CunitD 81S

Un'unica radice per l'intero files/stem

Struttura di director/ che affonda le radici nella


storia pluri*decennale di Uni0

9rincipali director/:
bin/ dev/ etc/ home/ lib/ var/ usr/ tmp/ sbin/ proc/
local/
34
Il files/stem 7 di Linu0

7bin

!seguibili principali per far funzionare il sistema

:ra le altre cose deve contenere il comando


mount

7dev

8ispositivi fisici del sistema

Bilosofia di Uni0: tutto 5 un file

!sempi: 7dev7hda& 7dev7sda& 7dev7hda'

# partire dalla versione +@- di Linu0 sono state


introdotto modifiche importanti per
automatizzare la gestione dei dispositivi

devfs $?ernel +@-%

udev $?ernel +@=%


35
Il files/stem 7 di Linu0

7etc

Biles di configurazione del sistema

Struttura di director/ potenzialmente molto


complessa

.ontiene anche script per l'avvio del sistema


$7etc7init@d%

7home

Informazioni personali di ogni utente

una sottodirector/ per ciascun utente

7lib

Librerie di sistema

file @so $shared obUect% e4uivalenti alle dll di


Nindows
36
Il files/stem 7 di Linu0

7proc

Una finestra sulle strutture dati del ?ernel

Non 5 una director/ che risiede su un disco

!' un files/stem montato

1gni processo ha una sua sottodirector/

Sono presenti altri file che


mostrano7raccolgono informazioni per il ?ernel

7sbin

.ontiene eseguibili per il superutente

!sempi: shutdown& halt


37
Il files/stem 7 di Linu0

7tmp

8irector/ temporanea

:utti hanno diritto di scrittura su tale director/

7usr

#lbero di director/ simile per certi versi alla root


director/

Wualche tempo fa era usato per trarre vantaggio


da dischi condivisi in rete che ospitavano
software comune e CvoluminosoD

.ontiene software non essenziale

1ggi 5 ancora molto usato ma rimane per


ragioni storiche
38
Il files/stem 7 di Linu0

Sotto 7usr troviamo

7usr7bin& 7usr7lib& 7usr7sbin che


sono analoghi alle controparti
nella root director/

7usr7local

Software non essenziale per il


funzionamento del sistema da
non condividere tra pi2
macchine

7usr7X''H=

Software legato al sistema


grafico X*window
usr/
/
...
usr/local/
...
39
Il files/stem 7 di Linu0

7var

Bile che variano spesso

Log di sistema che vengono scritti molte volte al


giorno

8irector/ di spool per la posta

8irector/ di spool per la stampa

Bile temporanei con Cvita lungaD $che


rimangono anche dopo i reboot% vanno in
7var7tmp
40
Biles/stem e partizioni
9artizionamento dello spazio disponibile su
disco in aree logicamente separate
in caso di disastro& si rovina una sola area
le altre rimangono intatte
9artizioni:
dati $contengono i file%
swap $memoria aggiuntiva%
Una partizione di dati
5 associata ad una director/ del sistema& detta
mount point
contiene un files/stem
si usa dire: il files/stem JfsL 5 montato sotto la
director/ JdirL
41
Biles/stem e partizioni
Nomi partizioni:
file speciali $contenuti nella director/ 7dev%
identificano il dispositivo

!s@: 7dev7hda
file speciali con attaccato un numero intero
indicano la partizione

!s@: 7dev7hda'& 7dev7hda+


42
!sempio di partizionamento
7dev7hda'
7dev7hda+
7dev7hda;
bin/ dev/ etc/ home/ lib/ var/ usr/ tmp/ sbin/ proc/
local/
/
8evice Pount point
7
7home
7var
43
Festione delle partizioni
fdis?: gestione partizioni disco
creazione& distruzione& visione struttura
romanella R X fdis? *l 7dev7sda
8evice "oot Start !nd "loc?s Id S/stem
7dev7sda' ' '; ',-;(' de 8ell Utilit/
7dev7sda+ Y '- ''=, (+';+>>6 > 9BS7N:BS
7dev7sda; ''=' >+(= -(+)>-+, f N(< !0t'd $L"#%
7dev7sda< ''=' '+)) ',+)'+)6 b N(< B#:;+
7dev7sda= '+)( '+(; -,';' ); Linu0
7dev7sda> '+(- '<-; +,,),(; )+ Linu0 swap7Solaris
7dev7sda) '<-- >+(= -=+',(-' ); Linu0
df: occupazione spazio partizioni montate
andreoliQromanella R S df
Biles/stem'?*bloc?s Used #vailable UseZ Pounted on
7dev7sda) -<-)-(=- '-(''->+ +)+=+(-) ;<Z 7
44
:ipi di file
Wuali tipi di file riconosce Linu0E
Pultipurpose Internet Pail !0tension& HB.+,-<
Standardizzazione dei diversi contenuti di un file
Linu0 N1N adotta la convenzione Picrosoft
secondo la 4uale il tipo di file 5 determinato dalla
sua estensione
@e0e& @com& @doc& @0ls non hanno significato
l'utente Linu0 puA comun4ue usare estensioni
il S1 non le usa per CcomprendereD il tipo di file
.osa usa il S1 per comprendere il tipo di fileE
una lista di Cse4uenze magicheD di b/te
file 7usr7share7misc7files7magic
lunga lista di record del tipo:

offset& tipo dato& valore& tipo di file $PIP!%


45
:ipi di file
file: interfaccia al database dei tipi PIP!
dato un file& vi dice la natura dei suoi contenuti
andreoliQromanella R S file m/song@mp;
m/song@mp;: P9!F #8:S& la/er III& v'& '+) ?"its& --@' ?z& Stereo
andreoliQromanella R S file m/movie@avi
m/movie@avi: HIBB $little*endian% data& #GI& >+, 0 <>=& +<@,, fps&
video: 8ivX <& audio: P9!F*' la/er ; $stereo& -),,, z%
andreoliQromanella R S file 7bin7ls
7bin7ls: !LB ;+*bit LS" e0ecutable& Intel ),;)=& version ' $S[SG%& for
FNU7Linu0 +@-@'& d/namicall/ lin?ed $uses shared libs%& stripped
andreoliQromanella R S file 7etc7passwd
7etc7passwd: #S.II te0t
andreoliQromanella R S file 7dev7sda
7dev7sda: bloc? special $)7,%
46
.opia e spostamento di file e director/
cp: copia file7director/
cp JopzioniL JsorgenteL JdestinazioneL
*r: copia ricorsivamente sorgente in destinazione
$con tutte le sottodirector/%
*p: preserva $4uando possibile% utenze e permessi
originali dei file
*a: modalit archivio $e4uivalente a *r *p& ed altro%
mv: sposta file7director/
mv JopzioniL JsorgenteL JdestinazioneL
47
Hicerca di file
find: cerca il file richiesto in un albero di director/
find Jdirector/L *name Jnome fileL
find Jdirector/L *iname Jnome fileL
find Jdirector/L *name Jnome fileL *e0ec
JcomandoL \] ^_
lento $si scorre tutte le sottodirector/%
locate: interroga un database di locazioni dei
file
aggiornato tramite il comando updatedb
veloce
non permette di eseguire comandi sui risultati
48
Hicerca di contenuti nei file
grep: cerca la stringa richiesta nell'albero di
director/ specificato& e stampa le corrispondenze
$match%
grep JopzioniL JstringaL Jdirector/7fileL
*r: opera ricorsivamente nelle sottodirector/
*i: trascura maiuscole7minuscole $case
insensitive%
*: stampa il file contenente la stringa
*n: stampa il numero di riga del file contenente
la stringa
49
Gisione dei contenuti di un file
cat: stampa il contenuto del file su terminale
more: visione di un file non bufferizzata $solo in
avanti%
less: visione di un file bufferizzata $avanti e
indietro%
less *Pr presenta un indicatore di progresso di
lettura
head: stampa le prime n righe di un file
head *n ', file
tail: stampa le ultime n righe di un file
tail *n ', file
tail *f file output bufferizzato
echo: stampa una stringa su terminale
50
Identificazione di file:
espressioni regolari
less: visione di un file bufferizzata $avanti e
indietro%
less *Pr presenta un indicatore di progresso di
lettura
head: stampa le prime n righe di un file
head *n ', file
tail: stampa le ultime n righe di un file
tail *n ', file
tail *f file output bufferizzato
echo: stampa una stringa su terminale

You might also like