Vad är ett skal?
Ett skal är ett program som tillhandahåller ett gränssnitt mellan en användare och en operativsystemkärna. Ett operativsystem startar ett skal för varje användare när användaren loggar in eller öppnar en terminal eller ett konsolfönster.
En kärna är ett program som:
- Kontrollerar all datorverksamhet.
- Koordinerar alla exekverande hjälpprogram
- Säkerställer att exekverande hjälpprogram inte stör varandra eller förbrukar alla systemresurser.
- Skemalägger och hanterar alla systemprocesser.
Genom att ha ett gränssnitt mot en kärna tillhandahåller ett skal ett sätt för en användare att exekvera verktyg och program.
Användarmiljö
Skalet tillhandahåller också en användarmiljö som du kan anpassa med hjälp av initialiseringsfiler. Dessa filer innehåller inställningar för användarmiljöns egenskaper, t.ex.:
- Sökvägar för att hitta kommandon.
- Standardbehörigheter för nya filer.
- Värden för variabler som andra program använder.
- Värden som du kan anpassa.
Vad finns det för olika skal?
De följande avsnitten beskriver OS-shells som främst finns tillgängliga i operativsystemet UNIX/Linux. Skalfunktioner och deras standardprompts beskrivs också.
Bourne Shell
Bourne shell (sh), som skrevs av Steve Bourne vid AT&T Bell Labs, är det ursprungliga UNIX-skalet. Det är det föredragna skalet för skalprogrammering på grund av sin kompakthet och snabbhet. En nackdel med Bourne shell är att det saknar funktioner för interaktiv användning, t.ex. möjligheten att återkalla tidigare kommandon (history). Bourne shell saknar också inbyggd aritmetik och hantering av logiska uttryck.
Bourne shell är standardskalet för Solaris OS. Det är standardskalet för skript för Solaris systemadministration. För Bourne shell gäller följande:
- Kommandots fullständiga sökvägsnamn är /bin/sh och /sbin/sh.
- Förvald prompt för icke-root-användare är $.
- Förvald prompt för root-användare är #.
The C Shell
The C shell (csh):
- är en UNIX-förbättring skriven av Bill Joy vid University of California i Berkeley.
- Inkorporerade funktioner för interaktiv användning, såsom alias och kommandohistorik.
- Inkluderar bekväma programmeringsfunktioner, såsom inbyggd aritmetik och en C-liknande uttryckssyntax.
För C-skalet gäller följande:
- Kommandots fullständiga sökvägsnamn är /bin/csh.
- För standardprompten för icke-rootanvändare är värdnamn %.
- Root-användarens standardprompt är värdnamn #.
Kornskalet
Kornskalet (ksh):
- Skrevs av David Korn vid AT&T Bell Labs
- Är en överordnad version av Bourneskalet.
- Stöder allt som finns i Bourneskalet.
- Har interaktiva funktioner som är jämförbara med dem i C-shell.
- Inkluderar bekväma programmeringsfunktioner som inbyggd aritmetik och C-liknande matriser, funktioner och stränghanteringsmöjligheter.
- Är snabbare än C-shell.
- Kör skript som är skrivna för Bourne-skalet.
För Korn-skalet gäller följande:
- Kommandots fullständiga sökvägsnamn är /bin/ksh.
- För standardpromemorian för icke-root-användare är $.
- För standardpromemorian för rot-användare är #.
GNU Bourne-Again Shell
GNU Bourne-Again shell (bash):
- är kompatibel med Bourne shell.
- Incorporerar användbara funktioner från Korn- och C-shells.
- Har piltangenter som automatiskt mappas för återkallande och redigering av kommandon.
För GNU Bourne-Again shell gäller följande:
- Kommandots fullständiga sökvägsnamn är /bin/bash.
- Standardprompten för en icke-rootanvändare är bash-x.xx$. (Där x.xx anger skalets versionsnummer. Till exempel bash-3.50$)
- Standardprompten för en rotanvändare är bash-x.xx#. (Där x.xx anger skalets versionsnummer. Till exempel bash-3.50$#)
Här är en kort jämförelse av de fyra skalen och deras egenskaper.
Shell | Path | Default Prompt (non-rotanvändare) | Standardprompt (rotanvändare) | |
---|---|---|---|---|
Bourne Shell (sh) | /bin/sh och /sbin/sh | $ | # | |
C Shell (csh) | /bin/csh | % | # | |
The Korn Shell (ksh) | /bin/ksh | $ | # | |
The GNU Bourne-Again Shell (Bash) | /bin/bash | bash-x.xx$ | bash-x.xx# |