LO SCRIPTING
La bash (a.k.a. bourne again shell) è una shell che permette di interagire col nostro sistema operativo ed agire su esso. Tanti di noi hanno avuto la loro personale esperienza e in questo articolo ne voglio parlare un po’ e spiegarvi la sua reale importanza.
Ma cos’è esattamente la shell?
In sintesi possiamo definire la shell come un interprete di comandi, il quale permette tramite inserimento l’esecuzione di svariati comandi. Iniziamo prendendo in esempio alcuni comandi basilari.
lubu@lubu-VirtualBox:~$ dir Desktop Documents Downloads Music Pictures Public Templates Videos lubu@lubu-VirtualBox:~$ cd Documents lubu@lubu-VirtualBox:~/Documents$ ls script.sh lubu@lubu-VirtualBox:~/Documents$ touch script2.sh lubu@lubu-VirtualBox:~/Documents$ ls script2.sh script.sh lubu@lubu-VirtualBox:~/Documents$ ls -l total 0 -rw-rw-r-- 1 lubu lubu 0 ott 18 12:31 script2.sh -rw-rw-r-- 1 lubu lubu 0 ott 18 11:59 script.sh
Qui sopra potete leggere comandi basilari che permettono di visualizzare una lista di contenuti dell’attuale directory (comando dir), il comando cd che ci permette di muoverci avanti di una directory fino a touch la quale permette di creare un file di testo. Tra tutti quanti il comando interessante è ls con il parametro ” -l ” che permette di visualizzare molte opzioni tra le quali troviamo i permessi del file, di cui discuteremo più avanti nel dettaglio.
Rendiamo il tutto automatico
Uno script è quello che ci consente di “automatizzare” compiti che il nostro sistema operativo eseguirà. Per fare tutto ciò andremo a creare un file chiamato script.sh e dentro scriveremo il seguente codice:
echo 'Hello World!'
Ora digitando semplicemente il comando qui sotto otterremo l’output Hello World!:
bash script.sh
Due potenti simboli del bash
In questa introduzione parlerò molto velocemente di due strumenti del bash, molto potenti ovvero le redirection “<<” ,”>>” e la pipe ” | “. Le redirection vengono usate in molti casi, ma il caso che andremo ad eseguire è quello della redirezione dell’output di un comando in un file di testo, nella sostanza la sintassi sarà NomeFile >> FileDiTesto.txt.
ls -l >> script2.txt #se useremo la redirection >> si aggiungerà in coda al testo già esistente l'output prodotto da ls ls -l > script2.txt #se useremo la redirection > singola si andrà a sovrascrivere al testo già esistente
Questo sopra citato è un semplice esempio di come può essere usata la redirection, ne discuteremo in altri articoli più tecnici e dettagliati. Ma ora parliamo della pipe, comando molto utile che diventerà il vostro pane quotidiano, è un comando che permette di inserire l’output del programma_1 in quello del programma_2 ovvero “program_1 | program_2 “, ma vediamo un pratico esempio:
touch number.txt #così facendo creeremo un file di testo dove andremo ad'inserire manualmente l'alfabeto riga per riga cat alphabet.txt | head #piccola curiosità il simbolo di pipe può essere generato digitando alt+124
Così facendo con cat visualizzeremo il contenuto del file number.txt così producendo un output che dopo tramite la syscall “pipe” invieremo al comando head, visualizzando solamente i primi n valori del testo (dandoci una sorta di anteprima). Ovviamente aggiungo che il bash è un linguaggio come altri quindi prevede tutti i meccanismi di base per automatizzare il tutto.
In sintesi
Quanto è stato scritto in questo articolo è un resoconto (minimale) di cosa può fare il bash, nei prossimi articoli saranno trattate molte tecniche, trucchi e spiegherò a fondo come sfruttare a fondo determinati comandi per il vostro sistema linux.
pssss….questa è una piccola anticipazione, ma ci sarà da leggere bella roba sulla programmazione C (bash è fatto in C), quindi stay tuned e buona lettura.