Hva er forskjellen mellom Bash, Zsh og andre Linux Shells?

Innholdsfortegnelse:

Hva er forskjellen mellom Bash, Zsh og andre Linux Shells?
Hva er forskjellen mellom Bash, Zsh og andre Linux Shells?

Video: Hva er forskjellen mellom Bash, Zsh og andre Linux Shells?

Video: Hva er forskjellen mellom Bash, Zsh og andre Linux Shells?
Video: LW11 AGPTEK Smart Watch IP68: Things To Know // Real Life Review - YouTube 2024, Mars
Anonim
De fleste Linux-distribusjoner inkluderer bash-skallet som standard, men du kan også bytte til et annet skallmiljø. Zsh er et spesielt populært alternativ, og det finnes andre skall, som aske, dash, fisk og tcsh. Men hva er forskjellen, og hvorfor er det så mange?
De fleste Linux-distribusjoner inkluderer bash-skallet som standard, men du kan også bytte til et annet skallmiljø. Zsh er et spesielt populært alternativ, og det finnes andre skall, som aske, dash, fisk og tcsh. Men hva er forskjellen, og hvorfor er det så mange?

Hva gjør skaller?

Når du logger på kommandolinjen eller starter et terminalvindu på Linux, starter systemet shellprogrammet. Shells tilbyr en standard måte å utvide kommandolinjemiljøet på. Du kan bytte ut standardskallet til en annen, hvis du vil.

Det første skallmiljøet var Thompson Shell, utviklet på Bell Labs og utgitt i 1971. Shell-miljøer har bygd på konseptet siden, og har lagt til en rekke nye funksjoner, funksjonalitet og forbedringer i hastigheten.

For eksempel tilbyr Bash kommando- og filnavnavslutning, avanserte skriptfunksjoner, en kommandobeskrivelse, konfigurerbare farger, kommandoaliaser og en rekke andre funksjoner som ikke var tilgjengelige tilbake i 1971 da det første skallet ble utgitt.

Skallet brukes også i bakgrunnen av ulike systemtjenester. Linux distribusjoner inkluderer mange funksjoner skrevet som shell skript. Disse skriptene er kommandoer og andre avanserte shell scripting funksjoner går gjennom shell miljøet.

Skjell som fører opp til Bash: sh, csh, tsh og ksh

Den mest fremtredende progenitoren til moderne skall er Bourne-skallet - også kjent som "sh" - som ble oppkalt etter sin skaper Stephen Bourne som jobbet på AT & Ts Bell Labs. Utgitt i 1979 ble det standard kommandotolk i Unix på grunn av sin støtte for kommandosubstitusjon, piping, variabler, tilstandstesting og looping, sammen med andre funksjoner. Det ga ikke mye tilpasning for brukere, og støttet ikke slike moderne niceties som aliaser, kommandotilfylling og skallfunksjoner (selv om denne siste til slutt ble lagt til).

C-skallet, eller "csh", ble utviklet på slutten av 1970-tallet av Bill Joy ved University of California, Berkley. Den la til mange interaktive elementer som brukere kunne kontrollere sine systemer, som aliaser (snarveier for lange kommandoer), arbeidsstyringsevner, kommandog History og mer. Den ble modellert av C-programmeringsspråket, som selve Unix-operativsystemet ble skrevet inn. Dette innebar også at brukerne av Bourne-skallet måtte lære C slik at de kunne legge inn kommandoer i den. I tillegg hadde csh ganske mange feil som måtte hammeres ut av brukere og skapere likt over en stor periode. Folk endte opp med å bruke Bourne-skallet for skript fordi det håndterte ikke-interaktive kommandoer bedre, men fast med C-skallet for normal bruk.

Image
Image

Over tid løst mange mennesker feil og tilføyet funksjoner til C-skallet, som kulminerte i en forbedret versjon av csh kjent som "tcsh". Men csh var fortsatt standard i Unix-baserte datamaskiner, og hadde lagt til noen ikke-standardfunksjoner. David Korn fra Bell Labs jobbet på KornShell, eller "ksh", som forsøkte å forbedre situasjonen ved å være bakoverkompatibel med Bourne-skallets språk, men legge til mange funksjoner fra csh-skallet. Den ble utgitt i 1983, men under en proprietær lisens. Det var ikke gratis programvare før 2000-tallet, da den ble utgitt under ulike open source-lisenser.

Fødsel av bash

Det bærbare operativsystemgrensesnittet for Unix, eller POSIX, var et annet svar på de hektiske, proprietære csh-implementasjonene. Den har vellykket opprettet en standard for kommandotolking (blant annet) og til slutt speilet mange av funksjonene i KornShell. Samtidig forsøkte GNU-prosjektet å lage et gratis, Unix-kompatibelt operativsystem. GNU-prosjektet utviklet et gratis programvareskall for å være en del av sitt gratis operativsystem og kalt det "Bourne Again Shell", eller "bash".
Det bærbare operativsystemgrensesnittet for Unix, eller POSIX, var et annet svar på de hektiske, proprietære csh-implementasjonene. Den har vellykket opprettet en standard for kommandotolking (blant annet) og til slutt speilet mange av funksjonene i KornShell. Samtidig forsøkte GNU-prosjektet å lage et gratis, Unix-kompatibelt operativsystem. GNU-prosjektet utviklet et gratis programvareskall for å være en del av sitt gratis operativsystem og kalt det "Bourne Again Shell", eller "bash".

Bash har blitt forbedret i flere tiår siden den første utgivelsen i 1989, men det er fortsatt standardskallet på de fleste Linux-distribusjoner i dag. Det er også standardskallet på Apples MacOS, og er tilgjengelig for installasjon på Microsofts Windows 10.

Nyere skjell: aske, dash, zsh og fisk

Mens Linux-fellesskapet har bosatt seg på Bash i årene siden, fortsatte utviklere ikke å skape nye skall når Bash ble først utgitt for 28 år siden.

Kenneth Almquist opprettet en Bourne shell klone kjent som Almquish skall, A Shell, "aske", eller noen ganger bare "sh". det var også POSIX-kompatibelt og ble standardskallet i BSD, en annen gren av Unix. Askeskallet er mer lett enn bash, noe som gjør det populært i innebygde Linux-systemer. Hvis du har en rotfestet Android-telefon med BusyBox installert - eller en annen enhet med BusyBox-pakken med programvare, bruker den kode fra aske.

Debian utviklet et skallmiljø basert på aske og kalte det "dash". Den er designet for å være POSIX-kompatibel og lett, så den er raskere enn Bash, men vil ikke ha alle funksjonene. Ubuntu bruker dash shell som standard shell for ikke-interaktive oppgaver, påskynde shell skript og andre oppgaver som kjører i bakgrunnen.Ubuntu bruker fortsatt bash for interaktive skjell, men brukerne har fortsatt det fullverdige interaktive miljøet.
Debian utviklet et skallmiljø basert på aske og kalte det "dash". Den er designet for å være POSIX-kompatibel og lett, så den er raskere enn Bash, men vil ikke ha alle funksjonene. Ubuntu bruker dash shell som standard shell for ikke-interaktive oppgaver, påskynde shell skript og andre oppgaver som kjører i bakgrunnen.Ubuntu bruker fortsatt bash for interaktive skjell, men brukerne har fortsatt det fullverdige interaktive miljøet.
En av de mest populære nyere skallene er Z-skallet, eller "zsh". Opprettet av Paul Falstad i 1990, er zsh et Bourne-stil skall som inneholder funksjonene du finner i bash, pluss enda mer. For eksempel har zsh stavekontroll, muligheten til å se på pålogginger / logouts, noen innebygde programmeringsfunksjoner som bytecode, støtte for vitenskapelig notasjon i syntaks, gir mulighet for flytende poeng aritmetikk og flere funksjoner.
En av de mest populære nyere skallene er Z-skallet, eller "zsh". Opprettet av Paul Falstad i 1990, er zsh et Bourne-stil skall som inneholder funksjonene du finner i bash, pluss enda mer. For eksempel har zsh stavekontroll, muligheten til å se på pålogginger / logouts, noen innebygde programmeringsfunksjoner som bytecode, støtte for vitenskapelig notasjon i syntaks, gir mulighet for flytende poeng aritmetikk og flere funksjoner.
Et annet nyere skall er Friendly Interactive Shell, eller "fish", utgitt i 2005. Den har en unik kommandolinjens syntaks som er designet for å være litt enklere å lære, men er ikke avledet fra enten Bourne-skallet eller C-skallet. Det er en interessant ide, men det du lærer gjennom å bruke fisk, vil ikke nødvendigvis hjelpe deg med å bruke bash og andre Bourne-avledede skall.
Et annet nyere skall er Friendly Interactive Shell, eller "fish", utgitt i 2005. Den har en unik kommandolinjens syntaks som er designet for å være litt enklere å lære, men er ikke avledet fra enten Bourne-skallet eller C-skallet. Det er en interessant ide, men det du lærer gjennom å bruke fisk, vil ikke nødvendigvis hjelpe deg med å bruke bash og andre Bourne-avledede skall.

Hvilken bør du velge? (og hvorfor Zsh er populær)

Du trenger ikke å velge et skall. Operativsystemet velger standard skal for deg, og det valget er nesten alltid bash. Sett deg foran en Linux-distribusjon - eller til og med en Mac - og du vil nesten alltid ha et bash shell miljø. Bash har ganske mange avanserte funksjoner, men du vil sannsynligvis ikke bruke dem med mindre du programmerer shell-skript.

På innebygde Linux-systemer eller BSD-systemer, vil du ende opp med askeskallet. Men aske er et Bourne-basert skall og er stort sett kompatibelt med bash. Eventuell kunnskap du har fra å bruke bash vil overføre til å bruke et ask eller skjermhull, selv om noen avanserte skriptfunksjoner ikke er tilgjengelige i dette lette skallet.

Nesten hvert skall du møter er Bourne-basert og fungerer på samme måte, inkludert zsh.

Derfor er zsh populært. Dette nyere skallet er kompatibelt med bash, men inneholder flere funksjoner. Zsh-skallet tilbyr innebygd stavekontroll, forbedret kommandolinjeutførelse, lastbare moduler som fungerer som plugin-moduler for skallet ditt, globale aliaser som lar deg alias filnavn eller noe annet på kommandolinjen i stedet for bare kommandoer, og mer tema støtte. Det er som bash, men med mange tillegg, ekstra funksjoner og konfigurerbare alternativer du kan sette pris på hvis du bruker mye tid på kommandolinjen.

Hvis du er kjent med bash, kan du bytte til zsh uten å lære en annen syntaks - du får bare ekstra funksjoner. hvis du er kjent med zsh, kan du bytte til bash uten å lære en annen syntaks - du vil bare ikke ha tilgang til disse funksjonene.

"Oh My ZSH" er et verktøy som hjelper deg lettere å aktivere zsh plug-ins og bytte mellom premade temaer, raskt tilpasse ditt zsh-skjerm uten å bruke timer til å tilpasse ting.
"Oh My ZSH" er et verktøy som hjelper deg lettere å aktivere zsh plug-ins og bytte mellom premade temaer, raskt tilpasse ditt zsh-skjerm uten å bruke timer til å tilpasse ting.

Det er også andre skaller. For eksempel er tcsh-skallet fortsatt rundt og er fortsatt et alternativ. FreeBSD bruker tsch som standard rotskjell og aske som standard interaktivt skall. Hvis du bruker C-programmeringen regelmessig, kan tsch være bedre egnet for deg. Det er imidlertid ikke nært så vanlig som bash eller zsh.

Hvordan bytte mellom skall

Det er enkelt å bytte til et nytt skall for å prøve det. Bare installer skallet fra Linux-distribusjonens pakkebehandling og skriv inn kommandoen for å starte skallet.

For eksempel, la oss si at du vil prøve zsh på Ubuntu. Du vil kjøre følgende kommandoer for å installere og deretter starte den:

sudo apt install zsh zsh

Du vil da sitte på et zsh-skall. Skriv"

exit

På skallet for å forlate det og gå tilbake til ditt nåværende skall.

Dette er bare midlertidig. Når du åpner et nytt terminalvindu eller logger på systemet på kommandolinjen, ser du standardskallet. For å endre skallet du ser når du logger på, kjent som ditt påloggingsskall, kan du vanligvis bruke
Dette er bare midlertidig. Når du åpner et nytt terminalvindu eller logger på systemet på kommandolinjen, ser du standardskallet. For å endre skallet du ser når du logger på, kjent som ditt påloggingsskall, kan du vanligvis bruke

chsh

eller "Change Shell", kommando.

For å bruke denne kommandoen må du først finne hele banen til skallet ditt med hvilken kommando. For eksempel, la oss si at vi ønsket å bytte til zsh-skallet. Vi ville kjøre følgende kommando:

which zsh

På Ubuntu forteller dette oss at zsh binær lagres på / usr / bin / zsh.

Kjør følgende kommando, skriv inn passordet ditt, og du blir bedt om å velge et nytt påloggingsskall:

chsh

I følge kommandoen ovenfor skulle vi gå inn

/usr/bin/zsh

. Zsh-skallet ville da være vår standard til vi kjørte

chsh

kommandoen og endret den tilbake.

Anbefalt: