0%

Hoofdstuk 7

Opdrachten, configuratie en fouten

Herken je shell en vind hulp

Twee terminalvensters kunnen er hetzelfde uitzien terwijl in elk een andere shell je opdrachten leest. Dat doet ertoe zodra je shellspecifiek advies volgt: een opdracht, optie of hulppagina die in de ene werkt, bestaat in de andere misschien helemaal niet.

Zoek dus uit wat er werkelijk draait voordat je aanneemt dat iemands typadvies bij jou past. De terminal naast deze les volgt je accountvoorkeur: Windows opent PowerShell Core, macOS en Linux openen Bash. Je kunt je eigen terminal op dezelfde manier onderzoeken, ook als die standaard iets anders start.

Lees de sessie, niet de instelling

Vraag de shell om de naam te tonen waarmee die is gestart. In de gehoste les is dat Bash:

echo $0

In een interactieve terminal bevat $0 de naam van de huidige shell. Je ziet bash, zsh of iets vergelijkbaars. Een resultaat zoals -bash betekent nog steeds Bash. Het streepje vooraan geeft alleen aan dat het een login-shell is.

Je zult ook het advies zien om op macOS of Linux $SHELL te controleren. Wees daar voorzichtig mee. $SHELL noemt de standaard login-shell van je account, en dat is een andere vraag. Start je Bash vanuit zsh, dan blijft $SHELL zsh melden terwijl Bash alles leest wat je typt.

Vraag het de huidige shell als het onderscheid ertoe doet. Het promptsymbool is een nog zwakkere aanwijzing: $, % en > zijn allemaal instelbaar, en mensen stellen ze ook in.

Vraag het de shell die je hebt

Elke shell heeft een lokale route naar hulp: man en opdrachtspecifieke hulp op macOS en Linux, en Get-Help in PowerShell. Zodra je weet in welke shell je zit, gebruik je de bijbehorende route:

Huidige shellEen nuttige route naar hulp
Bashhelp cd voor een ingebouwde Bash-opdracht
zshman zshbuiltins, zoek daarna naar cd
PowerShellGet-Help Set-Location

Deze beantwoorden een veel gerichtere vraag dan een zoekopdracht op het web en kunnen je geen syntaxis van een andere shell geven. Veel frustratie bij beginners op de opdrachtregel ontstaat doordat ze een correct antwoord op de verkeerde shell toepassen.

Verander je standaardshell niet voor deze les. Dat beïnvloedt elke toekomstige sessie en is hier nergens voor nodig.

Oefening: vaststellen en bevestigen

Gebruik de terminal naast deze les, laat die zoals die is en start er geen andere shell in.

  1. Stel met de methode voor jouw systeem vast welke shell werkelijk draait.

  2. Open de hulppagina voor de opdracht waarmee je in die shell van map wisselt.

  3. Schrijf twee dingen op: de naam van de shell en de eerste regel of titel van de hulppagina die je kreeg.

Die twee feiten zijn de hele oefening. Als iemand je een opdracht geeft die niet werkt, is precies kunnen zeggen in welke shell je zit vaak genoeg om het meteen op te lossen.

De waarde van $SHELL bij een cursist is /bin/zsh, maar echo $0 toont bash. Welke shell leest op dit moment de opdrachten in deze terminal?

Je plakt een opdracht uit een handleiding en de shell meldt een syntaxisfout bij een onverwacht token, terwijl dezelfde opdracht prima werkt bij degene die je die stuurde. Wat kun je het beste eerst controleren?

Je hebt het eerste feit voor probleemoplossing: welke shell je opdrachten interpreteert. De volgende vraag is wat die doet met het eerste woord dat je typt.