Script Bash guida fare molto con un click martedì 07 dicembre 2010 Ultimo aggiornamento domenica 07 giugno 2015 Uno Script Bash è un file di testo, contenente dei comandi che viene salvato con estensione.sh. Lanciando lo script, i comandi in esso contenuti verranno, automaticamente, eseguiti da Ubuntu. Uno script può essere semplice ma anche molto complesso, dipende da quello che intendiamo realizzare. Vedremo cosa è uno script, come crearlo, modificarlo, lanciarlo... Cosa sono gli Script Bash, come utilizzarli, come crearli Domanda {xtypo_warning}utilizzo Ubuntu ed ho letto qualcosa sugli Script. Mi è sembrato che riescono a fare molte cose ma ho avuto l'impressione che si tratti di argomento difficile. Potete darmi delle delucidazioni in merito?...{/xtypo_warning} Risposta {xtypo_sticky}gli Script Bash non rappresentano un argomento difficile, anzi, per alcune cose sono semplicissimi e riescono a fare tanto. Segui le indicazioni che riporto di seguito...{/xtypo_sticky} Il Terminale In Ubuntu molte azioni le compiamo tramite finestre grafiche. In effetti per compiere tali azioni possiamo usare anche il Terminale e molti lo preferiscono. Ecco una piccola guida sul Terminale di Ubuntu: Il Terminale di Ubuntu iniziamo ad usarlo Il Terminale, chiamato anche console, shell, command line, linea di comando, ecc..., e' un'applicazione che permette di interagire direttamente col Sistema Operativo (Come la finestra DOS di Windows). Si tratta di uno strumento potente disponibile in Linux (Ubuntu) col quale possiamo fare tantissimo grazie a dei comandi: installare e disinstallare software; creare, spostare o cancellare cartelle e file; manipolare file di configurazione; tantissime altre azioni, dalle più semplici alle più complesse. Nel Terminale è possibile digitare o incollare una riga di comando per volta, anche se breve e semplice o lunga e complessa. Lo Script Bash
Se apriamo un editore di testi, ad esempio Gedit (che è il corrispondente del Blocco note di Windows) e vi incolliamo i comandi utilizzati per il Terminale e poi lo salviamo (dopo avere rispettato delle semplicissime regole), otterremo uno Script che è, quindi, un file contenente dei comandi. Lanciando lo Script verranno eseguiti automaticamente da Ubuntu, tutti i comandi che contiene. In questo modo non avremo più la limitazione del Terminale che imponeva una sola riga di comando per volta. Uno Script può essere semplice ma anche molto complesso, dipende da quello che intendiamo realizzare. Mi limiterò alla realizzazione di semplici Script che possono, comunque compiere importanti e lunghe azioni. Creare uno Script Bash Da Ubuntu apriamo l'editor di testi Gedit (Applicazioni / Accessori / Editor di testi), in esso incolliamo la prima riga: che è indispensabile in quanto indica al sistema la presenza di istruzioni nel file che vanno elaborate dalla shell (Terminale). Seguiranno le righe con tutti i comandi ed in ultimo è opportuno chiudere lo script col comando: exitche è la maniera corretta per uscire da uno script. Ecco un semplice esempio di script: # Questo script installa le tre applicazioni audacity amsn e amule sudo apt-get install audacity -y sudo apt-get install amsn -y sudo apt-get install amule -y exit Ultimata la scrittura ci basta salvare il file con un nome qualsiasi e con l'estensione.sh, ad esempio: installazione.sh
Vediamo cosa abbiamo fatto: Si tratta della riga di apertura dello Script che è obbligatoria. # Questo script installa le tre applicazioni audacity amsn e amule Questa è una riga di commento, ossia una spiegazione di quanto farà lo script. Qualunque riga (tranne la prima) se scritta dopo il simbolo # non ha nessuna rilevanza e non costituirà un comando. Possiamo anche non inserire commenti, ma essi servono a meglio capire a cosa serve lo script stesso. sudo apt-get install audacity -y Si tratta del comando che installa il software audacity (editore audio). Il comando, dato da terminale, sarebbe: sudo apt-get install audacity noi abbiamo aggiunto -y per evitare la conferma. Spieghiamo meglio. Le tre righe che iniziano con sudo apt-get install installano delle applicazioni, se non inseriamo (in coda) -y, per ogni installazione ci verrà chiesta la conferma. Se rispondiamo si (y) l'applicazione verrà installata, altrimenti verrà saltata. Invece, inserendo (in coda) -y l'applicazione verrà installata senza alcuna conferma. Entrambe le opzioni possono essere utili. Nell'esempio le tre applicazioni verranno installate automaticamente senza la richiesta di nessuna conferma conferma. Altra cosa da dire è che le righe vuote non vengono considerate dallo script. Esse normalmente si inseriscono, tra una riga di comando e l'altra, solo per facilitare la lettura dello script. Infatti, righe di comando troppo fitte darebbero fastidio nella lettura. Le righe vuote hanno, quindi, il compito di facilitare la comprensione dello script da parte delle persone, come accade per le righe di commento, ma, entrambe, non hanno nessuna importanza ai fini dell'azione dello script. A questo punto abbiamo lo script completo e salvato con un nome e con l'estensione.sh (nell'esempio lo abbiamo chiamato installazione.sh), ma per lanciarlo dobbiamo renderlo eseguibile. Lanciare uno Script Bash
Facendo doppio click sullo script (installazione.sh), lo stesso verrà aperto con Gedit (editore di testi) e ne verrà, semplicemente mostrato il contenuto. Questo in quanto lo script non è stato reso eseguibile. Per renderlo eseguibile, bisogna fate click col destro sullo script (file.sh), quindi scegliete Proprietà. Si apre una finestra (figura sottostante). Click sulla linguella Permessi (cerchiata in rosso) ed in basso basta inserire una spunta nel quadratino relativo all'opzione Consentire l'esecuzione del file come programma (numero 1). Terminare con un click su Chiudi (numero 2). Adesso lo Script è stato reso eseguibile. Se facciamo doppio click sul file.sh (nell'esempio lo script: installazione.sh), ora si aprirà la finestra sottostante: Facendo click sul bottone Esegui nel terminale (numero 1), lo script sarà lanciato ed attuerà tutti i comandi in esso contenuti. Al lancio dello script verrà, automaticamente, aperto il terminale che si chiuderà, sempre automaticamente, alla fine dell'esecuzione dell'ultimo comando. ATTENZIONE: per Ubuntu 13.04 bisogna prima effettuare una piccola configurazione a Nautilus Ubuntu 13.04 - Come Lanciare gli Script Modificare uno Script Bash Se dalla figura precedente facciamo click sul bottone Mostra (numero 2), lo script verrà aperto a mezzo dell'editore di testi Gedit. Possiamo quindi modificarlo a nostro piacimento (aggiungere, eliminare righe o quello che vogliamo) ed alla fine fare click sul l'icona Salva, che si trova in alto a sinistra dell'editore di testi (Gedit). In questo modo, otterremo il nuovo script modificato. Piccoli consigli Una volta lanciato lo script si aprirà il terminale. Se tra i comandi contenuti nello script si trova anche sudo, vi verrà chiesta la password. Il terminale di Ubuntu, per una questione di sicurezza, quando si digita la password, non fa
vedere nulla. Questo per evitare che qualcuno che si trova vicino, riesca a capire, se non altro, di quante cifre è composta la password. Quindi quando il terminale richiede la password, anche se sembra che non succede nulla, in effetti sta succedendo tutto. Ossia anche se apparentemente sembra che la password non venga recepita, in effetti Ubuntu la sta prendendo perfettamente. Pertanto dovete solo digitare tutta la password completa, con attenzione (anche se non vedete nulla) e poi dare invio da tastiera. Il terminale accetterà la password, se correttamente digitata e procederà con l'esecuzione dei comandi. Prima di lanciare gli script, è consigliabile chiudere tutte le applicazioni aperte (programmi). Durante l'esecuzione dello script, è consigliabile, non aprire altre applicazioni e non eseguire altri lavori. Durante l'esecuzione dello script potrebbe esservi chiesta una conferma. Rispondete con una s (esse) e date Invio da tastiera. Aspettate pazientemente la fine dell'esecuzione dello script che potrebbe richiedere anche molto tempo, specialmente se si installano applicazioni (numerose e/o grosse). Appena lo script avrà ultimato la sua azione, la finestra del terminale si chiuderà automaticamente. Se uno script creato per installare dei pacchetti (programmi) viene interrotto è possibile lancialo nuovamente. Rilanciando lo script non verranno reinstallati i pacchetti già precedentemente installati, ma solamente quelli che non lo erano stati. Per conoscere il nome esatto di un pacchetto da installare, potete aiutarvi con Synaptic: Sistema / Amministrazione / Gestore pacchetti Nella casella Ricerca veloce digitate il nome del software e nella zona più in basso troverete il nome corretto e completo del pacchetto. Risorse interessanti Per avere esempi pratici di script (già pronti, scaricabili, consultabili ed utilizzabili), si rimanda alla pagina: Ubuntu Codec Script Font Software Altro Per un'ottima guida, completa ed in italiano, si rimanda alla pagina: Guida avanzata di scripting Bash Per una guida pratica che mostra come rendere eseguibile ed avviare uno script da Terminale: Creare script bash shell in pochi minuti Molti troveranno estremamente comodo avere tantissimi comandi suddivisi per categoria e a portata di mano: Terminale: elenco dei Comandi principali