Ga naar hoofdinhoud

Tutorial: Introductie Opdrachtregelinterface

Site: OpenCourseWare for GIS
Cursus: Introductie GDAL & Python
Boek: Tutorial: Introductie Opdrachtregelinterface
Afgedrukt door: Guest user
Datum: vrijdag, 26 april 2024, 16:55

1. Introductie

Voordat we kunnen gaan programmeren is het belangrijk om de opdrachtregelinterface (Command Line Interface, CLI) te leren gebruiken. Dit is essentieel om te weten hoe bestanden en mappen zijn georganiseerd op de computer. Daarom beginnen we vandaag met een tutorial over het gebruik van de opdrachtregelinterface.

Na deze tutorial kan je:
  1. De opdrachtprompt en de belangrijkste commando's gebruiken
  2. Navigeren naar bestanden en mappen door middel van absolute en relatieve paden
  3. Batch bestanden maken
Tijdens de oefeningen gebruiken we de opdrachtregelinterface

NB: deze cursus is gemaakt voor gebruikers van Microsoft Windows. Op Mac en Linux zijn er andere opdrachtregelinterfaces met commando's die we in deze cursus niet behandelen.

De beste manier om de opdrachtregelinterface te leren, is door deze online DOS-emulator te gebruiken, zodat er niets mis kan gaan op uw eigen systeem. De oefeningen zijn gebaseerd op deze online DOS-emulator. Het aantal gelijktijdige gebruikers van de emulator is beperkt, dus probeer het later opnieuw als je er geen toegang toe hebt.

Als je meer vertrouwd raakt met DOS, kan je de gewone opdrachtprompt of de OSGeo4W-shell gebruiken.

2. Bekijken van de inhoud van een directory

Start de online DOS emulator als je dat nog niet hebt gedaan.

C:\> is de opdrachtprompt. Het toont je huidige directory (in Windows wordt dit een map genoemd). In dit geval betekent dit dat u zich op station C bevindt (dit wordt de root genoemd). Je kunt de opdrachtprompt niet verwijderen of bewerken. Je moet de opdrachten typen na > van de opdrachtprompt.

1. Typ de volgende opdracht na de prompt:
doskey
Druk na het typen van een commando op de <ENTER> toets om de opdracht uit te voeren.

In de instructies gebruiken we <> om aan te geven dat je op een toets moet drukken.

In dit geval hebben we het loggen van de opdrachthistorie geactiveerd, die we zullen gebruiken en verder zullen uitleggen in hoofdstuk 6.

We gaan de inhoud van een map bekijken met behulp van het dir commando. Het dir commando staat voor "directory" (map).

2. Typ het volgende commando na de prompt:

dir <ENTER>

Nu zie je dit:


Dit wordt een directorylijst genoemd. Een directorylijst is een lijst met alle bestanden en subdirectories die een directory bevat.  Als je dir /? typt zie je alle opties van het dir commando. Bijvoorbeeld, als je dir /w zie je de directorylijst in kolommen.

3. Probeer deze commando's om te kijken wat er op de C-schijf staat.

3. Schijven en directories

In dit hoofdstuk leer je:
  • hoe je naar een andere schijf kan gaan
  • hoe je directories kan maken

3.1. Naar een andere schijf gaan

Als je verschillende harde schijven of partities hebt, moet je mogelijk naar een andere schijf overschakelen. Als je je op station C bevindt en je wilt naar station D gaan, je het volgende typen na de prompt:

d:

en druk op <ENTER>. Je gaat nu verder op schijf D. Als je een andere schijf hebt, is het raadzaam om schijf C niet te gebruiken, omdat deze je systeembestanden bevat. Bij deze oefeningen in de online DOS-emulator gebruiken we echter alleen de C-schijf, want de emulator heeft geen andere schijven.

3.2. Directories maken

1. Typ dir and druk op <ENTER> om de directorylijst te tonen.


Kijk naar de lijst op je scherm. Alle namen met  <DIR> ernaast zijn directories.  De rest zijn bestanden. De bestandsgrootte is ook weergegeven. Je kan een bestandenlijst in een andere directory zien door naar die subdirectory te gaan en dan weer het dir commando te gebruiken.

2. Typ de volgende commando's:
md John <ENTER>
md Peter <ENTER>
Met deze commando's heb je de subdirectories John and Peter gemaakt. Controleer of dat echt zo is door de directorielijst weer te geven:

3. Typ dir <ENTER>


Je ziet dat de twee subdirectories zijn gemaakt op de C-schijf.

4. Typ dir /AD <ENTER>
Dit commando laat alleen de directories zien en niet de bestanden.



3.3. Veranderen van directory

1. Ga naar de nieuwe directory die we "John" hebben genoemd door het volgende achter de prompt te typen:
cd John <Enter>

cd betekent "change directory". Je kan zien dat de prompt nu is veranderd naar C:\JOHN

Merk op dat DOS niet case sensitive is (het interpreteert hoofdletters en kleine letters op dezelfde manier), dus je had ook kunnen typen typen cd john.

2. Maak een lijst van de inhoud van de directory John (gebruik het commando dat je eerder hebt geleerd).

Relatieve paden

Nu zie je dat de directory niet leeg is. Er zijn twee mappen, namelijk . en ..

Eigenlijk is de map leeg, maar het toont ook de relatieve paden:

 . betekent "huidige directory"

.. betekent "moederdirectory (oftewel een directory omhoog)"

3. Typ
cd .. <ENTER>

4. Kijk naar de prompt.

We zijn terug in de directory (root van de C-Drive) waar we de oefening begonnen.


5. Typ nu :
cd . <ENTER>

6. Wat is het resultaat van dit commando? Leg uit waarom.

7. We kunnen terug gaan naar de directory John door een relative pad te gebruiken, typ
cd .\John <ENTER>

Merk op dat dit hetzelfde is als cd John <ENTER> .

8. Ga een directory omhoog om terug te gaan, typ
cd .. <ENTER>

Absolute paden

We kunnen ook absolute paden gebruiken om op onze schijf te navigeren. Absolute paden beginnen altijd vanaf de root van een schijf, in ons geval C: \.

9.  Typ
cd C:\John <ENTER>

10. Als we naar de root (in dit geval van de C-schijf) willen gaan, kunnen we dit doen met behulp van het absolute pad, typ
cd \ <ENTER>

Waarom zou je je druk maken over absolute en relatieve paden?

11. Ga terug naar de directory genaamd John. Je kunt kiezen of je het relatieve of absolute pad wilt gebruiken.

12. Typ
cd ..\Peter <ENTER>

13. Kijk naar de prompt en leg uit wat commande heeft gedaan.

Beide manieren om van directory te veranderen zijn gelijkwaardig. Waarom zou je dan moeite doen? Als je je bestanden die in directories en subdirectories zijn georganiseerd naar een andere schijf (bijv. schijf D) verplaatst, zullen je absolute paden niet meer werken, terwijl je relatieve paden nog steeds naar dezelfde locaties zullen verwijzen. Dit is met name belangrijk bij het schrijven van scripts, wat we later zullen doen.

3.4. Directories verwijderen

Nu gaan we de directory genaamd Peter verwijderen.

1. Ga eerst een directory omhoog, zodat je weer in de root van de C-Drive bent. Typ:
cd .. <ENTER>

2. Verwijder de directory Peter door te typen:
rd Peter <ENTER>

rd betekent "remove directory".

3. Laat de inhoud van de directory zien om te kijken of Peter is verwijderd.

Merk op dat je op deze manier een directory alleen kunt verwijderen als deze leeg is!

4. Bestanden maken en bekijken

In dit hoofdstuk leer je:

  • Hoe je tekstbestanden kunt maken
  • Hoe je batch bestanden kunt maken
  • Hoe je de inhoud van bestanden kunt bekijken
  • Hoe je bestanden kunt samenvoegen

4.1. Tekstbestanden maken

Natuurlijk kan je bestanden maken met je Windows-software, maar aangezien je de opdrachtregelinterface aan het leren bent, gaan we laten zien hoe je een eenvoudig ASCII-tekstbestand kunt maken.

1. Typ:
copy con listdir.bat <ENTER>

dir /AD <ENTER>

<CTRL>-<Z>

(houd de control toets ingedrukt en typ z)

Je scherm ziet er nu zo uit:

2. Controleer of het nieuwe bestand in de directory staat. Hoe groot is het bestand?

4.2. De inhoud van een bestand tonen

Geef nu de inhoud van het bestand op het scherm weer.

1. Typ:
type listdir.bat <ENTER>

Met het type commando kan je de inhoud van een bestand bekijken.

2. Typ nu:
listdir <ENTER>


Gefeliciteerd! Je hebt je eerste script gemaakt, een batchbestand. Batchbestanden zijn scripts die kunnen worden gebruikt om opdrachten in batch uit te voeren. In dit geval voerde het bestand dir /AD uit.
Omdat batchbestanden altijd de bestandsextensie .bat hebben, weet de the computer dat dit een batchbestand is en zal de commando's in het bestand uitvoeren. We komen hier later op terug.

3. Laten we eerst een ander bestand maken. Typ:
dir > list.txt <ENTER>

Dit commando laat het resultaat van het dir commando niet op het scherm zien, maar slaat het op in een ASCII bestand (tekstbestand) genaamd list.txt. We kunnen dus > achter een commando zetten om de resultaten in een bestand op te slaan in plaats van ze op het scherm te tonen.

4. Bekijk de inhoud van het bestand:
type list.txt <ENTER>

Je ziet dat de lijst langer is dan op je scherm past.

5. Typ:
type list.txt | more <ENTER>


Het resultaat van de inhoud van list.txt is doorgegeven aan het more commando die de resultaten laat zien in pagina's zo groot als je venster. Druk op <ENTER> om de volgende regel te zien. Druk op <SPATIEBALK> om de volgende pagina te zien. Druk op <CTRL-C> om af te breken. De laatste toetesencombinatie kan vaak gebruikt worden om een commando te stoppen als het niet doet wat je wilt, als het crasht of als je te lang op een resultaat moet wachten.

6. Typ:
more <ENTER>

Er gebeurt niets, want het more commando verwacht als invoer de uitvoer van een ander commando. Dus je kan wachten tot je een ons weegt. In dit geval kan je het more commando afbreken met <CTRL-C>.


7. Probeer nu dit:
type listdir.bat >> list.txt <ENTER>

8. Laat het resultaat zien:
type list.txt | more <ENTER>

9. Wat is er gebeurd?

Samengevat:

  • > slaat de resultaten van een commando op in een nieuw bestand. Als het bestand aan de rechterkant van > reeds bestaat zal het overschreven worden.
  • >> voegt de resultaten van een commando toe aan een bestaand ASCII bestand.
  • | gebruikt de resultaten van het commando aan de linkerkant als invoer voor het commando aan de rechterkant van |. Dit wordt een 'pipe' genoemd.
  • Gebruik <CTRL-C> om de uitvoering van een commando af te breken.
We kunnen deze operators ook gebruiken om zogenaamde lock-bestanden te maken. Deze worden gebruikt bij het scripten. Het script controleert of een bepaald bestand bestaat. Als het bestaat, wacht het programma, als het wordt verwijderd, gaat het programma verder. Daarom kunnen deze bestanden leeg zijn. Je kan een lockfile maken met:
type NUL > lockfile.txt <ENTER>

5. Bestandsbeheer

In dit hoofdstuk leer je hoe je:

  • bestanden kan kopiëren
  • bestanden kan verplaatsen
  • bestanden kan hernoemen
  • bestanden kan verwijderen

5.1. Bestanden kopiëren

1. We kunnen het bestand list.txt kopiëren naar een nieuw bestand. Typ:
copy list.txt newlist.txt <ENTER>

2. Controleer of het bestand in de directory staat.

3. We kunnen tekstbestanden ook samenvoegen met het copy commando. Typ:
copy list.txt+newlist.txt listappend.txt <ENTER>

4. Bekijk de inhoud van het bestand listappend.txt.

5. We kunnen list.txt ook kopiëren naar de subdirectory John:
copy list.txt john\newlist2.txt <ENTER>

6. Ga naar de subdirectory John and bekijk de inhoud van de subdirectory.

5.2. Verplaats en hernoem bestanden

We gaan het bestand newlist.txt verplaatsen naar de directory John.

1. Ga eerst terug naar de root van de C-schijf.

2. Typ:
move newlist.txt John <ENTER>

3. Ga naar de subdirectory John en bekijk de inhoud van de directory.

4. Omdat het een beetje verwarrend is om een kopie van het bestand newlist.txt te hebben in de subdirectory John gaan we naam wijzigen:
rename newlist.txt listjohn.txt <ENTER>

5. Bekijk opnieuw de inhoud van de directory.

6. Sla het overzicht van de inhoud van de directory op in een bestand met de naam dirjohn.lst


5.3. Jokertekens

1. Typ:
dir <ENTER>

2. Typ onderstaande commando's en bekijk de resultaten:
dir *.txt <ENTER>
dir *john.* <ENTER>
dir *.??t <ENTER>
dir *.?xt <ENTER>

3. Leg uit wat de jokertekens * en ? doen.


5.4. Bestanden verwijderen

Omdat we kopiën hebben gemaakt, willen we de dubbele bestanden opruimen.

1. We verwijderen newlist2.txt:
del newlist2.txt <ENTER>

2. Je kan nu alle bestanden verwijderen door het volgende te type (Verzeker je ervan dat je in de juiste directory staat. Je kan acties niet ongedaan maken in de opdrachtregelinterface!):
del *.* <ENTER>

(of eenvoudiger: del . <ENTER>)

3. Verwijder nu de directory John (weet je nog hoe dat moet?).

6. Opdrachtregelgeschiedenis

Soms gebruik je vaak hetzelfde commando. Er zijn verschillende trucs om ze efficiënter te typen.

In jeWindows-opdrachtprompt is Doskey standaard geactiveerd. Doskey is de tool die de geschiedenis van de opdrachtregel bijhoudt. De emulator die we gebruiken heeft enkele beperkingen en sommige van de onderstaande opdrachten werken mogelijk niet. Onthoud dat we het hadden geactiveerd in hoofdstuk 2 van deze tutorial.

Laten we testen of het zich de commando's herinnert die we vanaf dat moment hebben getypt.

1. Typ <F3>.

Dit herhaalt het laatst gebruikte commando.

2. Wis de opdrachtprompt en druk meerdere keren op de pijl naar rechts. Je ziet dat de karakters van het vorige commando worden herhaald. Als je op de knoppen omhoog en omlaag drukt, kan je door de eerder gebruikte opdrachten bladeren.

Als je <TAB> gebruikt tijdens het typen van een pad of bestandsnaam zal het automatisch worden aangevuld als er een overeenkomst is met bestaande paden of bestanden. Dit is heel nuttig om typfouten te voorkomen. Dit werkt helaas niet in de emulator, maar in de Windows Command Prompt kan je het wel gebruiken. Dus ga niet complete bestands- en directorynamen typen, maar gebruik de tab om de tekst aan te vullen.

We kunnen nog meer met het doskey commando.

3. Typ:
doskey /h <ENTER>

Dit laat alle getypte commando's zien die je tijdens deze sessie hebt gebruikt.

Als je de opdrachtregelinterface sluit, gaat de geschiedenis verloren.

4. We kunnen echter de opdrachtregelgeschiedenis opslaan in een tekstbestand met een commando dat je eerder hebt geleerd. Doe dat.

Op deze manier kan je het opdrachtregelgeschiedenisbestand bewerken in bijvoorbeeld Kladblok. Als je alle foute commando's verwijdert en je slaat het bestand op met de .bat extensie, dan kan je alle commando's in batch uitvoeren.

5. Probeer dit voor een aantal van de commando's die je in deze tutorial hebt geleerd.

We zijn aan het einde van de tutorial.

Je kan de opdrachtregelinterface afsluiten door op het kruisje in de hoek van het venster te klikken of door exit te typen en op enter te drukken.

Voor de emulator kan je gewoon de browser of het tabblad sluiten.