Cos'è la Bourne Shell?

La shell Bourne è un piccolo programma che gira su sistemi operativi Unix® e LINUX® e fornisce un'interfaccia per eseguire programmi sul sistema. Viene spesso definita interfaccia a riga di comando o interprete di comandi, in quanto non fornisce all'utente alcuna interfaccia grafica (GUI). I comandi e tutti i parametri necessari da eseguire vengono digitati nella shell. La shell Bourne è anche un linguaggio di scripting, che consente agli utenti di creare ed eseguire file di script in grado di elaborare i dati attraverso più programmi mediante un singolo comando. Su sistemi simili a Unix®, il programma è semplicemente noto come "sh".

Le prime shell di questo tipo per i sistemi Unix® erano conosciute come Thompson shell, creata da Ken Thompson, uno dei creatori originali del sistema operativo Unix®. La shell Thompson era limitata all'interpretazione dei comandi e una serie di funzioni aggiuntive dovevano essere eseguite come operazioni esterne. Più tardi, Stephen Bourne ha creato la shell Bourne per sostituire la shell Thompson, aggiungendo una serie di nuove funzionalità alla shell stessa, oltre al linguaggio di scripting della shell.

In realtà, la shell Bourne è stata progettata sin dall'inizio come linguaggio di scripting. Sebbene fosse ancora l'interfaccia della riga di comando per Unix® versione sette, ha anche aperto la possibilità agli utenti di sviluppare script di shell che collegassero i comandi per elaborare i dati. Attraverso l'uso di questa programmazione, l'utente potrebbe stabilire variabili per acquisire dati noti o sconosciuti da input o output e manipolare l'elaborazione di tali dati attraverso l'uso di istruzioni condizionali nello script tramite una tecnica denominata flusso di controllo.

Questa è stata anche la prima shell a implementare una funzionalità nota come gestione del segnale. Attraverso la shell Bourne, un utente può inviare un tipo specifico di segnale a un processo già in esecuzione sul computer, istruendo tale processo a fare qualcos'altro. Molti di questi sono modi per arrestare un processo in esecuzione e produrre una sorta di output che può essere utilizzato per il debug, sebbene esistano altri per arrestare temporaneamente un processo, riprendere e così via.

La possibilità di controllare direttamente i descrittori di file è stata un'altra delle novità della shell Bourne. Su un sistema simile a Unix®, ogni programma in esecuzione ha una tabella che elenca i descrittori di file per tutti i file aperti. Ciò può includere qualsiasi cosa, da un semplice file di testo a una directory o persino ai socket di comunicazione che i processi utilizzano per condividere i dati tra loro. Per un utente avere il controllo sui descrittori di file su un sistema ha permesso un controllo senza precedenti su input e output praticamente per tutto sul computer.

Naturalmente, sebbene la shell Bourne offrisse agli utenti tale funzionalità aggiuntiva, mancava di funzionalità come la capacità di controllare i processi in modo interattivo, stabilire alias di comando e conservare una cronologia. Più tardi, tuttavia, cominciò a emergere un certo numero di discendenti che presero le più utili funzionalità di shell che erano state ideate nel corso degli anni e le arrotolarono in nuove shell. Un esempio comune è la shell Bourne-again, o Bash, che è comune su molti sistemi LINUX®. Di conseguenza, molti di questi discendenti sono pienamente in grado di eseguire normali script di shell Bourne, dando a ogni sistema simile a Unix® un'implementazione della shell Bourne originale in un modo o nell'altro. Su molti sistemi LINUX®, questo è semplicemente un collegamento da "sh" a "bash" o qualche altro discendente capace.

ALTRE LINGUE

Questo articolo è stato utile? Grazie per il feedback Grazie per il feedback

Come possiamo aiutare? Come possiamo aiutare?