Beetje Coderen

Les 1

Kennismaken met de terminal

Wat is een terminal, hoe lees je de prompt en welke commando's heb je vanaf dag één nodig? Je start je eerste lab-container en zet je eerste stappen.

⏱ 45 minuten leestijd + oefenen

Een terminal met de prompt student@beetje:~$ en daaronder de uitvoer van ls

🎯 Na deze les kun je

  • uitleggen wat een terminal, een shell en een prompt zijn
  • de opbouw van een commando herkennen: commando, opties en argumenten
  • je weg vinden met pwd, ls en cd
  • absolute en relatieve paden gebruiken
  • hulp opzoeken met --help en man

Welkom bij de eerste les! Misschien ken je de terminal alleen uit films: een zwart scherm met groene letters waarop iemand razendsnel typt. In werkelijkheid is de terminal gewoon een gereedschap: je typt een opdracht, de computer voert die uit en laat het resultaat zien. Systeembeheerders, developers en securityspecialisten gebruiken hem elke dag, omdat je er veel dingen sneller, preciezer en herhaalbaar mee doet.

In deze les maak je kennis met de terminal, leer je de belangrijkste commando's om je te oriënteren en start je je eerste lab.

Terminal, shell en prompt

Drie woorden die vaak door elkaar worden gebruikt:

Begrip Wat is het?
Terminal Het venster waarin je typt (bijvoorbeeld Windows Terminal, Terminal op macOS of GNOME Terminal).
Shell Het programma dat jouw opdrachten leest en uitvoert. Op Linux is dat meestal bash.
Prompt Het stukje tekst waarmee de shell laat zien dat hij op je wacht.

Een typische prompt ziet er zo uit:

student@beetje:~$

Die kun je lezen als: gebruiker student op computer beetje, in map ~ (je thuismap). Het $-teken betekent dat je een gewone gebruiker bent. Zie je een #, dan ben je root: de beheerder die alles mag. Daar kom je in les 4 op terug.

In deze cursus laten we de prompt in voorbeelden vaak weg. Staat er $ ls, dan typ je alleen ls en druk je op Enter.

Je lab starten

Bij elke les hoort een lab: een kleine Linux-omgeving in een Docker-container. Zo kun je niets kapotmaken op je eigen computer, en als het misgaat begin je gewoon opnieuw.

  1. Installeer Docker Desktop (Windows/macOS) via docker.com of Docker Engine op Linux. Op Windows kies je tijdens de installatie voor WSL 2.
  2. Open een terminal op je eigen computer (op Windows: Windows Terminal of PowerShell).
  3. Start het lab:
docker run -it --rm --name les1 registry.wizg.it/webhosting/beetje-labs:les1

Na een paar seconden zie je de prompt student@beetje:~$. Je zit nu in de container. Alles wat je hier typt, gebeurt in die afgeschermde Linux-omgeving. Met exit verlaat je het lab weer.

Hoe Docker precies werkt leer je in les 14. Voor nu is het genoeg om te weten dat docker run een kant-en-klare Linux-omgeving voor je start.

De opbouw van een commando

Bijna elk commando volgt hetzelfde patroon:

commando  -opties  argumenten
  • Het commando is wat je wilt doen, bijvoorbeeld ls (list: laat de inhoud van een map zien).
  • Opties veranderen hoe het commando werkt. Ze beginnen met - (kort) of -- (lang), zoals -l of --all.
  • Argumenten zeggen waarop het commando werkt, bijvoorbeeld een map of bestand.

Probeer maar:

ls
ls -l
ls -l /etc

Het eerste commando toont de inhoud van de map waarin je staat. Het tweede doet dat in de lange weergave (met rechten, eigenaar, grootte en datum). Het derde toont de lange weergave van de map /etc, waar Linux zijn instellingen bewaart.

Korte opties mag je combineren: ls -l -a is hetzelfde als ls -la. De optie -a (all) laat ook verborgen bestanden zien; dat zijn bestanden waarvan de naam met een punt begint, zoals .bashrc.

Linux is hoofdlettergevoelig. ls, LS en Ls zijn drie verschillende dingen, en alleen de eerste bestaat. Hetzelfde geldt voor bestandsnamen: Notities.txt en notities.txt zijn twee verschillende bestanden.

Waar ben ik? pwd

Je staat in de terminal altijd ergens: in je huidige map (working directory). Met pwd (print working directory) vraag je op waar dat is:

$ pwd
/home/student

Het Linux-bestandssysteem is één grote boom die begint bij de root: /. Daaronder hangen mappen als:

Map Waarvoor?
/home De thuismappen van gebruikers, bijvoorbeeld /home/student
/etc Instellingen van het systeem en van programma's
/bin en /usr/bin Programma's, zoals ls zelf
/var/log Logbestanden
/tmp Tijdelijke bestanden

Er zijn op Linux geen stationsletters zoals C:\. Alles, ook een USB-stick, hangt ergens in die ene boom.

Rondlopen met cd

Met cd (change directory) ga je naar een andere map:

cd /etc
pwd
cd /var/log
ls

Een paar handige snelkoppelingen:

Commando Gaat naar
cd of cd ~ je thuismap
cd .. één map omhoog (de bovenliggende map)
cd - de map waar je net vandaan kwam
cd / de root van het bestandssysteem

Absolute en relatieve paden

Een pad beschrijft waar een bestand of map staat. Er zijn twee soorten:

  • Een absoluut pad begint bij de root en start dus altijd met /, bijvoorbeeld /home/student/projecten. Het werkt altijd, waar je ook staat.
  • Een relatief pad begint vanaf de map waarin je nu staat, bijvoorbeeld projecten of ../gedeeld. Het werkt alleen als je op de juiste plek staat.

Stel dat je in /home/student staat. Dan brengen deze twee commando's je naar dezelfde map:

cd /home/student/projecten   # absoluut
cd projecten                 # relatief

Twee speciale namen helpen je daarbij: . betekent de huidige map en .. betekent de map erboven. cd ../.. gaat dus twee niveaus omhoog.

Gebruik de Tab-toets! Typ cd /et en druk op Tab: de shell vult zelf /etc/ aan. Druk je twee keer op Tab, dan zie je alle mogelijkheden. Het scheelt typewerk én tikfouten.

Je eerste bestanden

Je gaat in les 2 uitgebreid met bestanden aan de slag, maar twee commando's heb je nu al nodig:

mkdir oefenen                         # maak een map "oefenen"
echo "Hallo terminal!" > oefenen/hallo.txt
cat oefenen/hallo.txt                 # toon de inhoud

mkdir (make directory) maakt een map. echo print tekst, en met > stuur je die tekst naar een bestand in plaats van naar het scherm. cat laat de inhoud van een bestand zien.

Hulp zoeken

Niemand onthoudt alle opties. Dat hoeft ook niet:

  • ls --help toont een korte uitleg van bijna elk commando.
  • man ls opent de volledige handleiding (manual). Scroll met de pijltjestoetsen, zoek met /woord en sluit af met q.

Handige toetsen

Toets Wat het doet
Tab Aanvullen van commando's en paden
↑ / ↓ Door eerdere commando's bladeren
Ctrl + C Een lopend commando afbreken
Ctrl + L of clear Het scherm leegmaken
history Lijst van je eerdere commando's

Lab: je eerste rondje

Start het lab (zie hierboven) en voer de volgende opdrachten uit:

  1. Controleer met pwd dat je in /home/student staat.
  2. Bekijk met ls -la welke (verborgen) bestanden er in je thuismap staan.
  3. Ga naar /etc en zoek met ls het bestand os-release. Bekijk de inhoud met cat. Welke Linux-distributie draait het lab?
  4. Ga terug naar je thuismap met cd.
  5. Maak de map oefenen en zet daarin het bestand hallo.txt met de tekst Hallo terminal!.
  6. Schrijf de naam van de distributie uit stap 3 (bijvoorbeeld Debian) naar het bestand oefenen/distro.txt.
  7. Controleer je werk met beetje check les1.

Lukt een stap niet? Lees de melding van beetje check goed: die vertelt welke stap nog niet klopt. Daarna kun je het gewoon opnieuw proberen.

Samenvatting

  • De terminal is het venster, de shell (bash) voert je opdrachten uit, de prompt laat zien wie en waar je bent.
  • Een commando bestaat uit commando, opties en argumenten.
  • pwd laat zien waar je bent, ls wat er staat en cd brengt je ergens anders heen.
  • Absolute paden beginnen met /, relatieve paden gaan uit van je huidige map.
  • Met --help, man en de Tab-toets help je jezelf.

In de volgende les ga je bestanden en mappen maken, kopiëren, verplaatsen en verwijderen. Maak eerst de quiz hieronder om te checken of je de basis snapt.

Lab

Je eerste rondje door het bestandssysteem

Voer de opdrachten uit het lab hierboven uit in de lab-container en controleer daarna je werk.

Klaar? Controleer je werk met:

$ beetje check les1

📝 Quiz: kennismaken met de terminal

7 vragen · 70% nodig om te slagen

1. Wat is de shell?
2. Je ziet de prompt student@beetje:/var/log$. In welke map sta je?
3. Welk commando laat zien in welke map je nu staat?
4. Welk van deze paden is absoluut?
5. Je staat in /home/student/oefenen. Waar kom je uit na cd ..?
6. Wat doet ls -la?
7. Hoe breek je een commando af dat blijft doorlopen?