2

Je hebt het misschien al eens meegemaakt of je zult het ongetwijfeld nog meemaken als je meer gaat experimenteren met je Raspberry Pi, dat je niet inlogt in de desktopomgeving maar begroet wordt door een zwart scherm en de commandline.

Om je grafische interface te laden tik je:

startx

En je kunt meteen weer aan de slag met je bureaublad, werkbalken & iconen. Waarom zou je dan leren werken met de command line?

Ten eerste kun je wanneer er iets fout loopt in het OS meestal nog terecht in de command line om het probleem te (proberen) repareren. Verder kun je ook klik-intensieve taken soms vervangen door een enkele regel in de command line. En je kunt uiteraard ook aan bestandsbeheer doen maar op een veel efficiëntere manier (bij complexe taken). Het spreekt trouwens ook vanzelf dat een computer die geen grafische interface moet laden, meer geheugen en processorkracht over heeft voor andere taken. Ten vijfde kun je ook de shell gebruiken om vanop een andere pc je Pi te beheren.

Tenslotte heb je ook eerst in prentenboeken gekeken voor je zelf leerde lezen en schrijven. Het is dus tijd om te leren lezen en schrijven in Linux!

WTF is shell?

Vroeger startten alle UNIX-computers op in de shell en was het de enige manier om opdrachten in te voeren. Tegenwoordige gebruiken we GUI’s (Graphical User Interface) omdat die voor iedereen zeer toegankelijk en begrijpbaar zijn. Zowel in Windows, macOS als in Linux gebruiken de meeste computeraars de GUI. De shell is een CLI (Command Line Interface). In plaats van te klikken op iconen, tikken we onze opdrachten rechtstreeks in de command line in zodat de computer die kan uitvoeren.

Op de meeste Linux-computers kun je bash (bourne again shell – de originele shell werd geschreven door Steve Bourne) of een variant gebruiken om je opdrachten in te tikken. Op je Raspberry Pi kun je LXTerminal gebruiken om de command line te emuleren.

3

Raspberry Pi basics

We starten eerst met enkele opdrachten die rechtsreeks ingrijpen op de configuratie van je Raspberry Pi, met sommige maakte je al kennis in het hoofdstuk over programma’s installeren.

sudo apt-get update

Met deze opdracht laat je je Raspberry Pi online kijken naar de laatste versies van alle beschikbare software. Met sudo krijg je beheerrechten en apt-get is de naam van het programma (Advanced Packaging Tool) dat je gebruikt om de software te updaten.

sandwich

Om vervolgens de nieuwe versies ook te installeren tik je:

sudo apt-get upgrade

Bevestig door ‘J’ te tikken en wacht dan tot de installatie klaar is. Mogelijk moet je nog een aantal bevestigingen geven of keuzes maken. Je kunt verder werken in de shell wanneer je de prompt ziet verschijnen.

Om software te installeren tik je deze opdracht:

sudo apt-get install programmanaam

De programmanaam vervang je uiteraard door de naam van het programma dat je wilt installeren, bijv.

sudo apt-get install iceweasel

installeert Firefox

Om een programma te verwijderen tik je:

sudo apt-get remover programmanaam

Om je Raspberry Pi te configureren tik je

sudo raspi-config

Je krijgt dan dezelfde opties als we hier al zagen.

Raspberry Pi hardware

cat /proc/cpuinfo

Deze opdracht toont alle info over de processor. Die kan nuttig zijn wanneer je aan het troubleshooten bent. BCMxxxx wijst bijv. op een Broadcom-chip.

cat /proc/meminfo

Toont je de details i.v.m. het geheugen van de Raspberry Pi.

cat /proc/partitions

Toont het aantal en de grootte van de partities.

cat /proc/version

Toont je welke Linux-versie je gebruikt.

vcgencmd measure_temp

Hiermee kun je controleren of Raspberry Pi niet te warm wordt.

free -o -h

Snel controleren hoeveel geheugen nog vrij is.

Enkele tips

Om sneller te werken in de shell kun je gebruikmaken van deze handigheidjes:

  • met de pijl omhoog kun je eerder ingetikte opdrachten snel weer intikken.
  • met de pijl omlaag kun je dus naar latere opdrachten navigeren.
  • druk op TAB om de shell de opdracht automatisch te laten aanvullen.

Bestandsbeheer via de shell

In de onderstaande lijst vind je de meest gebruikte opdrachten met enkele voorbeelden erbij hoe je ze kunt gebruiken. Probeer ze vooral even uit, je zult ze dan makkelijker onthouden.

pwd

Toont in welke map je aan het werken bent.

ls

Toont alle van mappen en bestanden in de huidige map.

Bij het invoeren van opdrachten kun je ook ‘flags’ gebruiken. Zo zal deze opdracht

ls -la

alle bestanden oplijsten onder elkaar en ook de standaard verborgen bestanden (dot files) weergeven. Deze verborgen bestanden zijn configuratiebestanden en kunnen via een tekstbewerker aangepast worden.

cd mapnaam

Ga naar een andere map

cd ..

Ga naar de bovenliggende map

cd

Ga naar je home directory

mkdir naam

Maak een nieuwe map.

rmdir naam

Verwijdert een lege map

cp

kopieert een bestand

cp bestand1.sb bestand2.sb

kopieert bestand1.sb in dezelfde map en hernoemt het naar bestand2.sb

cp bestand1.sb /home/pi/Downloads

kopieert bestand1.sb naar je Downloads-map.

mv

verplaatst een bestand

mv hallo.txt /home/pi/Documents

verplaatst hallo.txt naar je Documentenmap

mv hallo.txt byebye.txt

hernoemt je bestand naar byebye.txt

rm bestandsnaam

verwijdert een bestand. Let op: er is geen prullenbakfunctie: weg is weg.

rm -r mapnaam

verwijdert de map en alles erin! Wees zorgvuldig!

cat hallo.txt

toont de inhoud van een bestand.

cat > hallo2.txt

maakt een 2e bestand (druk CTRL + D om het op te slaan en verder te werken in de shell).

nano hallo.txt

Opent halo.txt in een zeer Spartaanse tekstverwerker (ideaal om systeembestanden mee aan te passen). Je kunt deze opdracht ook gebruiken om nieuwe bestanden aan te maken.

nano hallo2.txt

zal het bestand hallo2.txt aanmaken als het niet bestaat en meteen de editor openen zodat je tekst kunt invoeren.

Overzicht van de opdrachten die we tot nu toe behandelden:

  • pwd
  • ls
  • cd
  • mkdir
  • rmdir
  • cp
  • mv
  • rm
  • cat
  • nano

Weet je nog wat deze 10 opdrachten doen?

Meer info over deze opdrachten en andere vind je hier:

https://www.raspberrypi.org/documentation/linux/usage/commands.md

Oefening

Volgende handelingen kun je allemaal uitvoeren in de shell op basis van wat we hiervoor leerden. Probeer dus gerust even uit!

  1. Update je Raspberry Pi’s pakketbronnen.
  2. Upgrade je software.
  3. Installeer het spel Battle For Wesnoth (wesnoth)
  4. Controleer hoeveel geheugen er nog vrij is op je Raspberry Pi.
  5. Navigeer naar de Documents-folder.
  6. Maak 2 mappen aan: ‘Test1’ & ‘Test2’.
  7. Maak het bestand hallo.txt aan in map ‘Test1’. Geef het de inhoud ‘Hallo, ik ben x’.
  8. Maak een kopie van het bestand in ‘Test2’.
  9. Navigeer naar ‘Test2’.
  10. Controleer of je in de juiste map aan het werken bent.
  11. Bewerk de inhoud van ‘hallo.txt’ in ‘Test2’ door er nog een zinnetje aan toe te voegen.
  12. Verwijder de map ‘Test1’.
  13. Maak een kopie van ‘hallo.txt’ in ‘Test 2’ en noem het bestand ‘goodbye.txt’.
  14. Verplaats ‘hallo.txt’ naar je ‘Downloads’-map.
  15. Verwijder de map ‘Test 2’.
  16. Lijst de inhoud op van je ‘Downloads’.
  17. Lees de inhoud van ‘Test2’.
  18. Speel The Battle for Wensoth 🙂