Cos'è il Shell Bourne?
La shell Bourne è un piccolo programma che funziona su sistemi operativi UNIX® e Linux® e fornisce un'interfaccia per eseguire programmi sul sistema. Viene spesso definito un'interfaccia della riga di comando o interprete di comando, in quanto non fornisce alcuna interfaccia utente grafica (GUI) all'utente. I comandi e tutti i parametri necessari da eseguire vengono digitati nella shell. Bourne Shell è 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 tramite un singolo comando. Sui sistemi simili a UNIX®, il programma è semplicemente noto come "Sh."
Le prime tali conchiglie 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 del comando e una serie di funzioni aggiuntive dovevano essere eseguite come operazioni esterne. Più tardi, Stephen Bourne ha creato la shell Bourne per sostituire il ThompsonShell, aggiungendo una serie di nuove funzionalità nella shell stessa, nonché nel linguaggio di scripting della shell.
In realtà, la shell di Bourne era progettata come un linguaggio di scripting fin dall'inizio. Sebbene fosse ancora l'interfaccia della riga di comando per la versione sette UNIX®, 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 l'acquisizione di 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.
Questo è stato anche il primo shell a implementare una funzione nota come maneggevolezza 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 SomEtching altro. Molti di questi sono modi per fermare un processo che sta eseguendo e produrre una sorta di output che può essere utilizzato per il debug, sebbene altri esistano per fermare temporaneamente un processo, riprendere e così via.
La capacità di controllare direttamente i descrittori di file è stata un'altra prima per la shell di Bourne. Su un sistema simile a UNIX®, ogni programma in esecuzione ha una tabella che elenca i descrittori di file per eventuali file aperti. Ciò può includere qualsiasi cosa, da un semplice file di testo a una directory o persino dalle prese di comunicazione che i processi utilizzano per condividere i dati tra loro. Affinché un utente abbia il controllo sui descrittori di file su un sistema consentito per un controllo senza precedenti sull'input e l'output praticamente per tutto sul computer.
Naturalmente, anche se la shell di Bourne offriva tale funzionalità aggiuntiva agli utenti, mancava di funzionalità come la capacità di controllare i processi in modo interattivo, stabilire alias di comando e mantenere una storia. Più tardi, tuttavia, un certo numero di discendiLe formiche hanno iniziato a emergere che hanno richiesto le caratteristiche di shell più utili che erano state ideate nel corso degli anni e le hanno rimbalzate in nuove conchiglie. Un esempio comune è il shell di 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® una certa implementazione della shell di 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.