Loading AI tools
informatica Van Wikipedia, de vrije encyclopedie
Een shell is een interactief computerprogramma waarmee een gebruiker met een command-line-interface opdrachten kan geven aan het besturingssysteem van een computer.
Van oudsher wordt hierbij gebruikgemaakt van een terminal die de invoer van de gebruiker aan het besturingssysteem doorgeeft en de uitvoer dan weer aan de gebruiker doorgeeft. Op grafische desktopsystemen is doorgaans een terminalemulator aanwezig en het is dan van belang om hierbij onderscheid te maken tussen de terminalemulator en de shell zelf. Het doorgeven van de invoer en uitvoer van de grafische interface naar de shell gebeurt door middel van de terminalemulator. Bekende terminalemulators zijn XTerm en ATerm.
In Windows is er geen scheiding tussen de terminalemulator en de shell. Onder de meeste Microsoft Windowsversies kunnen zowel de terminalemulator als de bijbehorende shell worden benaderd door het programma cmd of command te starten. Deze shell is ongeveer gelijk aan de shell in DOS die COMMAND.COM heet. Onder Unix (en daarmee Linux) is die scheiding er wel en kunnen verschillende shells worden gebruikt op dezelfde terminal(emulator). Bekende shells onder UNIX zijn sh, csh, ksh en bash.
Om te begrijpen wat een shell precies doet, volgt hieronder een beschrijving van wat de Bash-shell ongeveer doet wanneer deze wordt opgestart:
Het laten zien van de prompt (en de subactiviteiten die hieronder vallen) wordt continu herhaald totdat de gebruiker de shell afsluit (vaak met het commando 'exit' of door het tikken van een 'end-of-file'-karakter (meestal control-D)).
Shellscripts zijn niets meer dan achter elkaar uitgevoerde commando's. In Microsoft Windows worden deze shellscripts dan ook 'batchbestanden' genoemd. Een shellscript wordt regel voor regel uitgevoerd door de interpreter (in dit geval de shell). Een voorbeeld van een shellscript is de volgende alias:
alias worldwritable='for i in *; do echo "Checking ./$i" >&2 && find $i -perm -2 -type p -ls 2>/dev/null; done'
Met dit shellscript kan gezocht worden naar bestanden die beschrijfbaar zijn voor iedereen. Dit wordt in een grafisch aantrekkelijke interface gegoten. Dit shellscript kan eenvoudiger gelezen worden indien er wat newlines zouden zijn toegevoegd. Dan wordt ook duidelijk dat deze regel slechts een opeenvolging van commando's is:
for i in * do echo "Checking ./$i" >&2 find $i -perm -2 -type p -ls 2>/dev/null done
Bovenstaande is een stuk duidelijker te lezen en onthult dat dit shellscript slechts een aantal commando's achter elkaar uitvoert:
for i in * do
('for' is een zogenaamde builtin; een commando dat niet door een extern programma, maar door de shell zelf wordt uitgevoerd. Dit bevordert de snelheid van de uitvoering.) Voer het volgende stuk code uit voor ieder bestand in de huidige directory (en sla voor iedere iteratie de bestandsnaam op in de variabele genaamd 'i').
echo "Checking ./$i" >&2
Vertel de gebruiker wat we momenteel doen (de inhoud van de variabele genaamd '$i').
find $i -perm -2 -type p -ls 2>/dev/null
Roep het eigenlijke programma 'find' aan met als argument het huidige bestand '$i' en nog wat parameters.
done
Beëindig de 'for'-loop.
De Bourne-shell of sh werd ingevoerd in 1977 op UNIX versie 7. Het is ontwikkeld door Stephen Bourne die bij AT&T Bell Laboratories werkte. Deze shell heeft veel invloed gehad op alle shells die na die tijd zijn ontstaan inclusief de shell in DOS en Windows.
De belangrijkste verbeteringen ten opzichte van voorgaande shells waren:
De C-shell (csh) werd ingevoerd met 4.1BSD. Het grootste voordeel van deze shell is dat het voorzieningen had voor het beheer van jobs. Zo was het mogelijk om een proces dat op de achtergrond loopt naar voren te halen zodat het bijvoorbeeld afgebroken of gepauzeerd kon worden. Een groot verschil met de Bourne-shell is dat de C-shell een syntaxis gebruikt die lijkt op de programmeertaal C.
De Korn-shell (ksh) is in 1983 geschreven door David Korn. Deze shell was een mix van de Bourne-shell en de C-shell. Hij was compatibel met de syntaxis van de Bourne-shell en had de jobcontrolefunctionaliteit van de C-shell. Verder had deze shell een eenvoudige commandoregeleditor.
De Bourne Again-shell (bash) is ontwikkeld in het GNU-project en combineerde de functionaliteit van de Bourne-shell, C-shell en de Korn-shell.
De DOS-shell is een zeer versimpelde uitvoering van de Bourne-shell. Hij is geschikt voor het opstarten van commando's en het maken van eenvoudige scripts. De DOS-shell (in combinatie met de standaardcommando's in DOS) mist vele eigenschappen waardoor hij niet gebruikt kan worden voor iets ingewikkelder scripts. Zo mist hij bijvoorbeeld vele commando's en controlestructuren. De Windows-shell is in grote lijnen niet anders dan de DOS-shell.
Windows Powershell is de vervanging van CMD.EXE die geleverd wordt met de .NET omgeving voor Windows. In tegenstelling to CMD.EXE is deze shell zeer krachtig, onder andere doordat hij toegang heeft tot een groot deel van de standaard .NET functionaliteit.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.