GNU/Linux >> Linux Esercitazione >  >> Linux

UNIX/Linux:cos'è una shell? Cosa sono le diverse conchiglie?

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 effettua il login o apre una finestra del terminale o 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 di sistema.
  • Programma e gestisce tutti i processi di sistema.

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

Ambiente utente

La shell fornisce anche un ambiente utente che è possibile personalizzare utilizzando i file di inizializzazione. Questi file contengono impostazioni per le caratteristiche dell'ambiente utente, ad esempio:

  • Cerca i percorsi per trovare i comandi.
  • Autorizzazioni predefinite sui nuovi file.
  • Valori per variabili utilizzate da altri programmi.
  • Valori che puoi personalizzare.

Quali sono le diverse conchiglie?

Le sezioni seguenti descrivono le shell del sistema operativo per lo più disponibili sul sistema operativo UNIX/Linux. Vengono inoltre descritte le funzionalità della shell e i relativi prompt predefiniti.

1. La Bourne Shell

La shell Bourne (sh), scritta da Steve Bourne presso AT&T Bell Labs, è la shell UNIX originale. È la shell preferita per la programmazione di shell per la sua compattezza e velocità. Uno svantaggio della shell Bourne è che manca di funzionalità per l'uso interattivo, come la capacità di richiamare comandi precedenti (cronologia). La shell Bourne manca anche di una gestione aritmetica e logica incorporata delle espressioni.

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

  • 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 è # .

2. La shell C

La shell C (csh):

  • È un miglioramento UNIX scritto da Bill Joy presso l'Università della California a Berkeley.
  • Funzioni integrate per uso interattivo, come alias e cronologia dei comandi .
  • Include comode funzioni di programmazione, come aritmetica integrata e una sintassi di espressione tipo C .

Per la shell C:

  • Il nome del percorso completo del comando è /bin/csh .
  • Il prompt predefinito dell'utente non root è hostname % .
  • Il prompt predefinito dell'utente root è il nome host # .

3. Il guscio di Korn

La shell Korn (ksh):

  • È stato scritto da David Korn presso AT&T Bell Labs
  • È un superset della shell Bourne.
  • Supporta tutto nella shell Bourne.
  • Ha caratteristiche interattive paragonabili a quelle della shell C.
  • Include comode funzioni di programmazione come aritmetica integrata e array simili a C , funzioni e strutture di manipolazione delle stringhe .
  • È più veloce della shell C.
  • Esegue gli 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 è # .

4. La shell GNU Bourne-Again

La shell GNU Bourne-Again (bash):

  • È compatibile con la shell Bourne.
  • Incorpora utili funzioni delle shell Korn e C.
  • Ha i tasti freccia mappati automaticamente per il richiamo e la modifica dei comandi.

Per la shell GNU Bourne-Again:

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

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

Shell Prompt predefinito (utente non root) Prompt predefinito (utente root)
The Bourne Shell (sh) /bin/sh e /sbin/sh $ #
La shell C (csh) /bin/csh % #
Il guscio di Korn (ksh) /bin/ksh $ #
La shell GNU Bourne-Again (Bash) /bin/bash bash-x.xx$ bash-x.xx#


Linux
  1. Linux vs. Unix:qual è la differenza?

  2. Linux:quali sono i diversi modi per impostare i permessi dei file ecc. su Gnu/linux?

  3. Cos'è umask in UNIX/Linux

  4. Cosa fa % nelle stringhe della shell di Linux?

  5. Quali sono i diversi modi in cui un messaggio può essere visualizzato su una shell bash dopo che un utente ha effettuato l'accesso?

Che cos'è la shell in Linux?

Che cos'è Subshell in Linux?

Che cos'è Login Shell in Linux?

Che cos'è Shebang negli script della shell di Linux?

Cosa sono gli inode in Linux?

8 tipi di shell Linux