la shell bash - comandi base - comandi avanzati - espressioni regolari
DESCRIPTION
Master: Amministratore Linux - Livello Base Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato. Il contenuto del corso è allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico è disponibile liberamente con licenza Creative Commons BY-NC-SA. I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno. Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-adminTRANSCRIPT
![Page 1: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/1.jpg)
![Page 2: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/2.jpg)
Percorso 5 Bash 2
![Page 3: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/3.jpg)
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
![Page 4: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/4.jpg)
BASH
• Standard (*NIX, MacOS, Windows, …)
• Versatile e potente
• Programmabile
Percorso 5 Bash 4
![Page 5: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/5.jpg)
Percorso 5 Bash 5
![Page 6: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/6.jpg)
Lavorare con la Console (inizio)
• Control+Alt+F1
• Usare l’applicazione «Terminale»
Percorso 5 Bash 6
![Page 7: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/7.jpg)
Lavorare con la Console (fine)
• Alt+F7
• Comando «Exit»
• Control+D
• Chiudere il terminale
Percorso 5 Bash 7
![Page 8: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/8.jpg)
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
![Page 9: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/9.jpg)
Comandi
• Interni (builtin commands)
• Esterni
• Alias
Percorso 5 Bash 9
![Page 10: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/10.jpg)
Aiuto / Informazioni Aggiuntive
• Documentazione in /usr/share/doc
– E.g.: less /usr/share/doc/bash/INTRO.gz
Percorso 5 Bash 10
![Page 11: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/11.jpg)
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
![Page 12: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/12.jpg)
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
![Page 13: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/13.jpg)
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
![Page 14: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/14.jpg)
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
![Page 15: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/15.jpg)
Autocompletamento
Percorso 5 Bash 15
![Page 16: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/16.jpg)
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
![Page 17: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/17.jpg)
Variabili
• La shell permette di definire «variabili»
• Dollaro «$» per usare le variabili definite
• Doppi apici vs. apice singolo
Percorso 5 Bash 17
![Page 18: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/18.jpg)
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
![Page 19: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/19.jpg)
$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
![Page 20: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/20.jpg)
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
![Page 21: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/21.jpg)
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
![Page 22: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/22.jpg)
Nomi dei file
• I nomi che contengono spazi devo essere racchiusi da apici o doppi apici
Percorso 5 Bash 22
![Page 23: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/23.jpg)
Esercizio
• A cosa servono i comandi «basename» e «dirname»?
– usare il manuale
– fare alcune prove
Percorso 5 Bash 23
![Page 24: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/24.jpg)
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
![Page 25: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/25.jpg)
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
![Page 26: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/26.jpg)
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
![Page 27: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/27.jpg)
Wildcards («globbing»)
• Wildcards: * ? [ ] -
• A differenza di MS-DOS/Windows l’espansione è fatta dalla shell
Percorso 5 Bash 27
![Page 28: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/28.jpg)
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
![Page 29: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/29.jpg)
Navigazione
cd [dir]
– cambia cartella
pwd
– mostra la cartella corrente
Percorso 5 Bash 29
![Page 30: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/30.jpg)
Esempio
/
/tmp/
/tmp/dir1/
/tmp/dir1/file.txt
/tmp/dir2/
/tmp/dir2/file.txt
Percorso 5 Bash 30
/$ cd /tmp/dir1
![Page 31: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/31.jpg)
Esempio
/
/tmp/
/tmp/dir1/
/tmp/dir1/file.txt
/tmp/dir2/
/tmp/dir2/file.txt
Percorso 5 Bash 31
/$ cd ../dir2
![Page 32: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/32.jpg)
Esempio
/
/tmp/
/tmp/dir1/
/tmp/dir1/file.txt
/tmp/dir2/
/tmp/dir2/file.txt
Percorso 5 Bash 32
/$ cd ../..
![Page 33: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/33.jpg)
Esempio
/
/tmp/
/tmp/dir1/
/tmp/dir1/file.txt
/tmp/dir2/
/tmp/dir2/file.txt
Percorso 5 Bash 33
/$ cd /tmp/dir1/./../dir2/..
![Page 34: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/34.jpg)
Creazione
touch f1 [ … fN ]
– tocca (crea o aggiorna l’istante dell’ultima modifica)
mkdir [-p] dir
– crea una direcory
Percorso 5 Bash 34
![Page 35: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/35.jpg)
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
![Page 36: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/36.jpg)
Cancellazione
rm [-rf] f1 [ … fN ]
– rimuove file
– alias comune: « alias rm='rm -I' »
rmdir dir
– rimuove una cartella vuota
Percorso 5 Bash 36
![Page 37: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/37.jpg)
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
![Page 38: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/38.jpg)
Rinominare/Spostare
mv f1 f2
mv f1 [ … fN ] dir
– muove (rinomina o sposta) file
Percorso 5 Bash 38
![Page 39: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/39.jpg)
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
![Page 40: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/40.jpg)
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
![Page 41: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/41.jpg)
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
![Page 42: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/42.jpg)
Output base
echo [-n] [ testo ]
– stampa il testo a video
clear
– cancella lo schermo
– equivalente a «Control+L»
Percorso 5 Bash 42
![Page 43: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/43.jpg)
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
![Page 44: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/44.jpg)
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
![Page 45: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/45.jpg)
Modificare permessi
chown utente[:gruppo] f1 [ … fn ]
– cambia owner
chgrp gruppo f1 [ … fn ]
– cambia gruppo
Percorso 5 Bash 45
![Page 46: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/46.jpg)
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
![Page 47: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/47.jpg)
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)
![Page 48: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/48.jpg)
Informazioni
uname [-a]
– informazioni sul sistema
lsb_release [-a]
– informazioni sulla release
• File e cartelle in /proc
Percorso 5 Bash 48
![Page 49: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/49.jpg)
Dimensione
wc[f1 … fN]
– dimensione dei file in righe, parole, caratteri
du[dir]
– dimensione dei file di una cartella
Percorso 5 Bash 49
![Page 50: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/50.jpg)
Mountpoint
mount
– visualizza i filesystem montati
– per montare nuovi occorrono i privilegi di root
Percorso 5 Bash 50
![Page 51: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/51.jpg)
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
![Page 52: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/52.jpg)
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
![Page 53: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/53.jpg)
Eseguire comandi
• Più comandi possono essere specificati sulla stessa linea separati con «;»
Percorso 5 Bash 53
![Page 54: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/54.jpg)
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
![Page 55: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/55.jpg)
Processi e Job
• Ogni processo ha un numero
– PID
• Ogni processo è collegato ad un utente
– UID
Percorso 5 Bash 55
![Page 56: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/56.jpg)
Processi e Job
• Altre informazioni
– commandline
– tempo
– memoria
– priorità
– nice level
Percorso 5 Bash 56
![Page 57: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/57.jpg)
Gentilezza
nice num cmd
– esegue un comando in modo più gentile
renice num proc
– rende un processo più gentile
Percorso 5 Bash 57
![Page 58: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/58.jpg)
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
![Page 59: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/59.jpg)
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
![Page 60: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/60.jpg)
--forest e -H
Percorso 5 Bash 60
![Page 61: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/61.jpg)
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
![Page 62: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/62.jpg)
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
![Page 63: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/63.jpg)
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
![Page 64: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/64.jpg)
Sospendere l’esecuzione
• Specificando «&» al termine del comando questo viene eseguito subito in background
Percorso 5 Bash 64
![Page 65: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/65.jpg)
Sospendere l’esecuzione
• Specificando «&» al termine del comando questo viene eseguito in background
Percorso 5 Bash 65
job precedente
job corrente
![Page 66: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/66.jpg)
Sospendere l’esecuzione
• Il comando «wait» attende che tutti i processi in background siano terminati
Percorso 5 Bash 66
![Page 67: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/67.jpg)
Albero (ascii-art)
Percorso 5 Bash 67
![Page 68: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/68.jpg)
Redirezione
Percorso 5 Bash 68
process stdin stdout
stderr
![Page 69: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/69.jpg)
Redirezione
$ comando parametri > file
$ comando parametri >> file
$ comando parametri < file
Percorso 5 Bash 69
![Page 70: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/70.jpg)
Redirezione (stdout vs. stderr)
$ comando parametri > file
$ comando parametri > file 2> file2
$ comando parametri > file 2>&1
$ comando parametri >& file
Percorso 5 Bash 70
![Page 71: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/71.jpg)
Pipe
Percorso 5 Bash 71
proc1 stdin stdout
stderr
proc2 stdin stdout
stderr
![Page 72: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/72.jpg)
Pipe
$ comando1 parametri | comando2 parametri
$ comando1 parametri |& comando2 parametri
Percorso 5 Bash 72
![Page 73: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/73.jpg)
Pipe
Percorso 5 Bash 73
![Page 74: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/74.jpg)
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
![Page 75: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/75.jpg)
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
![Page 76: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/76.jpg)
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
![Page 77: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/77.jpg)
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
![Page 78: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/78.jpg)
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
![Page 79: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/79.jpg)
Archivi
Percorso 5 Bash 79
![Page 80: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/80.jpg)
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
![Page 81: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/81.jpg)
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
![Page 82: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/82.jpg)
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
![Page 83: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/83.jpg)
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
![Page 84: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/84.jpg)
Cercare file
grep [-iv] pattern [f1 … fN]
– filtra le righe che contengono un pattern
Percorso 5 Bash 84
![Page 85: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/85.jpg)
Esercizio
• Cercare tutti i file di proprietà dell’utente corrente
– Tip: l’opzione non è stata spiegata, usare «man find»
Percorso 5 Bash script 85
![Page 86: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/86.jpg)
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
![Page 87: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/87.jpg)
Regex: simboli base
• Un carattere
– quel carattere
• Punto «.»
– un carattere qualsiasi
Percorso 5 Bash 87
ma..a
oh mamma mia!
mamma
![Page 88: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/88.jpg)
Regex: simboli base
• Cappello «^» e dollaro «$»
– rispettivamente, inizio e fine stringa
Percorso 5 Bash 88
^ma..a$
oh mamma mia!
mamma
![Page 89: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/89.jpg)
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
![Page 90: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/90.jpg)
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
![Page 91: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/91.jpg)
Regex
Percorso 5 Bash 91
![Page 92: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/92.jpg)
Cercare file
grep [-iv] -e regex [f1 … fN]
– filtra le righe che contengono l’espressione regolare
Percorso 5 Bash 92
![Page 93: La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari](https://reader034.vdocumenti.com/reader034/viewer/2022052214/5594874b1a28ab5d608b462c/html5/thumbnails/93.jpg)
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