0%

De opdrachtregel · oefening

Navigeer door een projectstructuur

Wanneer een opdracht een bestand niet kan vinden, staat het bestand meestal nog precies waar het altijd stond. Jij staat ergens anders.

Er zijn drie vragen die je in deze volgorde wilt stellen: waar ben ik, wat staat hier en waar moet ik heen? Elke shell beantwoordt ze alle drie; alleen de schrijfwijze verandert.

Als je vanuit een andere cursus komt

De terminal naast deze les bevat een tijdelijk oefenproject op een afzonderlijke computer. De beginmap is /workspace; dit zijn niet de bestanden op je eigen computer. Gebruik die gehoste terminal voor de beoordeelde oefening hieronder.

Voordat je begint, moet je de huidige map kunnen opvragen en van daaruit een relatief pad kunnen bepalen. Is een van beide nieuw voor je, volg dan deze twee lessen en kom hier terug. De eerste legt uit hoe je de terminal opent en je locatie controleert; de tweede legt /, . en .. uit met een uitgewerkte mappenstructuur.

Wat staat hier?

Je weet al hoe je vraagt waar je bent. De inhoud van je omgeving opvragen is de volgende vraag:

ls

Een nieuwe werkruimte voor dit hoofdstuk bevat dit:

/workspace
├── README.md
├── checkpoint/
├── data/
│   ├── README.txt
│   └── measurements.txt
├── destination/
├── environment-check.py
├── notes with spaces.txt
└── report.py

Waar moet ik heen?

Van map wisselen kost één opdracht. Maak er een gewoonte van om het resultaat te controleren in plaats van aan te nemen dat je er bent:

cd data
pwd

Die bestemming is een relatief pad en werd dus bepaald vanuit de map waarin je al stond. Alles wat je in het vorige hoofdstuk op papier uitwerkte, geldt hier ongewijzigd: twee punten verwijzen naar de bovenliggende map, een slash aan het begin start bij de hoofdmap van het bestandssysteem en een tilde staat voor je persoonlijke map. De shell is eenvoudigweg de eerste plek waar die regels iets zichtbaars doen.

Om weer naar buiten te gaan, gebruik je de bovenliggende map:

cd ..
pwd

Een absoluut pad betekent overal hetzelfde. Hier is dat /workspace; op je eigen computer kan het C:\Users\Sam\project of /home/sam/project zijn. Kopieer nooit een voorbeeldgebruikersnaam. Vraag waar je bent en gebruik wat de shell je vertelt.

Laat één bewijsstuk achter

Tot nu toe heb je alleen gekeken. De beoordeling kan niet zien waar je shell eerder is geweest. Daarom laat je op de bestemming één map achter als bewijs dat je relatieve pad juist uitkwam. De opdracht om die te maken krijg je hier; de route bepalen is wat je leert.

mkdir example-directory

mkdir is een afkorting van “make directory”: maak een map. Als het lukt, toont de opdracht meestal niets. Vraag daarom ter controle apart de inhoud van de bovenliggende map op.

De map maken verandert de structuur. Gebruik daarom Reset (opnieuw beginnen) vóór de oefening als je het voorbeeld hebt uitgevoerd. Vraag vervolgens na je echte opdracht de inhoud van de bovenliggende map op en controleer of de markeermap staat waar je die bedoelde.

Oefening: laat een markeermap achter via een relatief pad

In het vorige hoofdstuk bepaalde je relatieve paden op papier: schrijf op waar je bent, neem elk onderdeel achtereenvolgens, ga omhoog voor .. en controleer waar je uitkomt. Hier houdt het op een papieren oefening te zijn. De shell staat op een concrete plek, en een pad dat je vanuit het verkeerde vertrekpunt schrijft komt op een echte, verkeerde plek uit.

Deze oefening wordt beoordeeld op basis van de werkruimte. Gebruik eerst Reset als een eerdere poging destination/navigation-complete heeft achtergelaten.

  1. Controleer of je in /workspace staat.

  2. Vraag de mapinhoud op en controleer of zowel data als destination aanwezig is.

  3. Ga naar data en controleer of je daar bent aangekomen.

  4. Maak vanuit data, zonder een absoluut pad te gebruiken, een map met de naam navigation-complete in de naastgelegen map destination. Je hebt .. nodig om eerst uit data te gaan.

  5. Ga terug naar /workspace en vraag de inhoud van destination op om te controleren of navigation-complete er staat.

Stap 4 bevat de hele les in één opdracht. Je moet weten waar je staat voordat je een relatief pad kunt schrijven dat ergens anders uitkomt. Het onderdeel hierboven liet de opdracht zien met een wegwerpvoorbeeld. Het pad van data naar de naastgelegen map bepaal je zelf.

Laat elk meegeleverd bestand staan en blijf binnen /workspace. De beoordeling vereist de markeermap en controleert belangrijke meegeleverde bestanden. Gebruik eerst Reset, zodat andere restanten je eigen mapoverzicht niet onduidelijk maken. Druk daarna op Check my work (controleer mijn werk).

Je staat in /workspace/data en gaat naar ../checkpoint. Waar kom je uit?

Je maakt een map en de opdracht toont niets. Wat doe je vervolgens?

Je kunt vinden waar je bent, zien wat er om je heen staat en doelgericht bewegen. Voordat je iets verandert, moet je echter weten naar wat voor soort item je verwijst.