Du kanske har hört talas om Bash - standardskalet på de flesta Linux-distros. Det finns ett annat skal som kommer förinstallerat på Linux: Bourne-skalet.

Bourne-skalet är ett av de äldsta skalen som fortfarande används på moderna Linux-system, även om det inte används lika mycket som Bash. Här är vad du behöver veta om Bourne-skalet på Linux.

Vad är Bourne Shell?

Bourne-skalet, ofta förkortat till "sh", är uppkallat efter den brittiske datavetaren Stephen R. Bourne, som utvecklade den när han arbetade på Bell Labs 1978. Skalet ersatte det tidigare Thompson Shell, skrivet av en av Unix ursprungliga skapare, Ken Thompson.

Bourne-skalet debuterade med Version 7 Unix 1979. Den hade funktioner som flödeskontroll, variabler och förbättrad stränghantering. Dessa funktioner gjorde det lättare att använda skalet som ett programmeringsspråk snarare än bara ett sätt att kalla fram andra program.

Medan Bourne-skalet förblev populärt för att skriva bärbara skript över Unix-system, var det det ersatt för interaktiv användning av C-skalet, KornShell, Bourne Again-skalet, även känt som Bash, och Z skal. Dessa skal erbjöd funktioner som

instagram viewer
kommandohistorik och kommandoradsredigering som gjorde livet lättare för användare och administratörer.

KornShell, Bash och Z-skal (som täcks senare) har syntaxer som påverkas av Bourne-skalet.

Kraftfullare plattformsöverskridande skriptspråk med ännu mer avancerade funktioner som Perl och Python ersatte också till stor del skalskript.

Fortfarande är Bourne-skalet allmänt känt och många skript som levereras med Linux-program använder dess syntax för olika uppgifter.

Bourne-skalets beteende kodifierades till POSIX-standarden, så implementerar många moderna Unix-liknande system det på något sätt genom att använda ett kompatibelt skal.

Moderna Bourne Shell-alternativ

Det finns flera moderna alternativ med öppen källkod till det ursprungliga Bourne-skalet på Linux-system. Här är några av de mest kända:

1. Bourne Again Shell (Bash)

Namnet Bourne Again skal (Bash) är en pjäs på Bourne-skalet. Detta skal utvecklades ursprungligen som en komponent i GNU-systemet, före Linux i flera år.

Det är i stort sett kompatibelt med manus som ursprungligen skrevs för Bourne-skalet. Den inkorporerade också funktioner som kommandoradsredigering som banat väg för av KornShell.

Bash är standardskalet på många Linux-distributioner och har därför blivit en de facto-standard på egen hand.

2. KornShell

KornShell, även känd som ksh, utvecklades ursprungligen av David Korn, också på Bell Labs, på 1980-talet. KornShell byggdes ovanpå Bourne-skalet och introducerade några ytterligare funktioner som jobbkontroll, arrayer och kommandoradsredigering. Det senare var en revolutionerande funktion när den först dök upp eftersom det var mycket enklare än att använda C-skalets historikmekanism.

Om du behövde redigera om ett tidigare utfärdat kommando kan du använda kommandon som liknar Vi eller Emacs för att göra det.

KornShell var en standard på vissa kommersiella Linux-system som Oracle Solaris. Eftersom den ursprungliga KornShell ursprungligen släpptes av AT&T under en proprietär licens, släpptes en öppen källkodsversion vid namn pdksh så småningom.

3. Almquist/Debian Almquist Shell

Almquist-skalet skrevs ursprungligen av Kenneth Almquist och var tänkt som en lätt ersättning för Bourne-skalet. Många BSD-system inkluderar det som implementering av sh.

En version portades till Debian på 1990-talet och är känd som Debian Almquist-skalet. Som namnet antyder är det implementeringen av sh på Debian- och Ubuntu-system.

4. Z Shell

Z-skal, eller zsh, är ett av de nyaste skalen, som ursprungligen utvecklades 1990 av Paul Falsted. Z-skal har blivit välkänt för sina avancerade funktioner. Ett bra exempel är rekursiv globbing, eller möjligheten att matcha jokertecken i underkataloger.

Z-skal är standardinloggningsskalet för macOS och Kali Linux.

Bourne Shell-kompatibilitet

Även om dessa skal till stor del är kompatibla med skript som ursprungligen skrevs för Bourne-skalet, finns det sätt att ändra deras beteende för att vara mer som originalskalet.

Det huvudsakliga sättet att göra detta är genom en symbolisk länk. De flesta system kommer att sylänka /bin/sh till antingen Bash eller ett annat skal. När det anropas på detta sätt kommer skalet att gå in i ett kompatibilitetsläge med Bourne-skalet.

Du kan se vilket skal /bin/sh är kopplad till med kommandot ls:

ls -l /bin/sh

Nu vet du om Bourne Shell

Bourne-skalet är en av de äldsta standarderna för skript på Unix-liknande system. Även om det har ersatts av andra skal, är det fortfarande viktigt för att köra skript skrivna av andra.

Bash är en av de bästa Bourne-derivaten för kodning, särskilt för dess inställning till variabler. Den har några unika variabler som kan få dig att vilja överväga den för ditt nästa projekt.