Cos’è una Shell?

Una shell è un programma che fornisce un’interfaccia tra un utente e un kernel del sistema operativo (OS). Un sistema operativo avvia una shell per ogni utente quando l’utente accede o apre un terminale o una finestra della console.

Un kernel è un programma che:

  • Controlla tutte le operazioni del computer.
  • Coordina tutte le utilità in esecuzione
  • Assicura che le utilità in esecuzione non interferiscano tra loro o consumino tutte le risorse del sistema.
  • Schedula e gestisce tutti i processi di sistema.

Interfacciandosi con un kernel, una shell fornisce un modo per un utente di eseguire utilità e programmi.

Ambiente utente

La shell fornisce anche un ambiente utente che puoi personalizzare usando i file di inizializzazione. Questi file contengono impostazioni per le caratteristiche dell’ambiente utente, come:

  • Percorsi di ricerca per trovare i comandi.
  • Permessi di default sui nuovi file.
  • Valori per le variabili che altri programmi usano.
  • Valori che puoi personalizzare.

Quali sono le diverse shell?

Le seguenti sezioni descrivono le shell OS disponibili principalmente sul sistema operativo UNIX/Linux. Sono anche descritte le caratteristiche delle shell e i loro prompt di default.

La Bourne Shell

La Bourne shell (sh), scritta da Steve Bourne ai Bell Labs della AT&T, è la shell UNIX originale. È la shell preferita per la programmazione di shell a causa della sua compattezza e velocità. Uno svantaggio della shell Bourne è che manca di caratteristiche per l’uso interattivo, come la capacità di richiamare i comandi precedenti (cronologia). La shell Bourne manca anche di una gestione integrata delle espressioni aritmetiche e logiche.

La shell Bourne è la shell predefinita del sistema operativo Solaris. È la shell standard per gli script di amministrazione del sistema Solaris. Per la shell Bourne:

  • Il nome del percorso completo del comando è /bin/sh e /sbin/sh.
  • Il prompt predefinito dell’utente non root è $.
  • Il prompt predefinito dell’utente root è #.

La shell C

La shell C (csh):

  • È un miglioramento UNIX scritto da Bill Joy all’Università della California a Berkeley.
  • Ha incorporato caratteristiche per l’uso interattivo, come alias e cronologia dei comandi.
  • Include convenienti caratteristiche di programmazione, come l’aritmetica incorporata e una sintassi di espressione simile al C.

Per la shell C il:

  • nome completo del comando è /bin/csh.
  • Il prompt di default dell’utente non root è hostname %.
  • Il prompt di default dell’utente root è hostname #.

La Korn Shell

La Korn shell (ksh):

  • È stata scritta da David Korn alla AT&T Bell Labs
  • È un superset della Bourne shell.
  • Supporta tutto nella Bourne shell.
  • Ha caratteristiche interattive paragonabili a quelle della shell C.
  • Include convenienti caratteristiche di programmazione come l’aritmetica incorporata e gli array, le funzioni e le strutture di manipolazione delle stringhe di tipo C.
  • È più veloce della shell C.
  • Esegue script scritti per la shell Bourne.

Per la shell Korn il:

  • nome del percorso completo del comando è /bin/ksh.
  • Il prompt predefinito dell’utente non root è $.
  • Il prompt predefinito dell’utente root è #.

La GNU Bourne-Again Shell

La GNU Bourne-Again shell (bash):

  • È compatibile con la Bourne shell.
  • Incorpora utili caratteristiche dalle shell Korn e C.
  • Ha tasti freccia che sono automaticamente mappati per il richiamo e la modifica dei comandi.

Per la shell GNU Bourne-Again il:

  • nome completo del comando è /bin/bash.
  • Il prompt di default per un utente non root è bash-x.xx$. (Dove x.xx indica il numero di versione della shell. Per esempio, bash-3.50$)
  • Il prompt di default dell’utente root è bash-x.xx#. (Dove x.xx indica il numero di versione della shell. Per esempio, bash-3.50$#)

Ecco un breve confronto tra le 4 shell e le loro proprietà.

Shell Path Default Prompt (nonroot user) Prompt di default (Root user)
The Bourne Shell (sh) /bin/sh e /sbin/sh $ #
The C Shell (csh) /bin/csh % #
La Korn Shell (ksh) /bin/ksh $ #
La GNU Bourne-Again Shell (Bash) /bin/bash bash-x.xx$ bash-x.xx#

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.