Introduzione al Bash

I

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.

 

A proposito di me

Andrew Raieta

Smanettone e appassionato di hardware fin da piccolo a 13 anni monta il suo primo PC, così iniziando ad esplorare quel mondo meraviglioso di linux ed essere sempre di più un utente attivo. Attualmetne studente di computer science presso l'università la Sapienza e nel frattempo decide di dedicarsi allo studio per formarsi come data science. Nell'ottobre del 2017 decide di scrivere sul blog per far scoprire il mondo di linux e condividere interessanti articoli tecnici sullo scripting.

Di Andrew Raieta

Gli articoli più letti

Articoli recenti

Commenti recenti