Sei sulla pagina 1di 67
Cea G a LTS pr ronti all'uso La guida definitiva per padroneggiare la shell pil’ amata da sistemisti, SIT) 9) ofc LCoL mmm uated Tea ace) IL MAGO DI Come far girare i tuoi script Bash anche su Windows ARDUINO a URC UPC ma mya leect(y col battito delle mani? Un robot CORR OEn CIE uu eg SCID cele ate meel to te] LUCHA Ce Ona roe & MOUSE Cee aN gat aa ee ie Loa cores Foi rad ce arteries ty Tinh zen IL TELEFONINO DEL SISTEMI: LINUX Magazine ‘Era nomagoeoast MSM INU Seto stat si oe pte eperh ss Wes Fogomiio ede: Cernae Sun Conte Pa Ts Spt een ss ea apse Pranan Gc St esr tol Poet eee ep te nd at nf rata Ob ns Cee pnb OTOL ALAS arte ducal aU ‘Swanage asec Da 0 7 en C3 see miata (Gumneyezsi0seo 3M west 534 10902 a ‘€cbsenio 4 perpen ees OO pa seat Eine sat 26 ad pee pean 3k OD aI EH Cibaren pes p+ € 6,0 ne concn) ena set ney wasp ae ea "gatas ey rh ee a on 830 ‘qurevanae ‘mau STE Sines a 13-S Re ) eg bnron ar aren nes ev ne ‘rows eevee, ees hive ‘eae cote ce cls ae er re Dur nesnecseaec80 panes cpa de at ae, FOTO MILE PLGME WERE ELA RST Lassner tet pen aman oa Sexton apo tno to es pe tre ‘hms eto est ge eo a i as ‘i enter lpr rt annie tana erin con treat nk ‘Senate nagar taped es as es ee a ee et @ serccetetiowimastr Ba 10950005 nt naee D oasasastawaenesien-v0 nwt: raven ‘sume: GHROAVSETR S.A, 2- 10 aus FO, pono eke ap ‘tts a: rs Dents ono S-2000 Spe) | LINUX Magazine - Anno XIX - 03 (174) - Maggio 2017 Di che Shell sei? E stato compagno a giochi dei ‘veteran di GNU/Linux e continua ad ‘esserio anche per quel professionisti -dell'informatica, sistemisti primi fra tutti, ‘che di Windows o at sistem operatv propretari non ne vogtiono e non ne possono sentir partare, Stiamo par- lando del buon caro terminale, per gli amici la Shell. Gia, perché per quanto i pit: moderni ambienti desktop rendano pit appetibe una qualsies distribu one GNU/Linux anche all utente che ‘lawicina per la prima volta al magico mondo del Pinguino, del teminale non ‘se ne pud mai fare a meno. Sempre ‘che sf abbia fa vogia dl metore mani in pasta. Gia, perohé oggiglomo qualsias isto i permet di installer, rimuovere o aggiomare un pacchetto, ad esempio, utilizzando un qualche tool ‘ratco, anche se neseuno ci vita di Utizzare apt-get (62 stiemo uttzzando ‘un sistema Debian-like). Ogni comando da terminale ha un suo alter ego sotto forma di interfaccia grafica che, inne- gabile, semplifica la vita di chi non poi cos) tanto patio o pi semplicemente ‘non a vogla dl imparare, Ma questa fileesione, causa forza maggore, porta ad un primo quesito: che ne sara della Shell di GNU/Linux? Fra qualche ‘anno continueremo a trovera nelle. distro pil gettonate 0 vera segregata nel dimenticatolo? Lunica rsposta logica che abbiamo trovato tiene alla larga ogni possibile pensier catasto- fista. Gia, perché la Shell, per quanto all utenti possano anche decidere di non utlizzaia, non pot mai essere essa da parte. Dopotutt, se non ha fatto Microsoft con it suo Prompt dei ‘comand. a proposito di Microsoft, ron dimentichiamo che anche quest u- tima ha deciso ci puntaresula Shell del Pinguino. Per chi non lo sapesse, infati la casa di Redmond ha recen- temonto aggiunto al suo Windows 10 Ja cosiddetta powershell che, fale tante cose, consente ag tent! evolut dl nstallare anche Bash e, di fatto, ruscre asta tut, © qua, vantaggl dela tiga di comendo made in ‘GNU/Linux anche sul sistema opera- tivo proprietrio. E si sa, quando un ccolosso commerciale prova a mettere to zampino in un qualcosa di Libero, ci sicuro wuol dre che quel progetto una certavalenza ce ha Ma tralasclando ‘quest ‘ieriore conferma ¢ utenti a parte, non bisogna dimenticare che la stragtende maggioranza del web server cthe popolane Internet sono equipas- lat proprio con GNU/Linux e, amano lato server, li ambient desktop ¢ le interface grafiche non sono pot cos! ‘ben aocette (perch sprecare rsorse fisiche per qualcosa di supertuo?). Ed @ anche per questo motivo che la iga «i comandlo non potré mal cossare dl esistere ¢ continuera a conservare negil anni suo fascino, C8 chile icorda verde su fondo ner, ch blanca su fondo viola e chi arial su fondo net. ©’ chi ogni tanto la maledice e chi Invece passa le giomate a benediia. Chi la conosce perfettamente e chi invece sbatt la testa per imparare a districarel sempre pid in un mondo che ‘sembra essere complicato ma che, alla ‘ine dei cont, tanto complicato non lo 8. C8 chila personalizza graficamente ‘8 chiinvece non ha proprio intenzione di esploraia. 0 chi la usa solo per ‘semplici comandi di esplorazione o per ‘vere qualche informazione in pi sul sistema e chi Invece spreme tutte le sue poterzialtareaizzando i pit complessi, tha al tempo stesso util soript Bash, Ea tut questi che abbiamo voluto de- /dev/null 1>/tmp/network.txt Ecco quindi che possiamo eseguire il comando fping, che esegue un ping su tutta la rete locale, in base al'inditizzo della rete che abbiamo appena prodotto ed inserito nella variabile ‘mynet. Ora, noi vogliamo che gli eventuali errori del program- ‘ma, rappresentati dal numero 2, vengano eliminati finendo dentro il percorso /dev/null. Invece, il testo risultante con le varie statistiche di fping, rappresentato dal numero 1, deve ‘andare in un file di testo terporaneo. cLients=0 eliente=s(we -1 < /tmp/network-txt) ra possiamo leggere Il fle ci testo (we ~1) per contare le linge presenti: ogni dispositive trovato da fping avra una propria riga. if [ “Selients -ge 21 ‘chen ‘echo clients eat /eap/network. txt a sleep 60 ‘connected clients: Se il numero di righe, clod di dispositivi connessi alla rete, & ‘maggiore di2 (uno sarail nostro PC, 'eltro sicurarmente il router) ‘yuol dire che ci sono altri dispositivi connessi alla rete. Quindi scriviamo sullo echermo il contenuto del file di testo tempora- ‘neo con il comando cat. else echo “Wo network." sleep 10 a one Se invece non siamo conness! ad alcuna rete, non facclamo nulla ed aspettiamo 10 secondi prima dl verficare nuovamente. Fig. 2=Loscriptche cipermette di scaricare le immagini presenti in tuna qualsiasi pagina Web ESTRAIAMO LE IMMAGINI DI UNA PAGINA WEB iweb scraping non @ una procedura standard valida per tut- te le occasion, né tanto meno un programma pronto al'uso. Lo scraping @ un modo dl lavorare, un insieme di trucchi che, ‘combinati assieme a seconda dolla situazione, consentono di cttenere Informazioni utili da una pagina Web.“ Qualsiasi pagina Web @ un fle di testo semplice, scritto in HTML. Creiamo il nuovo script’extract-img.sh (scaricabile dalla pagina wwnedmasteritur/6669: ures Nella prima riga leggiamo il primo 'argomento che viene fornito allo script, che sar& ovviamente 'URL da cui scaricare le imma- ini e fo mettiamo nella variable url. curl suri | grep -o ‘ extract=imgmtmp txt Poi diamo un comando ch si occupa di estrarre tutti tag img dalla pagina Web: prima curl scarica la pagina Web e la passa a ‘gFep. Quest’ ultimo, seleziona soltanto le righe che contengono tun tag img, passandole poi a sed, il quale estrae da talirighe soltanto lindirizzo dt ogni immagine (cio8 la proprieta sre del ‘ag img). Questo elenco viene scritt, grazie al simbolo >, in un file temporaneo. hile read Line do curl -0 -1 $line done /dev/naL1 | grep wo “]*>/\n/ai" | sed ‘9/<\/ trl] /\n/gi' | sed *a/ 145/98" | sed e/<\/el7> )9>/7/gi" > tab.cav Ca eee Pee er tr mr Seer ee cone cra Cte eee eet eo ees er ee UU sicuri di avere messo 'intero testo su una sola riga, per leg Parc ee ota eee cs ue: Derre oe ee ate eee ata teen ens stra tabella CSY. Infine, scriviamo tutto iltesto in un apposito aeons to, equivalea Facebook cl offre un risultato di questo tipo: 4 neeps://scontent. se. theda.net/hphotos-xt#1/v/t1 11625673954374001_5304984190051719450_n «png?oh=ec417£51atb5a72c0ab582a6f0d0e962 ‘£00"56499767' -0-9/1174588 "Aidascalie delle foto", 11625673054374001" Possiamo selezionare tutto I testo che otteniamo come risposta, ed incollario in un semplice fle ci testo, che chiameremo per esempio om.txt. er scaricare le immagini, dobbiamo ottenere una lista pullta, gli incirizzi di download, Ecco che possiamo utiizzare grep in ‘modo da vedere solo le righe che contengono la parola chiave source" ed anche ripulre la parte inizialee finale di ciascuna riga utiizzando il comando sed. In questo modo: grep ‘source’ cmtxt | sed -e's/ "source": "Hig! | sed -2 's/")//g' > on-pulito.txt Cosi otteniamo il puro e semplice elenco: hetps://scontent x. fhedn.net/hphotos-sttal/¥/t1 +0-9/11266536_1607036362624417_7811772395091567230_n png?oh-ca8des#20475¢30487699b501196£0a5s00=56559598, ‘nttps://scontent xx. fbcdn-nat /hphotos-xtal/v/t1.0- 19/11267237_1607760992831954_6119557686214716077_n-pn ‘gPoh~3135£6782ea257667ed6ac61#a61077600=56107AE7 ra dobbiamo eseguire il download: per questo, realizzeremo tno soript, che chiarniamo om.sh, grep ‘source"' cn.txt | sod -e's/ —"souret "Hig! | sed -2 '8/",//g" > empulito.ext while read Line o Blonane=$(echo $line | rev | cut -4 */* -f1 | rev) curl $line -o $filename done < en-pulito.txt Esattamente come ablamo fatto nel caso precedente ulizzere- ‘mo un cio while per leggere inte file (che abbiamo chiamato cem-pulto.x ig per ig, visio che ogni linea contene uno deg indlzz! da scaricare. Qui il ttucco @ abbastenza semplce: dob- biamo fare due sole operazioni. Prima di tuto dobbiamo decidere ‘con quale nome salar immagine che vogiamo soarare. Per ‘arlo possiamo utlizzare nome scelto ca Facebook, ower tutto itesto che, neinarzz0 download, si trova dopo Flt simbalo /-ll.comendo cut ci permette ci scegiere facimente tuto co che si trova prima o dopo il primo simbolo “speciale” (i questo caso ‘).Ma noi vogliamo sapere cosa c’é dopo Fuitimo ci questi simbo I trucco consist Guin nel utizzare i comando rev per ibaliare Fig. 3~ In un clic @ possibile trasformare un file POF in una tabella CSV ‘I testo come se fosse davanti ad uno specchio. Noi utiizziamo il ‘comando rev una volta, di modo che tultimo simbolo / civent il primo, utitzziamo ll comando cut per selezionare il testo che ci interessa, e poi di nuovo il comand rev per rbaltare nuovaments iItesto in modo da avere tutte le lettere nelfordine giusto. Ottenuto questo testo, e dopo aver inserito nel contenitore filename, pos- siamo eseguire il download tramite curt. ra, potrebbe accadere che il download non venga eseguito. Questo perché Facebook potrebbe accorgersi che stiamo utilz- zando curl enon un vero browser Web. Ma possiamo ingannare Facebook utilizzando il file di configurazione di curl. Per acce- dere a tale fle di configurazione basta dare questi due comand ed nano .curlre Aparto editor di testo nano, possiamo scrivere il testo che tro- viamo a questa pagina wivw.edmaster.i/ur/6670. Adesso ese- guiamo di nuovo lo script: Il download riuscira. E questo perché stavolta Facebook & convinto che la richiesta di download pro- venga da Firefox invece che da cut. DA PDF ACSV Esistono molti motivi per cul ci si pub trovare a dover lavora- © con dei moduli: molte aziende hanno bisogno di raccogliere Informazioni dal clienti ¢ per farlo sottopongono loro dei mo- $2 - . Infine, se come secondo argomento dello script & stato spe- cificeto un flle su cui scrivere, lo si utlizza per salvare il CSV, altrimenti si fa apparire la tabella sullo schermo e basta. TRASFORMIAMO UN PDF Un’altra cosa utile, quando si lavora con i PDF, & applicarvi OCR, Infatti, chiunque abbia uno scanner pub scansionare dei document © produrre un file PDF (usando il programma img2pd, ma questo conterrebbe le varie pagine sotto forma di immagini, non di testo. Quindi non potremmo selezionare il te- sto e nemmeno eseguire delle ricerche all'interno del PDF. I fle [pu essere perd trasformato in un PDF con OCR usando Tes- Seract e Ghostscript. I codice (scaricabile da www.edmasterit/ ‘ur/6572 del file che chiameremo searchable-pdf-ocr.sh &: #1 /bin/bash ‘echo Creating a searchable POP for $1 falInane=$ (basenane $1") nane=${fulinamet.*) er cominciare si ricava ilnome del file su cui lavorare sulla base del primo argomento fornito allo script sulla riga di comando., pi"300" languages"ita" Sf (( fz $2 114 then enguage="$2" 6 af (( 2 $3 117 then pint s3" s Pol possiamo stabiire due variabili fondamentali, una per indi- care la lingua in cul é scrtto il documento (mportante per OCR) ‘ed una per la risoluzione delle immagini. Queste possono esse- re moaificate tramite il secondo e terzo argomento dello script. if (1 "$1" = .*\.(pdtleps) 117 then fecho "sxtracting pages” 198 ~GNOPAUSE -q -r$dpixdpi -sDavIcE-tif32ne ~/dev/null 2>41 rm "$(f.*) tif" ny ${f8.#}0cr.pat $f.tmp.pat done ‘A questo punto possiamo prowvedere ad eseguire '0CR con il programma Tesseract, salvando il rigultato in formato PDF. Poi facciamo pulizia cancellando i file temporanel. AUTOMATIZZIAMO L'ACCESSO TRAMITE SSH oot eee eee ute POM ol Se Te ea one el ce neta pice: basta inviare la pass SE eS re eae una pipe, Cac Bt Say atest) Pere! eee oceans ee eae | Qt Bons © fmtser @@ angi @ © wx OB tinal Ei peeps fie Meates Fig. 4~ Eseguire con regolarita det backup & una prassi da non sottovalutare ‘echo "Nerging all pages into a single PDF... gs ~dCompatibilitylevel=1.4 -dNOPAUSE - ae — | meaaaaE a0 camane” | eimai = . CHIAVE CROMATICA OG Prima ai spostare ta clip det flmato usando ta transizione, inseam in tale clip un effet di tipo Chiave eromatica, Selezionando i color dello sfonde su cul s trova Catore, to renderemo trasparente.

Potrebbero piacerti anche