Confronta Sh Shell vs. Bash

Confronta Sh Shell vs. Bash
Qualsiasi moderno sistema operativo UNIX/Linux viene fornito con il sh e le shell bash installate per impostazione predefinita. Mentre entrambi sono molto simili in natura, uno offre più dell'altro.

Questa guida si tuffa in profondità nelle differenze e nelle somiglianze tra il sh e i conchiglie bash.

Shell Linux

In Linux, una shell è un programma dedicato per l'interpretazione dei comandi. Interpreta la lingua di comando e dice al sistema di eseguire le attività descritte. Non fa parte del kernel ma può eseguire attività, come l'esecuzione di programmi e la creazione di file.

La funzionalità di un guscio è meglio compresa con un esempio. Apri il terminale nel sistema ed esegui il seguente comando:

$ data

Qui, abbiamo notato quanto segue:

  • La shell predefinita prese la "data" del comando, interpretata e gestiva il data attrezzo.
  • Ha anche stampato l'output sullo schermo della console.

Le conchiglie possono anche venire con le proprie lingue. Bash Scripting, ad esempio, è potente nell'automazione di compiti molto complessi e nel raggiungimento delle meraviglie.

Ci sono molte conchiglie disponibili per la piattaforma Linux. Ovviamente, il più popolare è il bastone bash. Ecco alcuni gusci alternativi che vale la pena dare un'occhiata:

  • Zsh con oh mio zsh
  • Guscio di pesce

The Bourne Shell (SH)

La shell Bourne è la shell predefinita per la versione 7 UNIX. Originariamente sviluppato da Stephen Bourne a Bell Labs, è stato un sostituto per il Thompson Shell. La Shell Bourne ha iniziato il suo viaggio nel 1979. Scopri di più sulla storia del Shell Bourne su Wikipedia.

Fino ad oggi, la shell Bourne è disponibile su quasi tutti i sistemi Linux. La posizione del binario è la seguente:

$ quale sh

I sistemi simili a unix continuano ad avere Bourne Shell a /usr/bin/sh. Potrebbe non essere il guscio di Bourne ma un collegamento simbolico/duro con una shell più compatibile. È possibile verificarlo eseguendo il seguente comando:

$ file -h /bin /sh

IL sh Shell è anche il nome del linguaggio di programmazione del comando. Questo linguaggio è descritto dallo standard POSIX che tutti i sistemi unix e unix devono seguire. La shell Bourne di cui abbiamo discusso finora è un'implementazione sh.

The Bourne Again Shell (Bash)

Ora siamo venuti al guscio moderno che tutti conosciamo e amiamo: il bastone bash, noto anche come "Bourne Again Shell."La denominazione è un gioco di parole che indica che sostituisce la shell bourne.

Sviluppato da Brian Fox per il progetto GNU, Bash è sia una shell unix che una lingua di comando. È stato pubblicato per la prima volta nel 1989. Da allora, è stata la shell di accesso predefinita per la maggior parte dei distro Linux. Scopri di più sulla storia del bastone bash su Wikipedia.

Bash è un superset di sh, Significa che incorpora le caratteristiche di sh E ancora un po '. Come lingua, la maggior parte dei comandi fa la stessa cosa sh. Tuttavia, Bash non è una shell conforme a posix ma piuttosto un dialetto del linguaggio di shell Posix. Bash è destinato ad essere l'implementazione conforme della parte della shell e degli strumenti IEEE POSIX della specifica IEEE POSIX (IEEE Standard 1003.1).

Controlla la posizione del binario Bash Shell:

$ quale Bash

Differenze tra Sh e Bash

Ha fornito il contesto storico, sh e bash condividi più somiglianze rispetto alle differenze in quanto una è una migliore implementazione dell'altro. Indipendentemente da ciò, ecco alcune notevoli differenze di caratteristiche che si dovrebbero sapere.

Shell predefinita

Nella maggior parte dei sistemi moderni di oggi, Bash è la shell predefinita.

Posizione binaria

Controlla la posizione binaria di entrambe le conchiglie:

$ quale sh
$ quale Bash

Caratteristica

Rispetto a sh, Bash offre molta più flessibilità e sintassi che sembrano un linguaggio di programmazione moderno. Ecco alcune funzionalità aggiuntive che Bash offre sh:

  • Bash supporta il completamento della riga di comando con il Scheda chiave
  • Sfogliare la cronologia dei comandi usando il SU Chiave freccia o "ctrl + r"
  • Calcolo aritmetico senza strumenti di terze parti
  • Array associativi
  • Tasti rapidi
  • Supporto di personalizzazione per la presentazione di bash predefinita
  • Epocsecondi e variabili di ambiente di epocherealtime
  • Espansioni del tutore

Conformità posix

Per impostazione predefinita, Bash non è conforme a Posix, mentre sh È. Tuttavia, possiamo eseguire Bash in modalità conforme a Posix con il seguente comando:

$ Bash --PoSix

Se stai scrivendo uno script bash ma hai bisogno dello standard POSIX, usa il seguente codice all'inizio:

#!/Bin/Bash
SET -O POSIX

Qui, il impostato Il comando dice a Bash di abilitare la modalità Posix.

Facilità d'uso

Bash offre un linguaggio più moderno della riga di comando rispetto a sh. A questo proposito, ti divertirai molto a usare Bash.

Portabilità

Rispetto a Bash, sh offre una migliore portabilità.

Perché sh è conforme a Posix, qualsiasi shell che supporta Posix sarà in grado di eseguire sh Script. Ad esempio, Bash può funzionare sh Script in modalità posix.

Scripting

Quando scrivi uno script in bash, il codice è garantito solo per essere compatibile con Bash.

D'altra parte, durante la script in sh, Il codice può essere eseguito su qualsiasi shell. È perchè sh Definisce il linguaggio di scripting di shell originale.

Conclusione

In questo articolo, abbiamo esplorato la storia, le somiglianze e le differenze tra sh e Bash. Sh è il predecessore di bash. Entrambi sono disponibili su tutti i moderni sistemi UNIX/Linux. Mentre Bash offre un'esperienza più comoda e facile da usare, sh offre compatibilità, portabilità e sintassi/comportamento standardizzati.

Sei nuovo a Bash Scripting? Questo tutorial di script bash per principianti copre tutto il necessario per scrivere i tuoi script bash. Speriamo che tu abbia trovato questo articolo utile. Dai un'occhiata ad altri articoli di suggerimento Linux per ulteriori suggerimenti e tutorial.