Un tesoro nascosto nella linea di comando.
Carrellata ragionata con esempi d'uso dei tool a linea di comando più diffusi.
Daniele Albrizio – albrizio@units.it
Un approccio scalabile e robusto per il mail filtering. - Simone Marzona
Un tesoro nascosto nella linea di comando
1. Un tesoro nascosto
nella linea di comando
Carrellata ragionata con esempi d'uso
dei tool a linea di comando più diffusi
Daniele Albrizio – albrizio@units.it
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
2. Linea di comando
●
●
●
●
Accesso all'automazione per l'amministratore di
sistema e l'utente
Automazione: gestione di macchine e processi
che riduce la necessità dell'intervento umano.
Step-up della semplificazione della vita da parte
del computer (che altrimenti, normalmente, ce la
complica).
Anche sistemi “nati” a finestre hanno introdotto
la shell
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
3. Linea di comando
●
●
●
La linea di comando NON è “vecchia”
La maggior parte di programmi per Linux ha una
linea di comando come modalità di utilizzo
alternativa o esclusiva
Vengono continuamente implementate nuove
funzionalità
è
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
5. Convenzioni (ABC della shell semplificato)
●
●
●
●
Spesso i file vengono preceduti dalla directory
eg/ (eg/nomefile) per maggior chiarezza nella
dimostrazione
I comandi su una sola riga vengono rappresentati
su più linee usando il carattere “” come
congiunzione
Il carattere “|” serve a concatenare l'azione di più
comandi
“> esempio” scrive sul file con nome esempio
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
6. File di testo
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
7. Formattare file di testo: fold
File di testo troppo “larghi” possono essere
agevolmente ristretti con fold, uno strumento del
pacchetto coreutils
cat long.txt | fold -sw 72 | mail
-s "This email contains bashwrapped text" foo@bar.net
● -s spezza le righe senza spezzare le parole
● -w (width) specifica il numero massimo di
caratteri per linea
●
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
8. Traslitterazione/filtraggio caratteri con tr
●
File di testo con caratteri “scomodi” possono
essere agevolmente ripuliti con tr, uno strumento
del pacchetto coreutils
cat <oldfile> | tr -d '340'
<newfile>
●
●
>
340 è la rappresentazione ottale del carattere
(come in od -c)
Tr può essere usato per trasformare set di caratteri
cat geek.txt | tr '48310572' 'abeiostz'
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
9. Formattare liste: cat, column
Giochiamo un po' con i file CSV (o simili) In
modo da formattarli come vogliamo noi e/o
estraendo ciò che ci serve
cat ParchiGiocoProvinciaRoma.csv
| column -s';' -t
| tr -d '"'
● Formattazione a larghezza fissa di un file di
valori separati dal carattere ; e inclusi nelle “”
●
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
10. Formattare liste: awk, sort
Estraiamo solo i comuni diversi e ordiniamoli in
ordine alfabetico
● Awk: linguaggio di scripting per processare testo
cat ParchiGiocoProvinciaRoma.csv
| tr -d '"'
| awk -F';' '{print $2}'
| sort -u
| grep -v Comune
●
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
11. Formattare liste: sort, column
Lista ordinata per comune in ordine alfabetico
cat ParchiGiocoProvinciaRoma.csv
| tr -d '"'
| sort -t';' -k2
| column -s';' -t
● Via le “”, ordina per la seconda colonna
delimitata da “;”, incolonna graficamente
riconoscendo il delimitatore “;”
●
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
12. Multitail
●
●
●
Uso apprezzato da sistemisti, retisti e sviluppatori
web
Effettua il monitoraggio in tempo reale di più file
di log contemporaneamente
Serve a capire ad esempio la corrispondenza fra
connessione/applicazione/errore
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
13. Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
14. Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
15. PDF – Portable document format
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
16. Reimpaginare i file PDF: pdftk
Uno strumento maneggevole per manipolare i PDF
● Estrarre la parte da compilare di un modello 730
pdftk A=modello730.pdf cat A1-5 output
eg/modello730caaf.pdf
●
Togliere la pagina della guida (una pagina arbitraria)
dal PDF
pdftk A=modello730.pdf cat A1-9 A11-end
output
eg/modello730caafNOhelp.pdf
●
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
17. Reimpaginare i file PDF: pdftk
●
Un file PDF per ogni pagina
pdftk modello730.pdf burst output eg/mod730_
%02d.pdf
Creare un PDF unico da singole scansioni
pdftk eg/*.pdf cat output eg/unione.pdf
●
rotate
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
18. Reimpaginare i file PDF: pdftk
●
Rotazione e watermark
pdftk modello730.pdf stamp fac-simile.pdf
output eg/mashup.pdf
pdftk eg/mashup.pdf rotate 2-3down
output eg/mashupstamo.pdf
rotate
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
19. Ridurre la risoluzione delle immagini
in un PDF
Due metodi: ImageMagick e Ghostscript
● ImageMagick: suite di programmi per manipolare
immagini
convert -units PixelsPerInch
pesante.pdf
-density 300 eg/leggero.pdf
● Il risultato però è il PDF di una immagine: viene
convertito (rasterizzato) anche il testo
●
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
20. Ridurre la risoluzione delle immagini
in un PDF
●
Ghostscript: interprete per il linguaggio
PostScript e PDF
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
21. Ridurre la risoluzione delle immagini
in un PDF
gs -sDEVICE=pdfwrite
-dNOPAUSE -dQUIET -dBATCH
-dDownsampleColorImages=true
-dDownsampleGrayImages=true
-dDownsampleMonoImages=true
-dColorImageResolution=300
-dGrayImageResolution=300
-dMonoImageResolution=300
-sOutputFile=eg/leggerogs.pdf
pesante.pdf
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
22. Un mega poster per il compleanno: poster
●
●
Stampare un file PDF A3 su 9 fogli A3
Poster: scala e ritaglia immagini postscript per
poterle stampare su pagine multiple
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
23. Un mega poster per il compleanno: poster
pdf2ps SPa3.pdf
poster -v -iA3 -mA3 -p3x3A3 -w2% -c4%
SPa3.ps > SPa3-split.ps
ps2pdf SPa3-split.ps
●
Questo crea 9 pagine A3 con un margine bianco
esterno del 2% e un margine di taglio del 4% utile per
il collage
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
24. Immagini
Vista dall'Eagle's Nest – Berchtersgaden – DE
Copyleft: Daniele Albrizio
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
25. Ruotare le foto automaticamente
Tutti i programmi per la visualizzazione e
l'archiviazione di immagini per Linux ruotano
automaticamente le immagini seguendo le
informazioni EXIF dell'immagine
● Tuttavia programmi di default in altri sistemi
operativi e appliances non lo fanno
● Lossless way (nearly [1])
jhead -autorot *.jjpg
●
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
26. Watermarking: composite
●
Aggiunta di “scritte” tese a tutelare blandamente
il copyright o a titolare le immagini
●
ImageMagick:
composite -identify -dissolve 60%
-gravity SouthEast -geometry +300+200
-quality 100 ( watermark.png -resize
200% )
immagine.jpg wm_immagine.jpg
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
27. Audio
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
28. Audio : vlc
●
●
Estrazione della traccia audio da un filmato flv
VLC può essere usato in maniera completa anche
da linea di comando:
vlc -I dummy -vvv "Myvideo.flv"
--no-sout-video
--sout-audio
-sout="#transcode{acodec=mp3}:std{access=file,mux=raw,dst=myaudi
o.mp3}"
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
29. Recuperare i vecchinastri (audiocassette)
●
Si può registrare tutto il lato o tutta la cassetta con
audacity e poi splittare i singoli brani con
mp3splt -s -p th=-30,min=0.1,off=0.2
pub.mp3
●
●
-p aggiunge i parametri di threshold per il silence
detection (30db) la durata minima (0,1 secondi) e
l'offset da includere nel file audio (0,2 secondi)
E' possibile poi giuntare file mp3 con
mpgjoin *.mp3 -o collage.mp3
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
30. Files
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
31. Backup dei file Dropbox: rsync
●
●
●
●
Dropbox è un servizio di cloud storage multipiattaforma
Il client offre la sincronizzazione automatica di
file via web
Siccome non fidarsi è meglio, mi organizzo un
backup in una sola direzione cloud → locale in
caso di problemi
rsync è uno strumento per la copia remota
(sicura) e locale dei file molto versatile e veloce
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
32. Backup dei file Dropbox: rsync
/usr/bin/rsync -av
/home/albrizio/Dropbox/BackedUp
/home/albrizio/DropboxBackup
● Una riga a cron conclude la funzionalità
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
33. Quindi
●
●
●
Quanto detto copre solo alcuni casi di
applicazione.
La linea di comando ci fornisce moltissimi
strumenti per l'automazione.
Sta a noi farne buon uso per semplificarci la vita.
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
34. HELP!
●
man <comando>
●
●
●
●
●
●
●
man 1 <comando> (comandi)
man 5 <comando> (formati)
info <comando>
apropos <comando>
www.google.com
<> → parametro obbligatorio
[] → parametro opzionale
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
35. Pacchetti usati
●
●
●
●
●
●
●
●
pdftk - A handy tool for manipulating PDF
MultiTail - browse through several files at once
tailf - follow the growth of a log file
ImageMagick - programmi per la manipolazione di
immagini (convert, mogrify, ecc.)
poster - creazione di grossi poster da pagine PostScript
coreutils (tr, fold, ecc.) - utilità GNU essenziali
ghostscript – (ps2pdf, gs, ecc.) interprete per il
linguaggio PostScript e PDF
eog – visualizzazione senza auto-rotation
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
36. Pacchetti usati
●
●
●
●
●
jhead - Digicam JPEG Exif header manipulation tool
jpegtran - lossless transformation of JPEG files
mp3splt - utility for mp3/ogg vorbis splitting without
decoding
tr - translate or delete characters
Awk - pattern scanning and processing language
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it
38. Licenza d'uso
di questo documento
Quest'opera è stata rilasciata sotto la licenza Creative Commons
Attribuzione-Condividi allo stesso modo 2.5.
Per leggere una copia della licenza visita il sito web
http://creativecommons.org/licenses/publicdomain/ o spedisci una
lettera a Creative Commons, 559 Nathan Abbott Way, Stanford,
California 94305, USA.
Università degli Studi di Trieste
Sabato 26 ottobre 2013
(ɔ) Copyleft 2013 – Daniele Albrizio
albrizio@units.it