SlideShare a Scribd company logo
Percorso 5 
Bash 
2
Software di sistema (GNU) 
CLI 
Applicazioni 
GUI 
Hardware 
Kernel (Linux) 
Motivazioni 
•Accesso (più) diretto al sistema 
•Sistemi remoti (ssh) 
•Operazioni ripetute (batch file) 
•Esecuzione automatica 
Percorso 5 
Bash 
3
BASH 
•Standard (*NIX, MacOS, Windows, …) 
•Versatile e potente 
•Programmabile 
Percorso 5 
Bash 
4
Percorso 5 
Bash 
5
Lavorare con la Console (inizio) 
•Control+Alt+F1 
•Usare l’applicazione «Terminale» 
Percorso 5 
Bash 
6
Lavorare con la Console (fine) 
•Alt+F7 
•Comando «Exit» 
•Control+D 
•Chiudere il terminale 
Percorso 5 
Bash 
7
Convenzioni 
•Alcuni comandi richiedono argomenti 
cd NOME_CARETELLA 
•Il comportamento di (quasi) tutti i programmi può essere modificato attraverso opzioni 
cat -n foo.txt 
•Opzioni corte vs. opzioni lunghe 
cat -ns foo.txt 
cat --number --squeeze-blank foo.txt 
Percorso 5 
Bash 
8
Comandi 
•Interni (builtin commands) 
•Esterni 
•Alias 
Percorso 5 
Bash 
9
Aiuto / Informazioni Aggiuntive 
•Documentazione in /usr/share/doc 
–E.g.: less /usr/share/doc/bash/INTRO.gz 
Percorso 5 
Bash 
10
Aiuto / Informazioni Aggiuntive 
•Informazioni su di un comando 
comando --help (oppure: comando -h) 
man comando (e.g.: man man) 
whatis comando 
apropos comando 
type [-a] comando 
which comando 
info [ comando/opzioni ] 
Percorso 5 
Bash 
11
Il Prompt 
•Il prompt standard mostra 
–nome utente «@» nome macchina «:» cartella corrente «$» 
(ovvero «#» se l’utente è l’amministratore, ed è possibile fare molti danni) 
Percorso 5 
Bash 
12
Cartelle speciali 
•Punto «.» 
–la cartella corrente 
•Punti-punto «..» 
–la cartella padre della corrente 
•Tilde «~» 
–la propria cartella home (di solito /home/utente) 
•Tilde + nome «~foo» 
–la cartella home di foo (di solito /home/foo) 
Percorso 5 
Bash 
13
Edit della linea di comando 
•Bash permette di usare le frecce del cursore, e combinazioni di tasti usate da Emacs 
–Control+A, Control+E, Meta+f, Meta+b, … 
•«Freccia su»/«Freccia giù» permettono di muoversi fra i comandi precedenti 
Percorso 5 
Bash 
14
Autocompletamento 
Percorso 5 
Bash 
15
Control 
•Control+C 
–Invia SIGINT al processo corrente 
•Control+D 
–End Of File 
–Equivalente a Control+Z in MS-DOS/Windows 
Percorso 5 
Bash 
16
Variabili 
•La shell permette di definire «variabili» 
•Dollaro «$» per usare le variabili definite 
•Doppi apici vs. apice singolo 
Percorso 5 
Bash 
17
Variabili 
•Il comportamento e le opzioni di default della shell e di numerosi comandi sono definiti attraverso variabili 
•L’insieme delle variabili è detto «ambiente» (environment) 
•Usare il comando «set» per visualizzare le circa 50 variabili definite nell’ambiente corrente 
Percorso 5 
Bash 
18
$PATH 
•I comandi esterni vengono cercati nelle cartelle specificate nella variabile PATH 
•È possibile specificare in modo esplicito il path dei comandi (relativo o assoluto) 
Percorso 5 
Bash 
19
Alias 
•È possibile creare «alias» ai comandi (e.g., per memorizzare le opzioni usate sempre) 
•«alias» senza parametri mostra tutti gli alias 
Percorso 5 
Bash 
20
Nomi dei file 
•I sistemi POSIX mettono poche restrizioni ai nomi dei file, tuttavia è meglio evitare: 
•spazi, tab e «a capo» 
•caratteri che hanno significati convenzionali 
/  “ ' * ; ? [ ] ( ) ~ ! $ { } < > # @ & | 
•lettere al di fuori dal set ASCII base 
e.g.: ω è ë ê æ … 
Percorso 5 
Bash 
21
Nomi dei file 
•I nomi che contengono spazi devo essere racchiusi da apici o doppi apici 
Percorso 5 
Bash 
22
Esercizio 
•A cosa servono i comandi «basename» e «dirname»? 
–usare il manuale 
–fare alcune prove 
Percorso 5 
Bash 
23
Contenuto delle cartelle 
ls [-laAs] [ f1 … fN ] 
–mostra contenuto di una cartella 
–Nota: in Ubuntu 12.04 il comando ha 44 opzioni diverse 
Percorso 5 
Bash 
24
Significato del «formato lungo» 
Percorso 5 
Bash 
25 
tipo 
permessi user group world 
numero link 
possessore 
gruppo 
dimensione 
ultima modifica 
nome 
anche i colori aiutano a distinguere i vari tipi
Tipo dei file 
file f1 [ … fN ] 
–determina il tipo di file utilizzando vari metodi: informazioni del filesystem; magia; riconoscimento elementi tipici dei linguaggi 
–man magic per maggiori informazioni sulla magia (e sui magic number) 
Percorso 5 
Bash 
26
Wildcards («globbing») 
•Wildcards: * ? [ ] - 
•A differenza di MS-DOS/Windows l’espansione è fatta dalla shell 
Percorso 5 
Bash 
27
Comandi precedenti 
history 
–mostra i comandi precedenti 
•Nota: è possibile usare e modificare i vecchi comandi con sequenze che iniziano con «!» e «^» 
–E.g.: !-2:s/foo/bar/g 
–man history 
Percorso 5 
Bash 
28
Navigazione 
cd [dir] 
–cambia cartella 
pwd 
–mostra la cartella corrente 
Percorso 5 
Bash 
29
Esempio 
/ 
/tmp/ 
/tmp/dir1/ 
/tmp/dir1/file.txt 
/tmp/dir2/ 
/tmp/dir2/file.txt 
Percorso 5 
Bash 
30 
/$ cd /tmp/dir1
Esempio 
/ 
/tmp/ 
/tmp/dir1/ 
/tmp/dir1/file.txt 
/tmp/dir2/ 
/tmp/dir2/file.txt 
Percorso 5 
Bash 
31 
/$ cd ../dir2
Esempio 
/ 
/tmp/ 
/tmp/dir1/ 
/tmp/dir1/file.txt 
/tmp/dir2/ 
/tmp/dir2/file.txt 
Percorso 5 
Bash 
32 
/$ cd ../..
Esempio 
/ 
/tmp/ 
/tmp/dir1/ 
/tmp/dir1/file.txt 
/tmp/dir2/ 
/tmp/dir2/file.txt 
Percorso 5 
Bash 
33 
/$ cd /tmp/dir1/./../dir2/..
Creazione 
touch f1 [ … fN ] 
–tocca (crea o aggiorna l’istante dell’ultima modifica) 
mkdir [-p] dir 
–crea una direcory 
Percorso 5 
Bash 
34
Copia/Collegamento 
cp [-pr] f1 f2 
cp [-pr] f1 [ … fN ] dir 
–copia file 
ln [-s] f1 [ f2 ] 
ln [-s] f1 [ … fN ] dir 
–crea un collegamento 
–nessun hard link a cartella, o fra filesystem diversi 
–i dati sono cancellati se non più linkati da nessun file 
Percorso 5 
Bash 
35
Cancellazione 
rm [-rf] f1 [ … fN ] 
–rimuove file 
–alias comune: « alias rm='rm -I' » 
rmdir dir 
–rimuove una cartella vuota 
Percorso 5 
Bash 
36
Esercizi 
•Creare un file ~/foo/uno.txt 
–creare un link simbolico ~/bar/due.txt 
–creare un link ~/baz/tre.txt 
•Modificare uno dei file ed osservare i cambianti negli altri due 
•Rimuovere uno.txt 
–cosa succede a due.txt e tre.txt 
Percorso 5 
Bash 
37
Rinominare/Spostare 
mv f1 f2 
mv f1 [ … fN ] dir 
–muove (rinomina o sposta) file 
Percorso 5 
Bash 
38
Visualizzare 
cat [-ns] [ f1 … fN ] 
–concatena e mostra file 
less [ f1 … fN ] 
–mostra file (interattivo) 
–usare «h» per un aiuto su comandi ed opzioni dentro less 
reset 
–(re-)inizializza il terminale 
Percorso 5 
Bash 
39
Visualizzare 
head f1 [ … fN ] 
–mostra le prime 10 righe dei file 
tail f1 [ … fN ] 
–mostra le ultime 10 righe dei file 
sort [-nu] [ f1 … fN ] 
–visualizza i file dopo aver ordinato le righe 
Percorso 5 
Bash 
40
Esercizi 
•Quali sono i tipi di filesystem disponibili sul vostro sistema? 
–Tip: esamina il file filesystems in /proc 
•Quali sono le caratteristiche della CPU? 
–Tip: esamina il file cpuinfo e meminfo in /proc 
•Quali sono gli utenti? 
–Tip: ogni utente ha una cartella in /home 
Percorso 5 
Bash 
41
Output base 
echo [-n] [ testo ] 
–stampa il testo a video 
clear 
–cancella lo schermo 
–equivalente a «Control+L» 
Percorso 5 
Bash 
42
Informazione sull’utente 
who [am I] 
–chi sono gli utenti attivi nel sistema 
–chi sono io? 
groups 
–gruppi a cui appartiene l’utente 
Percorso 5 
Bash 
43
Modificare permessi 
chmod [-R] modo [ f1 … fn ] 
–cambia permessi 
–chi: u g o a 
–modifica: + - = 
–permessi: r w x X 
–speciali: s S t 
Percorso 5 
Bash 
44
Modificare permessi 
chown utente[:gruppo] f1 [ … fn ] 
–cambia owner 
chgrp gruppo f1 [ … fn ] 
–cambia gruppo 
Percorso 5 
Bash 
45
Root 
•L’utente root è l’amministratore del sistema 
–Nessuna limitazione 
–Potenzialmente molto rischioso 
sudo comando 
–esegue il singolo comando con i privilegi di root 
Percorso 5 
Bash 
46 
Courtesy XKCD.com
sudo 
Percorso 5 
Bash 
47 
“With great power there must also come great responsibility” — Stan Lee 
Immagine di JuliusC1224 (http://juliusc1224.deviantart.com/art/Spider-Man-331969812)
Informazioni 
uname [-a] 
–informazioni sul sistema 
lsb_release [-a] 
–informazioni sulla release 
•File e cartelle in /proc 
Percorso 5 
Bash 
48
Dimensione 
wc[f1 … fN] 
–dimensione dei file in righe, parole, caratteri 
du[dir] 
–dimensione dei file di una cartella 
Percorso 5 
Bash 
49
Mountpoint 
mount 
–visualizza i filesystem montati 
–per montare nuovi occorrono i privilegi di root 
Percorso 5 
Bash 
50
Eseguire comandi 
•Quando si esegue un comando la shell 
–crea un nuovo processo (fork) in cui esegue il comando 
–attende finché il nuovo processo non termina 
•specificando «exec comando» il comando viene eseguito nel processo corrente 
–quando il comando termina, la shell ormai non esiste più 
–«exec echo addio» è un modo per terminare la shell 
Percorso 5 
Bash 
51
Sleep/Date 
sleep sec 
–interrompe l’esecuzione fino all’istante ora corrente + sec secondi 
date 
–mostra la data e l’ora corrente 
Percorso 5 
Bash 
52
Eseguire comandi 
•Più comandi possono essere specificati sulla stessa linea separati con «;» 
Percorso 5 
Bash 
53
Eseguire comandi 
•Comandi racchiusi fra parentesi tonde «( )» sono eseguiti in una subshell (sotto-shell) 
–la subshell eredita l’environment della shell madre 
–ma le modifiche sono locali 
Percorso 5 
Bash 
54
Processi e Job 
•Ogni processo ha un numero 
–PID 
•Ogni processo è collegato ad un utente 
–UID 
Percorso 5 
Bash 
55
Processi e Job 
•Altre informazioni 
–commandline 
–tempo 
–memoria 
–priorità 
–nice level 
Percorso 5 
Bash 
56
Gentilezza 
nice num cmd 
–esegue un comando in modo più gentile 
renice num proc 
–rende un processo più gentile 
Percorso 5 
Bash 
57
Controllo processi 
ps [-lA] [-f f] 
–mostra informazioni sui processi 
kill [-9] proc1 [ … procN ] 
–termina i processi 
top 
htop 
–mostra informazioni sui processi (interattivo) 
Percorso 5 
Bash 
58
ps -l 
Percorso 5 
Bash 
59 
stato 
flag 
PID del padre 
utilizzo processore 
priorità 
valore di nice 
funzione del kernel 
terminale 
tempo 
comando 
dimensione 
PID 
utente
--forest e -H 
Percorso 5 
Bash 
60
Controllo job 
jobs 
–mostra informazioni sui job in esecuzioni o sospesi 
fg [%j] 
bg [%j] 
–riprende l’esecuzione del job in primo/secondo piano 
kill [-9] %j1 [ … %jN ] 
–termina i job 
Percorso 5 
Bash 
61
Sospendere l’esecuzione 
•L’esecuzione di un comando può essere sospesa con «Control+Z» 
•L’esecuzione può essere ripresa 
–In primo piano con «fg» 
–In secondo piano (background) con «bg» 
Percorso 5 
Bash 
62
Sospendere l’esecuzione 
•L’esecuzione di un comando può essere sospesa con «Control+Z» 
•L’esecuzione può essere ripresa 
–In primo piano con «fg» 
–In secondo piano (background) con «bg» 
Percorso 5 
Bash 
63 
numero del job
Sospendere l’esecuzione 
•Specificando «&» al termine del comando questo viene eseguito subito in background 
Percorso 5 
Bash 
64
Sospendere l’esecuzione 
•Specificando «&» al termine del comando questo viene eseguito in background 
Percorso 5 
Bash 
65 
job precedente 
job corrente
Sospendere l’esecuzione 
•Il comando «wait» attende che tutti i processi in background siano terminati 
Percorso 5 
Bash 
66
Albero (ascii-art) 
Percorso 5 
Bash 
67
Redirezione 
Percorso 5 
Bash 
68 
process 
stdin 
stdout 
stderr
Redirezione 
$ comando parametri > file 
$ comando parametri >> file 
$ comando parametri < file 
Percorso 5 
Bash 
69
Redirezione (stdout vs. stderr) 
$ comando parametri > file 
$ comando parametri > file 2> file2 
$ comando parametri > file 2>&1 
$ comando parametri >& file 
Percorso 5 
Bash 
70
Pipe 
Percorso 5 
Bash 
71 
proc1 
stdin 
stdout 
stderr 
proc2 
stdin 
stdout 
stderr
Pipe 
$ comando1 parametri | comando2 parametri 
$ comando1 parametri |& comando2 parametri 
Percorso 5 
Bash 
72
Pipe 
Percorso 5 
Bash 
73
Esercizio 
•Elencare tutti i file presenti in una directory in ordine di dimensione 
–usando le opzioni di ls (man) 
–usando il comando «sort» 
Percorso 5 
Bash script 
74
Redirezione 
tee [-a] file 
–duplica lo stdin salvandone una copia in file 
–utile per salvare una copia di quello che viene visualizzato o trasmesso nella pipe 
Percorso 5 
Bash 
75
Archivi (tarball) 
•È comune distribuire materiale sotto forma di archivio (come Zip o Tar in windows) 
•Tradizionalmente nei sistemi UN*X si usano due programmi in pipe: 
–uno per trasformare più file in un unico file (tar) 
–uno per comprimere (gzip, bzip2, o xzip) 
Percorso 5 
Bash 
76
Archivi (tar) 
tar op archivio f1 … fN 
–operazione: c x t f [v] 
–se il nome dell’archivio è meno «-» usa lo stdout 
Percorso 5 
Bash 
77
Archivi (compressione) 
prog [-9vd] [f1 … fN] 
prog [-9vd] -c 
–comprime/decomprime file, modifica l’estensione in modo opportuno 
–con l’opzione -c comprime/decomprime lo stdin e scrive sullo stdout 
–i programmi sono: bzip2 (molto diffuso); gzip (minime risorse); xz (nuovo) 
Percorso 5 
Bash 
78
Archivi 
Percorso 5 
Bash 
79
Archivi (tar) 
•È possibile specificare la compressione direttamente nei parametri di tar 
–z per usare gzip 
–j per usare bzip2 
–J per usare xz 
Percorso 5 
Bash 
80
Archivi (solo decompressione) 
prog [-v] [f1 … fN] 
prog [-v] -c 
–decomprime file, modifica l’estensione in modo opportuno 
–con l’opzione -c decomprime lo stdin sullo stdout 
–i programmi sono: bunzip2; gunzip; unxz 
Percorso 5 
Bash 
81
Cercare file 
find [-xdev] dir [e1 … eN] 
–cerca nell’albero del filesystem a partire da dir 
–applica espressioni e1 … eN 
–con xdev non esce dal filesystem radice 
Percorso 5 
Bash 
82
Cercare file 
Esempi 
find ~ -name foo -print 
find . -name "*foo*" 
find ~ -name -type d -iname "*bar*" -ls 
find . -name "*.o" -print -exec rm '{}' ; 
find / -size +100M 
find /usr -executable 
find /etc /usr/local/etc ! -readable 
Percorso 5 
Bash 
83
Cercare file 
grep [-iv] pattern [f1 … fN] 
–filtra le righe che contengono un pattern 
Percorso 5 
Bash 
84
Esercizio 
•Cercare tutti i file di proprietà dell’utente corrente 
–Tip: l’opzione non è stata spiegata, usare «man find» 
Percorso 5 
Bash script 
85
Regex 
•Una espressione regolare (regular expression, regexp, regex, RE) è una stringa che identifica un insieme di stringhe 
•Operazioni di patten matching 
•Slang: “la stringa meccia la regex” 
Percorso 5 
Bash 
86
Regex: simboli base 
•Un carattere 
–quel carattere 
•Punto «.» 
–un carattere qualsiasi 
Percorso 5 
Bash 
87 
ma..a 
oh mamma mia! 
mamma
Regex: simboli base 
•Cappello «^» e dollaro «$» 
–rispettivamente, inizio e fine stringa 
Percorso 5 
Bash 
88 
^ma..a$ 
oh mamma mia! 
mamma
Regex: simboli base 
•Asterisco «*» 
–un numero qualsiasi di volte, anche zero 
•Più «+» 
–una o più volte 
•Punto interrogativo «?» 
–zero o una volta 
Percorso 5 
Bash 
89 
ma?m+z*ak? 
oh mamma mia! 
mamma
Regex: simboli base 
•Parentesi quadre «[ … ]» 
–uno qualsiasi dei caratteri specificati 
–se x-y, allora uno qualsiasi dei caratteri fra x e y 
–se il primo carattere dopo «[» è «^», allora un qualsiasi carattere non specificato 
Percorso 5 
Bash 
90 
^[A-Z]a?o?[mn]+a$ 
Mamma 
Nonna
Regex 
Percorso 5 
Bash 
91
Cercare file 
grep [-iv] -e regex [f1 … fN] 
–filtra le righe che contengono l’espressione regolare 
Percorso 5 
Bash 
92
These slides are licensed under a Creative Commons 
Attribution Non Commercial Share Alike 4.0 International 
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/ 
Versione in Italiano: 
https://creativecommons.org/licenses/by-nc-sa/4.0/deed.it

More Related Content

What's hot

Shell unix
Shell unixShell unix
Shell unix
Paolo Montalto
 
Pool di macchine Condor con utilizzo di Checkpoint Server
Pool di macchine Condor con utilizzo di Checkpoint ServerPool di macchine Condor con utilizzo di Checkpoint Server
Pool di macchine Condor con utilizzo di Checkpoint Server
Davide Ciambelli
 
Lug Roma3 Corso Linux Avanzato
Lug Roma3   Corso Linux AvanzatoLug Roma3   Corso Linux Avanzato
Lug Roma3 Corso Linux Avanzatofosk
 
Gestione dischi - File system - LVM
 Gestione dischi - File system - LVM Gestione dischi - File system - LVM
Gestione dischi - File system - LVM
Fulvio Corno
 
Lug Roma3 Corso Linux Base
Lug Roma3   Corso Linux BaseLug Roma3   Corso Linux Base
Lug Roma3 Corso Linux Basefosk
 
Lezione Quattro
Lezione QuattroLezione Quattro
Lezione Quattro
Sebastiano Merlino (eTr)
 
Retropie - il futuro nel passato
Retropie - il futuro nel passatoRetropie - il futuro nel passato
Retropie - il futuro nel passato
PaoloGuagnano1
 
MontelLUG - Conferenze 2007 - Introduzione a RSync
MontelLUG - Conferenze 2007 - Introduzione a RSyncMontelLUG - Conferenze 2007 - Introduzione a RSync
MontelLUG - Conferenze 2007 - Introduzione a RSyncManuel Dalla Lana
 
#!/bin/bash ed esempi di scripting
#!/bin/bash ed esempi di scripting#!/bin/bash ed esempi di scripting
#!/bin/bash ed esempi di scripting
Galliate Linux User Group
 
Battaglia Navale
Battaglia NavaleBattaglia Navale
Battaglia Navale
PaoloVanacore
 
Scripting - Esecuzione condizionale - Costrutti iterativi - Variabili (quoti...
 Scripting - Esecuzione condizionale - Costrutti iterativi - Variabili (quoti... Scripting - Esecuzione condizionale - Costrutti iterativi - Variabili (quoti...
Scripting - Esecuzione condizionale - Costrutti iterativi - Variabili (quoti...
Fulvio Corno
 

What's hot (12)

Shell unix
Shell unixShell unix
Shell unix
 
Pool di macchine Condor con utilizzo di Checkpoint Server
Pool di macchine Condor con utilizzo di Checkpoint ServerPool di macchine Condor con utilizzo di Checkpoint Server
Pool di macchine Condor con utilizzo di Checkpoint Server
 
Lug Roma3 Corso Linux Avanzato
Lug Roma3   Corso Linux AvanzatoLug Roma3   Corso Linux Avanzato
Lug Roma3 Corso Linux Avanzato
 
Gestione dischi - File system - LVM
 Gestione dischi - File system - LVM Gestione dischi - File system - LVM
Gestione dischi - File system - LVM
 
Lug Roma3 Corso Linux Base
Lug Roma3   Corso Linux BaseLug Roma3   Corso Linux Base
Lug Roma3 Corso Linux Base
 
Lezione Quattro
Lezione QuattroLezione Quattro
Lezione Quattro
 
Retropie - il futuro nel passato
Retropie - il futuro nel passatoRetropie - il futuro nel passato
Retropie - il futuro nel passato
 
X2 Linux Riassunti
X2 Linux RiassuntiX2 Linux Riassunti
X2 Linux Riassunti
 
MontelLUG - Conferenze 2007 - Introduzione a RSync
MontelLUG - Conferenze 2007 - Introduzione a RSyncMontelLUG - Conferenze 2007 - Introduzione a RSync
MontelLUG - Conferenze 2007 - Introduzione a RSync
 
#!/bin/bash ed esempi di scripting
#!/bin/bash ed esempi di scripting#!/bin/bash ed esempi di scripting
#!/bin/bash ed esempi di scripting
 
Battaglia Navale
Battaglia NavaleBattaglia Navale
Battaglia Navale
 
Scripting - Esecuzione condizionale - Costrutti iterativi - Variabili (quoti...
 Scripting - Esecuzione condizionale - Costrutti iterativi - Variabili (quoti... Scripting - Esecuzione condizionale - Costrutti iterativi - Variabili (quoti...
Scripting - Esecuzione condizionale - Costrutti iterativi - Variabili (quoti...
 

Viewers also liked

Graphs: Cycles
Graphs: CyclesGraphs: Cycles
Graphs: Cycles
Fulvio Corno
 
Introduction to JDBC and database access in web applications
Introduction to JDBC and database access in web applicationsIntroduction to JDBC and database access in web applications
Introduction to JDBC and database access in web applications
Fulvio Corno
 
Programming with JavaFX
Programming with JavaFXProgramming with JavaFX
Programming with JavaFX
Fulvio Corno
 
Tecnologie per la disabilita' nella formazione ingegneristica di base
Tecnologie per la disabilita' nella formazione ingegneristica di baseTecnologie per la disabilita' nella formazione ingegneristica di base
Tecnologie per la disabilita' nella formazione ingegneristica di base
Fulvio Corno
 
Introduction to Graphs
Introduction to GraphsIntroduction to Graphs
Introduction to Graphs
Fulvio Corno
 
Approcci ed applicazioni per l’Ambient Intelligence
Approcci ed applicazioni per l’Ambient IntelligenceApprocci ed applicazioni per l’Ambient Intelligence
Approcci ed applicazioni per l’Ambient Intelligence
Fulvio Corno
 
AmI 2015 - Course Introduction
AmI 2015 - Course IntroductionAmI 2015 - Course Introduction
AmI 2015 - Course Introduction
Fulvio Corno
 
Ambient intelligence - an overview
Ambient intelligence - an overviewAmbient intelligence - an overview
Ambient intelligence - an overview
Fulvio Corno
 
Introduzione ai Web Information Systems
Introduzione ai Web Information SystemsIntroduzione ai Web Information Systems
Introduzione ai Web Information Systems
Fulvio Corno
 
Tecnologie e applicazioni domotiche: potenzialità ed approcci industriali a c...
Tecnologie e applicazioni domotiche: potenzialità ed approcci industriali a c...Tecnologie e applicazioni domotiche: potenzialità ed approcci industriali a c...
Tecnologie e applicazioni domotiche: potenzialità ed approcci industriali a c...
Fulvio Corno
 
La percezione sensoriale
La percezione sensorialeLa percezione sensoriale
La percezione sensoriale
Fulvio Corno
 
Primi passi - VirtualBox - Installazione Ubuntu 12.04 LTS - Shell
 Primi passi - VirtualBox - Installazione Ubuntu 12.04 LTS - Shell Primi passi - VirtualBox - Installazione Ubuntu 12.04 LTS - Shell
Primi passi - VirtualBox - Installazione Ubuntu 12.04 LTS - Shell
Fulvio Corno
 
Java collections framework
Java collections frameworkJava collections framework
Java collections framework
Fulvio Corno
 
Introduction to JavaFX
Introduction to JavaFXIntroduction to JavaFX
Introduction to JavaFX
Fulvio Corno
 
Esercizi di programmazione in C (v. 2.01)
Esercizi di programmazione in C (v. 2.01)Esercizi di programmazione in C (v. 2.01)
Esercizi di programmazione in C (v. 2.01)
Fulvio Corno
 
Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)
Fulvio Corno
 

Viewers also liked (16)

Graphs: Cycles
Graphs: CyclesGraphs: Cycles
Graphs: Cycles
 
Introduction to JDBC and database access in web applications
Introduction to JDBC and database access in web applicationsIntroduction to JDBC and database access in web applications
Introduction to JDBC and database access in web applications
 
Programming with JavaFX
Programming with JavaFXProgramming with JavaFX
Programming with JavaFX
 
Tecnologie per la disabilita' nella formazione ingegneristica di base
Tecnologie per la disabilita' nella formazione ingegneristica di baseTecnologie per la disabilita' nella formazione ingegneristica di base
Tecnologie per la disabilita' nella formazione ingegneristica di base
 
Introduction to Graphs
Introduction to GraphsIntroduction to Graphs
Introduction to Graphs
 
Approcci ed applicazioni per l’Ambient Intelligence
Approcci ed applicazioni per l’Ambient IntelligenceApprocci ed applicazioni per l’Ambient Intelligence
Approcci ed applicazioni per l’Ambient Intelligence
 
AmI 2015 - Course Introduction
AmI 2015 - Course IntroductionAmI 2015 - Course Introduction
AmI 2015 - Course Introduction
 
Ambient intelligence - an overview
Ambient intelligence - an overviewAmbient intelligence - an overview
Ambient intelligence - an overview
 
Introduzione ai Web Information Systems
Introduzione ai Web Information SystemsIntroduzione ai Web Information Systems
Introduzione ai Web Information Systems
 
Tecnologie e applicazioni domotiche: potenzialità ed approcci industriali a c...
Tecnologie e applicazioni domotiche: potenzialità ed approcci industriali a c...Tecnologie e applicazioni domotiche: potenzialità ed approcci industriali a c...
Tecnologie e applicazioni domotiche: potenzialità ed approcci industriali a c...
 
La percezione sensoriale
La percezione sensorialeLa percezione sensoriale
La percezione sensoriale
 
Primi passi - VirtualBox - Installazione Ubuntu 12.04 LTS - Shell
 Primi passi - VirtualBox - Installazione Ubuntu 12.04 LTS - Shell Primi passi - VirtualBox - Installazione Ubuntu 12.04 LTS - Shell
Primi passi - VirtualBox - Installazione Ubuntu 12.04 LTS - Shell
 
Java collections framework
Java collections frameworkJava collections framework
Java collections framework
 
Introduction to JavaFX
Introduction to JavaFXIntroduction to JavaFX
Introduction to JavaFX
 
Esercizi di programmazione in C (v. 2.01)
Esercizi di programmazione in C (v. 2.01)Esercizi di programmazione in C (v. 2.01)
Esercizi di programmazione in C (v. 2.01)
 
Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)Programmazione in C (corso 12BHD Informatica)
Programmazione in C (corso 12BHD Informatica)
 

Similar to La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari

As it e icloud
As it e icloudAs it e icloud
As it e icloud
AriannaZuelli
 
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
Fulvio Corno
 
Seminario introduzione all'uso del terminale e della bash in Linux
Seminario introduzione all'uso del terminale e della bash in LinuxSeminario introduzione all'uso del terminale e della bash in Linux
Seminario introduzione all'uso del terminale e della bash in Linux
alberto fiaschi
 
Linux day 2016 la shell in linux
Linux day 2016   la shell in linuxLinux day 2016   la shell in linux
Linux day 2016 la shell in linux
Giuseppe Piccolo
 
Log files - Approcci al Troubleshooting
 Log files - Approcci al Troubleshooting Log files - Approcci al Troubleshooting
Log files - Approcci al Troubleshooting
Fulvio Corno
 
Bash intro
Bash introBash intro
Bash intro
Giuseppe Levi
 
Motori di ricerca per cercare file in Linux
Motori di ricerca per cercare file in LinuxMotori di ricerca per cercare file in Linux
Motori di ricerca per cercare file in Linux
Roberto Marmo
 
Linux@Unina
Linux@UninaLinux@Unina
Linux@Unina
NaLUG
 
Chi ha paura della command-line? - WordCamp Roma 2018
Chi ha paura della command-line? - WordCamp Roma 2018Chi ha paura della command-line? - WordCamp Roma 2018
Chi ha paura della command-line? - WordCamp Roma 2018
Marco Chiesi
 
Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1
I.S.I.S. "Antonio Serra" - Napoli
 
SSH base - Configurazione di sistema da terminale
 SSH base - Configurazione di sistema da terminale SSH base - Configurazione di sistema da terminale
SSH base - Configurazione di sistema da terminale
Fulvio Corno
 
Guida al Computer - Lezione 159 - Windows 8.1 Update - Prompt dei comandi
Guida al Computer - Lezione 159 - Windows 8.1 Update - Prompt dei comandiGuida al Computer - Lezione 159 - Windows 8.1 Update - Prompt dei comandi
Guida al Computer - Lezione 159 - Windows 8.1 Update - Prompt dei comandi
caioturtle
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode LinuxMajong DevJfu
 
Linux & Open Source : Lezione Quattro
Linux & Open Source : Lezione QuattroLinux & Open Source : Lezione Quattro
Linux & Open Source : Lezione Quattro
Dario Mazza
 
Linux shell
Linux shellLinux shell
Linux shell
Marco Buttolo
 
Linux shell
Linux shellLinux shell
Linux shell
Marco Buttolo
 
Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatori
Fulvio Corno
 
Introduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleIntroduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleMajong DevJfu
 
GNU Linux introduction
GNU Linux introductionGNU Linux introduction
GNU Linux introduction
Vincenzo Paolo Fraddosio
 

Similar to La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari (20)

As it e icloud
As it e icloudAs it e icloud
As it e icloud
 
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
 
Seminario introduzione all'uso del terminale e della bash in Linux
Seminario introduzione all'uso del terminale e della bash in LinuxSeminario introduzione all'uso del terminale e della bash in Linux
Seminario introduzione all'uso del terminale e della bash in Linux
 
Linux day 2016 la shell in linux
Linux day 2016   la shell in linuxLinux day 2016   la shell in linux
Linux day 2016 la shell in linux
 
Log files - Approcci al Troubleshooting
 Log files - Approcci al Troubleshooting Log files - Approcci al Troubleshooting
Log files - Approcci al Troubleshooting
 
Comandi bash
Comandi bashComandi bash
Comandi bash
 
Bash intro
Bash introBash intro
Bash intro
 
Motori di ricerca per cercare file in Linux
Motori di ricerca per cercare file in LinuxMotori di ricerca per cercare file in Linux
Motori di ricerca per cercare file in Linux
 
Linux@Unina
Linux@UninaLinux@Unina
Linux@Unina
 
Chi ha paura della command-line? - WordCamp Roma 2018
Chi ha paura della command-line? - WordCamp Roma 2018Chi ha paura della command-line? - WordCamp Roma 2018
Chi ha paura della command-line? - WordCamp Roma 2018
 
Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1
 
SSH base - Configurazione di sistema da terminale
 SSH base - Configurazione di sistema da terminale SSH base - Configurazione di sistema da terminale
SSH base - Configurazione di sistema da terminale
 
Guida al Computer - Lezione 159 - Windows 8.1 Update - Prompt dei comandi
Guida al Computer - Lezione 159 - Windows 8.1 Update - Prompt dei comandiGuida al Computer - Lezione 159 - Windows 8.1 Update - Prompt dei comandi
Guida al Computer - Lezione 159 - Windows 8.1 Update - Prompt dei comandi
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode Linux
 
Linux & Open Source : Lezione Quattro
Linux & Open Source : Lezione QuattroLinux & Open Source : Lezione Quattro
Linux & Open Source : Lezione Quattro
 
Linux shell
Linux shellLinux shell
Linux shell
 
Linux shell
Linux shellLinux shell
Linux shell
 
Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatori
 
Introduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleIntroduzione Alla Uml Mconsole
Introduzione Alla Uml Mconsole
 
GNU Linux introduction
GNU Linux introductionGNU Linux introduction
GNU Linux introduction
 

La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari

  • 1.
  • 3. Software di sistema (GNU) CLI Applicazioni GUI Hardware Kernel (Linux) Motivazioni •Accesso (più) diretto al sistema •Sistemi remoti (ssh) •Operazioni ripetute (batch file) •Esecuzione automatica Percorso 5 Bash 3
  • 4. BASH •Standard (*NIX, MacOS, Windows, …) •Versatile e potente •Programmabile Percorso 5 Bash 4
  • 6. Lavorare con la Console (inizio) •Control+Alt+F1 •Usare l’applicazione «Terminale» Percorso 5 Bash 6
  • 7. Lavorare con la Console (fine) •Alt+F7 •Comando «Exit» •Control+D •Chiudere il terminale Percorso 5 Bash 7
  • 8. Convenzioni •Alcuni comandi richiedono argomenti cd NOME_CARETELLA •Il comportamento di (quasi) tutti i programmi può essere modificato attraverso opzioni cat -n foo.txt •Opzioni corte vs. opzioni lunghe cat -ns foo.txt cat --number --squeeze-blank foo.txt Percorso 5 Bash 8
  • 9. Comandi •Interni (builtin commands) •Esterni •Alias Percorso 5 Bash 9
  • 10. Aiuto / Informazioni Aggiuntive •Documentazione in /usr/share/doc –E.g.: less /usr/share/doc/bash/INTRO.gz Percorso 5 Bash 10
  • 11. Aiuto / Informazioni Aggiuntive •Informazioni su di un comando comando --help (oppure: comando -h) man comando (e.g.: man man) whatis comando apropos comando type [-a] comando which comando info [ comando/opzioni ] Percorso 5 Bash 11
  • 12. Il Prompt •Il prompt standard mostra –nome utente «@» nome macchina «:» cartella corrente «$» (ovvero «#» se l’utente è l’amministratore, ed è possibile fare molti danni) Percorso 5 Bash 12
  • 13. Cartelle speciali •Punto «.» –la cartella corrente •Punti-punto «..» –la cartella padre della corrente •Tilde «~» –la propria cartella home (di solito /home/utente) •Tilde + nome «~foo» –la cartella home di foo (di solito /home/foo) Percorso 5 Bash 13
  • 14. Edit della linea di comando •Bash permette di usare le frecce del cursore, e combinazioni di tasti usate da Emacs –Control+A, Control+E, Meta+f, Meta+b, … •«Freccia su»/«Freccia giù» permettono di muoversi fra i comandi precedenti Percorso 5 Bash 14
  • 16. Control •Control+C –Invia SIGINT al processo corrente •Control+D –End Of File –Equivalente a Control+Z in MS-DOS/Windows Percorso 5 Bash 16
  • 17. Variabili •La shell permette di definire «variabili» •Dollaro «$» per usare le variabili definite •Doppi apici vs. apice singolo Percorso 5 Bash 17
  • 18. Variabili •Il comportamento e le opzioni di default della shell e di numerosi comandi sono definiti attraverso variabili •L’insieme delle variabili è detto «ambiente» (environment) •Usare il comando «set» per visualizzare le circa 50 variabili definite nell’ambiente corrente Percorso 5 Bash 18
  • 19. $PATH •I comandi esterni vengono cercati nelle cartelle specificate nella variabile PATH •È possibile specificare in modo esplicito il path dei comandi (relativo o assoluto) Percorso 5 Bash 19
  • 20. Alias •È possibile creare «alias» ai comandi (e.g., per memorizzare le opzioni usate sempre) •«alias» senza parametri mostra tutti gli alias Percorso 5 Bash 20
  • 21. Nomi dei file •I sistemi POSIX mettono poche restrizioni ai nomi dei file, tuttavia è meglio evitare: •spazi, tab e «a capo» •caratteri che hanno significati convenzionali / “ ' * ; ? [ ] ( ) ~ ! $ { } < > # @ & | •lettere al di fuori dal set ASCII base e.g.: ω è ë ê æ … Percorso 5 Bash 21
  • 22. Nomi dei file •I nomi che contengono spazi devo essere racchiusi da apici o doppi apici Percorso 5 Bash 22
  • 23. Esercizio •A cosa servono i comandi «basename» e «dirname»? –usare il manuale –fare alcune prove Percorso 5 Bash 23
  • 24. Contenuto delle cartelle ls [-laAs] [ f1 … fN ] –mostra contenuto di una cartella –Nota: in Ubuntu 12.04 il comando ha 44 opzioni diverse Percorso 5 Bash 24
  • 25. Significato del «formato lungo» Percorso 5 Bash 25 tipo permessi user group world numero link possessore gruppo dimensione ultima modifica nome anche i colori aiutano a distinguere i vari tipi
  • 26. Tipo dei file file f1 [ … fN ] –determina il tipo di file utilizzando vari metodi: informazioni del filesystem; magia; riconoscimento elementi tipici dei linguaggi –man magic per maggiori informazioni sulla magia (e sui magic number) Percorso 5 Bash 26
  • 27. Wildcards («globbing») •Wildcards: * ? [ ] - •A differenza di MS-DOS/Windows l’espansione è fatta dalla shell Percorso 5 Bash 27
  • 28. Comandi precedenti history –mostra i comandi precedenti •Nota: è possibile usare e modificare i vecchi comandi con sequenze che iniziano con «!» e «^» –E.g.: !-2:s/foo/bar/g –man history Percorso 5 Bash 28
  • 29. Navigazione cd [dir] –cambia cartella pwd –mostra la cartella corrente Percorso 5 Bash 29
  • 30. Esempio / /tmp/ /tmp/dir1/ /tmp/dir1/file.txt /tmp/dir2/ /tmp/dir2/file.txt Percorso 5 Bash 30 /$ cd /tmp/dir1
  • 31. Esempio / /tmp/ /tmp/dir1/ /tmp/dir1/file.txt /tmp/dir2/ /tmp/dir2/file.txt Percorso 5 Bash 31 /$ cd ../dir2
  • 32. Esempio / /tmp/ /tmp/dir1/ /tmp/dir1/file.txt /tmp/dir2/ /tmp/dir2/file.txt Percorso 5 Bash 32 /$ cd ../..
  • 33. Esempio / /tmp/ /tmp/dir1/ /tmp/dir1/file.txt /tmp/dir2/ /tmp/dir2/file.txt Percorso 5 Bash 33 /$ cd /tmp/dir1/./../dir2/..
  • 34. Creazione touch f1 [ … fN ] –tocca (crea o aggiorna l’istante dell’ultima modifica) mkdir [-p] dir –crea una direcory Percorso 5 Bash 34
  • 35. Copia/Collegamento cp [-pr] f1 f2 cp [-pr] f1 [ … fN ] dir –copia file ln [-s] f1 [ f2 ] ln [-s] f1 [ … fN ] dir –crea un collegamento –nessun hard link a cartella, o fra filesystem diversi –i dati sono cancellati se non più linkati da nessun file Percorso 5 Bash 35
  • 36. Cancellazione rm [-rf] f1 [ … fN ] –rimuove file –alias comune: « alias rm='rm -I' » rmdir dir –rimuove una cartella vuota Percorso 5 Bash 36
  • 37. Esercizi •Creare un file ~/foo/uno.txt –creare un link simbolico ~/bar/due.txt –creare un link ~/baz/tre.txt •Modificare uno dei file ed osservare i cambianti negli altri due •Rimuovere uno.txt –cosa succede a due.txt e tre.txt Percorso 5 Bash 37
  • 38. Rinominare/Spostare mv f1 f2 mv f1 [ … fN ] dir –muove (rinomina o sposta) file Percorso 5 Bash 38
  • 39. Visualizzare cat [-ns] [ f1 … fN ] –concatena e mostra file less [ f1 … fN ] –mostra file (interattivo) –usare «h» per un aiuto su comandi ed opzioni dentro less reset –(re-)inizializza il terminale Percorso 5 Bash 39
  • 40. Visualizzare head f1 [ … fN ] –mostra le prime 10 righe dei file tail f1 [ … fN ] –mostra le ultime 10 righe dei file sort [-nu] [ f1 … fN ] –visualizza i file dopo aver ordinato le righe Percorso 5 Bash 40
  • 41. Esercizi •Quali sono i tipi di filesystem disponibili sul vostro sistema? –Tip: esamina il file filesystems in /proc •Quali sono le caratteristiche della CPU? –Tip: esamina il file cpuinfo e meminfo in /proc •Quali sono gli utenti? –Tip: ogni utente ha una cartella in /home Percorso 5 Bash 41
  • 42. Output base echo [-n] [ testo ] –stampa il testo a video clear –cancella lo schermo –equivalente a «Control+L» Percorso 5 Bash 42
  • 43. Informazione sull’utente who [am I] –chi sono gli utenti attivi nel sistema –chi sono io? groups –gruppi a cui appartiene l’utente Percorso 5 Bash 43
  • 44. Modificare permessi chmod [-R] modo [ f1 … fn ] –cambia permessi –chi: u g o a –modifica: + - = –permessi: r w x X –speciali: s S t Percorso 5 Bash 44
  • 45. Modificare permessi chown utente[:gruppo] f1 [ … fn ] –cambia owner chgrp gruppo f1 [ … fn ] –cambia gruppo Percorso 5 Bash 45
  • 46. Root •L’utente root è l’amministratore del sistema –Nessuna limitazione –Potenzialmente molto rischioso sudo comando –esegue il singolo comando con i privilegi di root Percorso 5 Bash 46 Courtesy XKCD.com
  • 47. sudo Percorso 5 Bash 47 “With great power there must also come great responsibility” — Stan Lee Immagine di JuliusC1224 (http://juliusc1224.deviantart.com/art/Spider-Man-331969812)
  • 48. Informazioni uname [-a] –informazioni sul sistema lsb_release [-a] –informazioni sulla release •File e cartelle in /proc Percorso 5 Bash 48
  • 49. Dimensione wc[f1 … fN] –dimensione dei file in righe, parole, caratteri du[dir] –dimensione dei file di una cartella Percorso 5 Bash 49
  • 50. Mountpoint mount –visualizza i filesystem montati –per montare nuovi occorrono i privilegi di root Percorso 5 Bash 50
  • 51. Eseguire comandi •Quando si esegue un comando la shell –crea un nuovo processo (fork) in cui esegue il comando –attende finché il nuovo processo non termina •specificando «exec comando» il comando viene eseguito nel processo corrente –quando il comando termina, la shell ormai non esiste più –«exec echo addio» è un modo per terminare la shell Percorso 5 Bash 51
  • 52. Sleep/Date sleep sec –interrompe l’esecuzione fino all’istante ora corrente + sec secondi date –mostra la data e l’ora corrente Percorso 5 Bash 52
  • 53. Eseguire comandi •Più comandi possono essere specificati sulla stessa linea separati con «;» Percorso 5 Bash 53
  • 54. Eseguire comandi •Comandi racchiusi fra parentesi tonde «( )» sono eseguiti in una subshell (sotto-shell) –la subshell eredita l’environment della shell madre –ma le modifiche sono locali Percorso 5 Bash 54
  • 55. Processi e Job •Ogni processo ha un numero –PID •Ogni processo è collegato ad un utente –UID Percorso 5 Bash 55
  • 56. Processi e Job •Altre informazioni –commandline –tempo –memoria –priorità –nice level Percorso 5 Bash 56
  • 57. Gentilezza nice num cmd –esegue un comando in modo più gentile renice num proc –rende un processo più gentile Percorso 5 Bash 57
  • 58. Controllo processi ps [-lA] [-f f] –mostra informazioni sui processi kill [-9] proc1 [ … procN ] –termina i processi top htop –mostra informazioni sui processi (interattivo) Percorso 5 Bash 58
  • 59. ps -l Percorso 5 Bash 59 stato flag PID del padre utilizzo processore priorità valore di nice funzione del kernel terminale tempo comando dimensione PID utente
  • 60. --forest e -H Percorso 5 Bash 60
  • 61. Controllo job jobs –mostra informazioni sui job in esecuzioni o sospesi fg [%j] bg [%j] –riprende l’esecuzione del job in primo/secondo piano kill [-9] %j1 [ … %jN ] –termina i job Percorso 5 Bash 61
  • 62. Sospendere l’esecuzione •L’esecuzione di un comando può essere sospesa con «Control+Z» •L’esecuzione può essere ripresa –In primo piano con «fg» –In secondo piano (background) con «bg» Percorso 5 Bash 62
  • 63. Sospendere l’esecuzione •L’esecuzione di un comando può essere sospesa con «Control+Z» •L’esecuzione può essere ripresa –In primo piano con «fg» –In secondo piano (background) con «bg» Percorso 5 Bash 63 numero del job
  • 64. Sospendere l’esecuzione •Specificando «&» al termine del comando questo viene eseguito subito in background Percorso 5 Bash 64
  • 65. Sospendere l’esecuzione •Specificando «&» al termine del comando questo viene eseguito in background Percorso 5 Bash 65 job precedente job corrente
  • 66. Sospendere l’esecuzione •Il comando «wait» attende che tutti i processi in background siano terminati Percorso 5 Bash 66
  • 68. Redirezione Percorso 5 Bash 68 process stdin stdout stderr
  • 69. Redirezione $ comando parametri > file $ comando parametri >> file $ comando parametri < file Percorso 5 Bash 69
  • 70. Redirezione (stdout vs. stderr) $ comando parametri > file $ comando parametri > file 2> file2 $ comando parametri > file 2>&1 $ comando parametri >& file Percorso 5 Bash 70
  • 71. Pipe Percorso 5 Bash 71 proc1 stdin stdout stderr proc2 stdin stdout stderr
  • 72. Pipe $ comando1 parametri | comando2 parametri $ comando1 parametri |& comando2 parametri Percorso 5 Bash 72
  • 73. Pipe Percorso 5 Bash 73
  • 74. Esercizio •Elencare tutti i file presenti in una directory in ordine di dimensione –usando le opzioni di ls (man) –usando il comando «sort» Percorso 5 Bash script 74
  • 75. Redirezione tee [-a] file –duplica lo stdin salvandone una copia in file –utile per salvare una copia di quello che viene visualizzato o trasmesso nella pipe Percorso 5 Bash 75
  • 76. Archivi (tarball) •È comune distribuire materiale sotto forma di archivio (come Zip o Tar in windows) •Tradizionalmente nei sistemi UN*X si usano due programmi in pipe: –uno per trasformare più file in un unico file (tar) –uno per comprimere (gzip, bzip2, o xzip) Percorso 5 Bash 76
  • 77. Archivi (tar) tar op archivio f1 … fN –operazione: c x t f [v] –se il nome dell’archivio è meno «-» usa lo stdout Percorso 5 Bash 77
  • 78. Archivi (compressione) prog [-9vd] [f1 … fN] prog [-9vd] -c –comprime/decomprime file, modifica l’estensione in modo opportuno –con l’opzione -c comprime/decomprime lo stdin e scrive sullo stdout –i programmi sono: bzip2 (molto diffuso); gzip (minime risorse); xz (nuovo) Percorso 5 Bash 78
  • 80. Archivi (tar) •È possibile specificare la compressione direttamente nei parametri di tar –z per usare gzip –j per usare bzip2 –J per usare xz Percorso 5 Bash 80
  • 81. Archivi (solo decompressione) prog [-v] [f1 … fN] prog [-v] -c –decomprime file, modifica l’estensione in modo opportuno –con l’opzione -c decomprime lo stdin sullo stdout –i programmi sono: bunzip2; gunzip; unxz Percorso 5 Bash 81
  • 82. Cercare file find [-xdev] dir [e1 … eN] –cerca nell’albero del filesystem a partire da dir –applica espressioni e1 … eN –con xdev non esce dal filesystem radice Percorso 5 Bash 82
  • 83. Cercare file Esempi find ~ -name foo -print find . -name "*foo*" find ~ -name -type d -iname "*bar*" -ls find . -name "*.o" -print -exec rm '{}' ; find / -size +100M find /usr -executable find /etc /usr/local/etc ! -readable Percorso 5 Bash 83
  • 84. Cercare file grep [-iv] pattern [f1 … fN] –filtra le righe che contengono un pattern Percorso 5 Bash 84
  • 85. Esercizio •Cercare tutti i file di proprietà dell’utente corrente –Tip: l’opzione non è stata spiegata, usare «man find» Percorso 5 Bash script 85
  • 86. Regex •Una espressione regolare (regular expression, regexp, regex, RE) è una stringa che identifica un insieme di stringhe •Operazioni di patten matching •Slang: “la stringa meccia la regex” Percorso 5 Bash 86
  • 87. Regex: simboli base •Un carattere –quel carattere •Punto «.» –un carattere qualsiasi Percorso 5 Bash 87 ma..a oh mamma mia! mamma
  • 88. Regex: simboli base •Cappello «^» e dollaro «$» –rispettivamente, inizio e fine stringa Percorso 5 Bash 88 ^ma..a$ oh mamma mia! mamma
  • 89. Regex: simboli base •Asterisco «*» –un numero qualsiasi di volte, anche zero •Più «+» –una o più volte •Punto interrogativo «?» –zero o una volta Percorso 5 Bash 89 ma?m+z*ak? oh mamma mia! mamma
  • 90. Regex: simboli base •Parentesi quadre «[ … ]» –uno qualsiasi dei caratteri specificati –se x-y, allora uno qualsiasi dei caratteri fra x e y –se il primo carattere dopo «[» è «^», allora un qualsiasi carattere non specificato Percorso 5 Bash 90 ^[A-Z]a?o?[mn]+a$ Mamma Nonna
  • 91. Regex Percorso 5 Bash 91
  • 92. Cercare file grep [-iv] -e regex [f1 … fN] –filtra le righe che contengono l’espressione regolare Percorso 5 Bash 92
  • 93. These slides are licensed under a Creative Commons Attribution Non Commercial Share Alike 4.0 International To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/ Versione in Italiano: https://creativecommons.org/licenses/by-nc-sa/4.0/deed.it