Wat is de opdrachtregel?
Terminal, shell en prompt
Het donkere venster met de knipperende cursor is niet één ding. Het zijn minstens vier dingen boven op elkaar. Bijna elke verwarrende foutmelding die je krijgt, wordt onduidelijk doordat je niet weet welk onderdeel tegen je praat.
Hier is een volledige interactie:
PS C:\Users\Sam\Documents> python report.py
Report ready
PS C:\Users\Sam\Documents>
Dat zijn drie regels op het scherm, waarvan maar één is getypt. De eerste en laatste PS C:\Users\Sam\Documents> zijn prompts: de shell toont ze om te zeggen dat die klaarstaat. python report.py is wat er is getypt. Report ready kwam uit het programma.
Volg de tekst door de lagen
Een terminalapplicatie tekent het venster, ontvangt je toetsaanslagen en toont tekst. Bijvoorbeeld Windows Terminal, Terminal op macOS of GNOME Terminal op Linux.
Daarbinnen draait een shell. Die leest wat je hebt getypt, bepaalt de structuur en beslist wat er moet worden uitgevoerd. PowerShell is de Windows-shell van deze cursus; Bash en zsh zijn de gebruikelijke shells op Linux en macOS.
Een prompt is tekst waarmee de shell aangeeft dat die klaarstaat. Vaak de werkmap, soms een gebruikersnaam, meestal eindigend op
>of$.Een opdracht is wat je invoert. Die vraagt de shell om iets ingebouwds te doen of om een ander programma te starten.
Een programma doet het werk en produceert uitvoer of een fout, die de terminal toont.

De bovenste twee lagen zijn uitwisselbaar. Dat is de snelste manier om te zien dat ze afzonderlijk zijn. Windows Terminal kan in drie tabbladen tegelijk PowerShell, Command Prompt en een Linux-shell tonen. Een macOS-terminal kan zsh of een andere geïnstalleerde shell bevatten. Verander het lettertype of de kleuren van de terminal en geen enkele opdracht gaat zich anders gedragen: je veranderde het venster, niet de taal. In het schema betekenen KEYBOARD, COMMAND LINE, COMMAND, ARGUMENT, OUTPUT en PROGRAM achtereenvolgens toetsenbord, opdrachtregel, opdracht, argument, uitvoer en programma. De shell ontleedt de opdracht (parses command); de letterlijke opdracht en uitvoer blijven ongewijzigd.
Sommige producten bundelen de lagen zo strak dat ze één ding lijken. Het onderscheid blijft gelden: de applicatie beheert het venster, de shell beheert de prompt en bepaalt wat je tekst betekent.
Je verandert de lettergrootte in Windows Terminal, maar PowerShell-opdrachten werken precies als voorheen. Waarom?
Weet wat je niet moet typen
Documentatie toont prompts om context te geven:
$ python report.py
De $ betekent “typ de rest hiervan in een Unix-achtige shell”. Die hoort niet bij de opdracht. Als je die toch typt, krijg je een fout over een opdracht met de naam $. Hetzelfde geldt voor PS C:\Users\Sam> in een PowerShell-voorbeeld. Typ alleen wat na de prompt komt.
Als een opdracht klaar is, verschijnt de volgende prompt. Komt er geen prompt terug, dan draait het programma nog, wacht het op invoer of zit het vast. Ctrl+C vraagt veel programma’s te stoppen. Dat kun je beter nu weten dan pas wanneer je het nodig hebt. Het maakt eerdere handelingen niet ongedaan.
Lees de drie soorten tekst
In de weergave hierboven zegt prompttekst dat de shell klaarstaat, is python report.py de ingevoerde opdracht en is Report ready programmauitvoer. Die rollen uit elkaar houden is voorlopig genoeg. Verschijnt er later ergens een fout, dan weet je welke laag op dat moment de controle had.
Een opdracht wordt uitgevoerd en de volgende regel zegt Report ready. Welke laag heeft die woorden geproduceerd?
Je kunt alles rond een opdracht herkennen. Hierna de opdracht zelf: welk woord is de naam, welke delen zijn argumenten en waar gaat een typefout pijn doen?