Ordinare script ed eseguibili su Linux con una comoda directory

I sistemi operativi Linux sono eccellenti e versatili. Hanno una lista talmente lunga di pregi e vantaggi che qualcuno ci ha addirittura fatto un sito web. Elencarli tutti risulterebbe impossibile, tuttavia uno dei miei preferiti è la capacità di personalizzazione.

Che si tratti di aggiungere temi, indicatori sulla barra di stato, software o anche piccoli comandi (script) per effettuare compiti ripetitivi, c’è solo l’imbarazzo della scelta. Il terminale fornisce una interfaccia a riga di comando che può tornare utile a principianti ed esperti. Ve ne avevo parlato in passato: alcuni comandi sono molto semplici e si imparano in fretta.

I programmi e gli script

La maggioranza dei programmi su Linux è disponibile in comodi pacchetti, scaricabili direttamente dal gestore pacchetti (o “centro software”, oppure altri nomi simili). Tuttavia esistono degli strumenti che vengono distribuiti come eseguibili da estrarre in una cartella e lanciare subito.

Alcuni sono software un po’ di nicchia, come ad esempio K2pdfopt. Si tratta di un eccellente programma open source in grado di reimpaginare completamente un PDF anche scannerizzato e ottimizzarlo per un lettore ebook o uno smartphone. Altri sono programmi molto più conosciuti e “grossi” come l’IDE Eclipse.

Esistono poi innumerevoli script sparsi in giro per il web. Queste vere e proprio gemme si trovano solitamente su siti e blog specializzati e possono essere sotto forma di script già pronti oppure di un elenco di comandi Linux. Nel secondo caso basta metterli in un file con estensione sh e renderli eseguibili per poterli richiamare ogni volta.

Per esempio, potreste essere interessati a un metodo per pulire le tracce di Wine. Cercando sul web trovate questo mio articolo e lanciate i 5 comandi. Per evitare di cercarli di nuovo e copiarli ogni volta, potete creare un semplice file chiamato cleanwine.sh con il seguente contenuto:

#!/bin/bash
rm -rf ~/.config/menus/applications-merged/wine-*
rm -rf ~/.local/share/applications/wine*
find ~/.local/share/icons/ -name "*wine*" | xargs rm -rf
rm -rf ~/.local/share/desktop-directories/wine-*
rm -rf ~/.wine*

In sintesi, dovete includere i comandi desiderati preceduti da una riga chiamata shebang, che specifica quale shell deve essere eseguita. Il file non ha ancora il permesso di essere eseguito. Ciò si può risolvere da terminale, dando:

chmod +x cleanwine.sh

Oppure cliccando col destro e accedendo alle proprietà del file, alla scheda permessi.

Questo lo potete fare con molti altri comandi che trovate in rete, per evitare di ricordare a memoria sequenze lunghissime e impossibili da ripetere senza errori. Esistono naturalmente anche esempi più complicati, come i comandi che richiedono parametri (se agiscono su file o altro). Il mio era solo un esempio, ci vorrebbe un altro articolo per trattare approfonditamente tutto ciò.

Lo stesso discorso vale per molti script in Python formati da un singolo file, come ad esempio il mio script per usare il servizio gratuito di VPNGate.

Lanciare i propri script o programmi

Quello che abbiamo visto finora è bello e interessante, sorge però un problema. Voi potete avere scaricato k2pdfopt o altri eseguibili, oppure potete aver scritto (o salvato dal web) qualche script come cleanwine.sh. Però il vostro sistema non sa che esistono. Intendo dire che, provando a lanciare un comando da terminale, otterrete un errore:

$ k2pdfopt
k2pdfopt: comando non trovato

Finché è uno solo, va bene anche richiamare il percorso completo, supponendo di aver dato i permessi di esecuzione:

/home/andrea/Scaricati/k2pdfopt # oppure ~/Scaricati/k2pdfopt

Questo però non è pulito. Immaginate di avere anche 4-5 script o eseguibili: intasereste qualche cartella adibita ad altro (per esempio Scaricati) e poi dovreste ricordare l’intero percorso ogni volta. Impraticabile.

La soluzione è creare una o più directory in cui mettere gli script e poi “informare” il vostro sistema della sua esistenza.

Organizzare tutto con una directory

Con questa guida intendo spiegarvi l’organizzazione che utilizzo io. Ovviamente potete variarla e adattarla alle vostre esigenze. Sul mio portatile, ho creato nella home una cartella chiamata bin, che contiene anche altre sottocartelle:

$ ls -1d ~/bin/*/
/home/andrea/bin/eclipse/
/home/andrea/bin/sage/
/home/andrea/bin/script/

In sintesi, ho una directory dove ho estratto l’ultima versione di Eclipse, una dove tengo installato Sage e una cartella dove tengo due dozzine di script di vario genere. Ho anche qualche altro software che non ho incluso nell’output, per evitare confusione.

L’idea di base è semplice: includere la maggior parte degli script (in Bash e in Python) dentro a script, alcuni eseguibili come k2pdfopt direttamente in bin e i programmi grossi nelle proprie directory. Qualunque eseguibile o script messo dentro a una di queste cartelle deve poter essere richiamato dal terminale scrivendone il nome.

Una volta organizzata la struttura di cartelle e inseriti i vari script o programmi, è il momento di rendere tutto ciò “visibile” dal terminale.

Aggiustare il PATH

La shell della vostra distribuzione Linux è in grado di riconoscere i comandi che digitate perché sa dove andarli a cercare. Per esempio, se digitate who e premete Invio, il sistema cercherà tutte le cartelle nel PATH fino a trovare un programma che si chiami esattamente così. Il programma (probabilmente /usr/bin/who) viene quindi eseguito.

Qui entra il gioco la personalizzazione: possiamo aggiungere le nostre directory e richiamare gli script e gli eseguibili scaricati. Per farlo, vi basta aprire il file .bashrc nella vostra cartella home.

Due cose a cui fare attenzione:

  • Sto supponendo che la vostra versione di Linux usi Bash come shell predefinita, se non siete sicuri al 99% è così. Gli utenti esperti possono modificare la propria shell e usarne una alternativa.
  • Il file da modificare è nascosto (inizia con un punto), perciò dovrete attivare la visualizzazione dei file nascosti per poterlo individuare. Su alcuni gestori di file, come quello di Ubuntu, si può fare anche premendo Ctrl+H mentre siete nella cartella home.
  • Queste modifiche valgono solo per il vostro utente. Gli altri utenti del sistema non noteranno differenze.

È necessario aggiungere alcune righe in fondo. Magari mettete anche un paio di righe bianche per separare il contenuto precedente da quello aggiunto da voi. In particolare sono una per directory:

# Percorsi aggiunti al PATH
export PATH=$PATH:~/bin
export PATH=$PATH:~/bin/script
export PATH=$PATH:~/bin/sage

Non ho aggiunto Eclipse perché non mi interessa richiamarlo da terminale, ma solo tenerlo in una cartella “in ordine”. Come potete vedere, stiamo ridefinendo il PATH aggiungendovi un separatore (due punti) e la directory desiderata. Ne mettiamo una alla volta per comodità.

Ricordate di modificare il mio esempio, non copiatelo così com’è. Un paio di osservazioni:

  • Se non usate Sage o se avete predisposto altre cartelle, adattate le righe di conseguenza.
  • La tilde serve a rappresentare il percorso della vostra cartella home.

Ora dovreste chiudere il terminale e riaprirlo. Qualsiasi script o eseguibile messo nella cartella bin o in un’altra di quelle che avete elencato potrà essere richiamato con il relativo nome.

Alcuni consigli

Aggiungendo altri programmi potrebbe capitarvi di creare altre sottodirectory, e queste non sono incluse nel PATH. Potete modificarlo ogni volta, oppure mettere un collegamento simbolico all’esegubile principale nella cartella bin: questo in genere funziona bene con i programmi in Java.

Un esempio è jPdf Tweak, un altro software per modificare i PDF. L’ho scaricato in questo percorso:

~/bin/jpdftweak-linux-x64-1.1

Poi però l’ho collegato nella directory principale, per evitare di dover modificare la mia configurazione:

cd ~/bin/
ln -s jpdftweak-linux-x64-1.1/jpdftweak.jar .

Ciò potrebbe non funzionare per alcuni software, provate caso per caso. Ecco come appare attualmente la mia directory per gli script e gli eseguibili:

Esempio di contenuto della directory predisposta
Esempio di contenuto della directory predisposta

Per quanto riguarda i programmi che hanno interfaccia grafica, può essere utile creare un’icona per il menu. Il lanciatore va inserito in:

~/.local/share/applications

Deve inoltre avere una estensione .desktop. Eccovi un esempio del contenuto del mio file jpdftweak.desktop:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=jPdf Tweak
Icon=/home/andrea/bin/jpdftweak-linux-x64-1.1/icons/icon256.png
Path=/home/andrea/bin/jpdftweak-linux-x64-1.1/
Exec=jpdftweak.jar

Ovviamente i campi vanno adattati al caso specifico.

Spero di aver fornito una spiegazione esauriente per creare una propria directory dove immagazzinare gli script e i file binari. Chiaramente queste istruzioni rispecchiano le mie personali preferenze, altri potrebbero usare metodi differenti.

Se avete dei suggerimenti a questo proposito o volete condividere la vostra organizzazione in questo ambito, lasciate un commento. 🙂

Annunci

Nuova versione dello script per guardare e scaricare da Rai.tv e Rai Replay

Come sapete, da un po’ di tempo sviluppo un comodo script che consente di guardare e scaricare i video on demand dal portale Rai.tv, che include anche Rai Replay. Lo script ha sempre funzionato bene o male con tutti i video, tuttavia in qualche sporadico caso — per via della “variabilità” del layout delle varie pagine Rai — poteva fallire. Oggi ho provveduto ad aggiornare ed estendere il codice dello script per fare alcune migliorie, alcune delle quali importanti. Ecco la lista dei cambiamenti:

  • Migliore supporto ai video in formato MP4 — Prendete ad esempio questo servizio di RaiNews24, che prima non era correttamente riconosciuto.
  • Miglior posizionamento del riquadro verde — Ora il link dovrebbe essere sempre sotto al video anche su pagine dalla struttura “arzigogolata”, come questo video del TG1, fornendo un aspetto più consistente.
  • Supporto a Rai.it — Nel caso in cui i video su Rai.it siano inseriti in modo “tecnologicamente uguale” a Rai.tv (come per esempio le rubriche del TG2) ora il mio script li riconosce e individua il link (cercando per quanto possibile di rimandare l’utente a Rai.tv dove sicuramente funziona).
  • Supporto ai video in Flash sui domini Rai — Avete presente quelle numerose puntate sui sottodomini che finiscono per rai.it, per esempio questo? Ebbene, ora il mio script è in grado di aiutarvi anche per quelli. Non esiste un link diretto ai file, ma sotto al video troverete la linea di comando da dare in pasto a RTMPdump, un programma per salvare flussi con protocollo RTMP. Il file risultante alla fine del processo sarà in MP4.

Per le informazioni su come installare lo script — nonché come usarlo per salvare i video — vi rimando al mio precedente articolo. Per favore pazientate ancora un po’ e datemi tempo per aggiornarlo affinché contenga anche le istruzioni riguardo RTMPdump, che è la principale novità di questa versione 4.0 dello script. 😉 Come sempre, buona visione!

Guardare e scaricare i video di Rai.tv e Rai Replay — anche con Linux

In passato vi avevo scritto riguardo ad un mio script per Greasemonkey che consentiva di vedere le puntate delle trasmissioni TV sul sito Rai.tv senza usare Silverlight. Soffriva però di una limitazione: non era compatibile con Rai Replay, il servizio che permette di rivedere quasi tutti i programmi degli ultimi 7 giorni trasmessi da Rai 1, Rai 2, Rai 3 e Rai 5. Inoltre devo dire onestamente che aveva qualche piccolo bug.

Ebbene, sono lieto di annunciarvi che ho rilasciato una nuova versione dello script che non solo corregge i bug di cui sopra, ma aggiunge il pieno supporto a Rai Replay! E la cosa migliore è che non dipende per nulla da Silverlight, non dovete averlo nemmeno installato. Lo script fornisce un link diretto al file che vi interessa e vi permette di vedere la trasmissione direttamente nel browser. Nella maggior parte dei casi sarà un video in HTML5, riproducibile senza plugin. Nel caso di video non in MP4, potrete usare uno dei tanti player multimediali per il vostro sistema operativo — posto che abbiate tutti i codec installati.

    Qui potete vedere alcuni esempi dello script in azione, a sinistra sull'archivio di Rai.tv e a destra su Rai Replay
Qui potete vedere alcuni esempi dello script in azione, a sinistra sull’archivio di Rai.tv e a destra su Rai Replay

Le istruzioni sono divise in paragrafi. Assicuratevi di leggerli tutti, dall’inizio alla fine e in pochi minuti avrete tutto pronto per il vostro primo download. 😉

Player consigliati

Per alcuni video (quelli non in MP4) è necessario usare un plugin multimediale. Per la riproduzione in Firefox con Linux vi consiglio di usare Gecko Media Player e non Totem. Per quanto riguarda Chrome (quello proprietario) sotto Linux vi consiglio Totem. Per tutti gli altri casi (Chromium oppure altri sistemi operativi) usate sempre il plugin di VLC in modo da non avere problemi.

Estensione per il browser

Prima di installare lo script dovete aggiungere l’estensione adatta al vostro browser. Potete usare Greasemonkey su Firefox oppure Tampermonkey su Chrome/Chromium o Violent monkey su Opera. Dovrebbe funzionare anche su Safari usando NinjaKit.

Pagine supportate

Lo script funziona sulle seguenti pagine:

  • Video on demand di Rai.tv — I video che potreste trovare possono essere stream MMS, file MOV, file WMV, oppure file MP4.
  • Video di Rai Replay — In questo caso saranno sempre file MP4.
  • Pagine di programmi su Rai.it — Per esempio gli speciali del TG2, per i formati vale quanto detto per Rai.tv.
  • Video in flash su sottodomini di Rai.it — I video sono in formato MP4.

Installazione dello script

A questo punto vi basta recarvi alla pagina di download per installare lo script , premendo il pulsante verde qui sotto. Nella pagina che si aprirà, dovrete cliccare Install this script. Poi i successivi aggiornamenti di solito sono automatici.

Download — Rai.tv native video player and direct links

Come salvare i video

Per i file MP4, MOV, WMV: cliccate col tasto destro e scegliete la voce Salva con nome o simile.

Per gli stream MMS: Un buon metodo multipiattaforma per registrare i flussi MMS è usare Mplayer. Ho scritto le istruzioni per farlo in questo mio articolo. Con Linux e Mac OS X potete anche utilizzare mimms, ne avevo parlato qui. Esistono anche altri programmi… se non vi aggrada nessuno di quelli menzionati, fate come vi pare e usate quello che preferite. 😛

Note importanti

Nel caso in cui aveste problemi con Rai Replay tenete presente che lo script può funzionare solo se la Rai ha caricato il file in MP4, e non sempre lo fanno. È una scelta loro, non dipende da me. Se trovate video con cui il mio script non funziona e avete modo di credere che il file MP4 ci sia, fatemelo sapere e vedrò di sistemare.

Per guardare le dirette su Linux basta il plug-in di Flash Player.

Ricordandovi che potete anche provare il mio script per il sito Mediaset e quello per La7, vi auguro buona visione! 😉

Vi è piaciuto l’articolo?

Scrivere software e guide come questa richiede tempo. Se avete trovato queste informazioni utili e vi è piaciuto il post, potete offrirmi un caffè cliccando sul bottone. 🙂 Se lo fate, per favore lasciate una nota indicando che è per questo articolo.

Caffè