Hvad er en Shell?
En shell er et program, der udgør en grænseflade mellem en bruger og en operativsystem (OS)-kerne. Et operativsystem starter en shell for hver bruger, når brugeren logger ind eller åbner en terminal eller et konsolvindue.
En kerne er et program, der:
- Styrer alle computeroperationer.
- Koordinerer alle eksekverende hjælpeprogrammer
- Sørger for, at eksekverende hjælpeprogrammer ikke forstyrrer hinanden eller bruger alle systemets ressourcer.
- Skemalægger og styrer alle systemprocesser.
Gennem grænsefladen til en kerne giver en shell en bruger mulighed for at udføre hjælpeprogrammer og programmer.
Brugermiljø
Shell’en giver også et brugermiljø, som du kan tilpasse ved hjælp af initialiseringsfiler. Disse filer indeholder indstillinger for brugermiljøets egenskaber, f.eks.:
- Søgningsstier til at finde kommandoer.
- Standardtilladelser til nye filer.
- Værdier for variabler, som andre programmer bruger.
- Værdier, som du kan tilpasse.
Hvad er de forskellige skaller?
De følgende afsnit beskriver de OS-shells, der er mest tilgængelige på UNIX/Linux-operativsystemet. Shell-funktioner og deres standardprompts er også beskrevet.
Bourne Shell
Bourne shell (sh), skrevet af Steve Bourne på AT&T Bell Labs, er den oprindelige UNIX shell. Det er den foretrukne shell til shell-programmering på grund af dens kompakthed og hastighed. En ulempe ved Bourne-shellen er, at den mangler funktioner til interaktiv brug, som f.eks. muligheden for at huske tidligere kommandoer (historik). Bourne-shellen mangler også indbygget aritmetisk og logisk udtrykshåndtering.
Bourne-shellen er Solaris OS’s standardskal. Det er standardskallen for scripts til administration af Solaris-systemet. For Bourne-shell’en gælder følgende:
- Kommandoens fulde stinavn er /bin/sh og /sbin/sh.
- Formularprompten for ikke-root-brugere er $.
- Formularprompten for root-brugere er #.
The C Shell
The C shell (csh):
- Er en UNIX-forbedring skrevet af Bill Joy på University of California i Berkeley.
- Inkorporerede funktioner til interaktiv brug, såsom aliaser og kommandohistorik.
- Inkluderer praktiske programmeringsfunktioner, såsom indbygget aritmetik og en C-lignende udtrykssyntaks.
For C-shellens vedkommende er:
- Kommandoens fulde stinavn er /bin/csh.
- Non-root-brugerens standardprompt er hostname %.
- Root-brugerens standardprompt er hostname #.
Korn-shellen
Korn-shellen (ksh):
- Er skrevet af David Korn på AT&T Bell Labs
- Er en overbygning på Bourne-shellen.
- Støtter alt i Bourne-shellen.
- Har interaktive funktioner, der kan sammenlignes med dem i C-shellen.
- Inkluderer praktiske programmeringsfunktioner som indbygget aritmetik og C-lignende arrays, funktioner og streng-manipulationsfaciliteter.
- Er hurtigere end C-shellen.
- Kører scripts, der er skrevet til Bourne-shellen.
For Korn-shellen er:
- Kommandoens fulde stinavn /bin/ksh.
- Den ikke-root-brugeres standardprompt er $.
- Den root-brugeres standardprompt er #.
GNU Bourne-Again Shell
GNU Bourne-Again shell (bash):
- Er kompatibel med Bourne-shellen.
- Inkorporerer nyttige funktioner fra Korn- og C-shellene.
- Har piletaster, der automatisk tilknyttes til genkaldelse og redigering af kommandoer.
For GNU Bourne-Again-shellens vedkommende er:
- Kommandoens fulde stinavn /bin/bash.
- Standardprompten for en ikke-root-bruger er bash-x.xx$. (Hvor x.xx angiver shell-versionens nummer. F.eks. bash-3.50$)
- Standardprompten for en root-bruger er bash-x.xx#. (Hvor x.xx angiver shell-versionens nummer. F.eks. bash-3.50$#)
Her er en kort sammenligning af alle 4 shells og deres egenskaber.
Shell | Path | Default Prompt (ikkeroot-bruger) | Defaultprompt (root-bruger) | |
---|---|---|---|---|
The Bourne Shell (sh) | /bin/sh og /sbin/sh | $ | # | |
The 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# |