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:
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:
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:
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.