Wat is de opdrachtregel?
Een opdracht lezen
Een opdracht op de opdrachtregel is geen zin die de computer ruimhartig interpreteert. Elk deel heeft een specifieke taak. Lees je die delen voordat je op Enter drukt, dan zie je waarop de opdracht werkt en waar een typefout werkelijk uitmaakt.
Begin met een opdracht die een programmabestand uitvoert:
python report.py
Het eerste woord, python, is de opdrachtnaam. Die vertelt de shell wat die moet aanroepen. report.py is een argument: een doel of waarde die je aan de opdracht meegeeft.
Argumenten zijn niet altijd bestanden. Afhankelijk van de opdracht kan een argument een map, nieuwe naam, zoekterm of getal zijn. Ook de positie heeft vaak betekenis. Elke opdracht bepaalt zelf wat waar hoort. cp a b kopieert a naar b, niet andersom, en niets in de syntaxis vertelt je dat.
Opties veranderen het gedrag
Een optie vraagt een opdracht zich anders te gedragen. Unix-achtige hulpmiddelen gebruiken korte opties zoals -l en lange zoals --all. PowerShell gebruikt benoemde parameters zoals -Path en -Destination.
Lees deze twee zonder ze uit te voeren:
Bash or zsh: cp "project notes.txt" archive/
PowerShell: Copy-Item -Path "project notes.txt" -Destination archive
In de eerste is cp de naam, project notes.txt de bron en archive/ het doel. De positie bepaalt alles, dus je moet de volgorde kennen.
In de tweede is Copy-Item de naam. -Path en -Destination zijn benoemde parameters, met hun waarden erachter. Langer, maar ook veel moeilijker om te draaien.
Beide drukken dezelfde bedoeling uit in verschillende talen. Meng er geen onderdelen uit. Een Bash-optie is geen PowerShell-parameter, en een PowerShell-opdrachtnaam betekent niets voor zsh.
Aanhalingstekens houden één argument bij elkaar
De meeste shells splitsen een opdrachtregel bij spaties. Daardoor komt project notes.txt aan als twee argumenten, project en notes.txt. De opdracht zoekt dan een bestand met de naam project. Aanhalingstekens houden het bij elkaar:
python "weekly report.py"
De aanhalingstekens geven de shell aan waar de grenzen van het argument liggen. Ze worden verwijderd voordat het programma iets ontvangt en horen nooit bij de bestandsnaam. De shells die je later tegenkomt hebben zowel enkele als dubbele aanhalingstekens. Die verschillen worden belangrijk zodra er variabelen bij komen. Gebruik voorlopig de stijl van jouw route en sluit altijd wat je opent.
Wat doet de tekst tussen aanhalingstekens in python "weekly report.py"?
De fout vertelt welk deel misging
De vorm van de fout wijst meestal direct naar één deel van de regel:
Command not found (opdracht niet gevonden) betekent: kijk naar het eerste woord. Verkeerd gespeld, niet geïnstalleerd of niet beschikbaar in deze shell.
Een programma start, maar kan daarna een bestand niet vinden betekent: kijk naar het argument en naar de plek waar je staat.
Unknown option or parameter (onbekende optie of parameter) betekent: controleer die optie in de hulp voor precies deze opdracht in precies deze shell.
Een vervolgprompt nadat je op Enter drukt betekent dat de shell wacht op een onafgemaakt deel van de opdracht. Controleer in deze voorbeelden of er een geopend aanhalingsteken is zonder afsluitend teken. Het uiterlijk verschilt per shell. Druk op
Ctrl+Cen typ de volledige regel opnieuw.
Die laatste overkomt iedereen een keer. De shell is niet vastgelopen; die wacht beleefd op de rest van de string die je begon.
Je typt pyhton report.py en de shell meldt dat pyhton geen herkende opdracht is. Welk deel moet je eerst bekijken?
Je drukt op Enter nadat je een openingsaanhalingsteken hebt getypt, maar geen afsluitend aanhalingsteken. In plaats van de opdracht uit te voeren toont je shell een vervolgprompt. Wat is er gebeurd?
Doe vier dingen voordat je ergens een opdracht uit overneemt: verwijder de prompt, herken de opdrachtnaam, bepaal het doel van elk argument en zoek onbekende opties op. Kun je niet zeggen welke bestanden of mappen de opdracht kan veranderen, voer die dan niet uit.
Hierna kies je de shell waarin je gaat oefenen en richt je een plek in waar fouten geen kwaad kunnen.