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