Shell in ambiente unix like, Linux, mac, bsd, ecc.

Autore:[Antonio Gallonetto]

Nei sistemi operativi unix o simili, non sempre si ha a disposizione un ambiente grafico, e in molti casi è molto comodo utilizzare il testo per impartire delle istruzioni al sistema.
Un piccolo esempio di questa comodità può essere:
la copia dei files che hanno questo formato bak_giornomeseanno.zip di quest’anno. Utilizzando l’interfaccia grafica e avendo files magari non dello stesso tipo con il medesimo formato, oppure tipi diversi, la selezione sarebbe complicata.
Utilizzando la shell il comando potrebbe essere questo:
cp -R bk_*2021.zip ~/Backup/
questo comando copia tutti i files zip del formato bk_datagiornoqualsisi e dell’anno 2021.
Inoltre tutte le shell hanno un loro linguaggio con le quali possono essere programmate, i software creati sfruttando i loro linguaggi di programmazione interni, sono detti script. Lo script in pratica rappresenta una sequenza di comandi.

Quello che ha reso il terminale dei comandi così potente è la pipe, in sostanza un meccanismo con il quale si possono prendere i dati in uscita da un software e usarli come dati in entrata per un altro. Ovviamente i programmi sono già strutturati per questo, ad esempio nell’esempio precedente avrei potuto usare il comando grep, che serve per cercare le occorenze di una parola, e prendere il risultato di questo come entrata per il comando di copia. La pipe è estremamente semplice da usare tra i due programmi è sufficiente mettere il simbolo |

Non esiste un’unica shell, ma si sono sviluppate nel tempo varie soluzioni, in base alle necessità che si avevano, le più diffuse sono:

Questa lista non è una lista esaustiva con tutte le shell disponibili, ma le trovate in quaso tutte le distribuzioni e sono tra le maggiormente usate.

Un discorso a parte lo faremo per Windows, che ha una sua shell, chiamata terminale dei comandi e poi una shell potenziata chiamata powershell.