Linux
De meeste servers op het internet draaien Linux. Als je ooit een webapplicatie deployt, een database beheert of in de cloud werkt zal je werken met Linux. Leren werken met de terminal is daarmee een onmisbare vaardigheid voor elke developer.
Wat is Linux?
Linux is een open-source besturingssysteem. Net als Windows of macOS beheert het de hardware van een computer en geeft het programma's de middelen die ze nodig hebben. Maar er zijn enkele cruciale verschillen:
- Open-source — de broncode is publiek beschikbaar; iedereen kan hem bekijken, aanpassen en verspreiden.
- Gratis — geen licentiekosten.
- Stabiel — Linux-servers draaien vaak jaren aan één stuk zonder herstart.
- Terminalgedreven — de command-line is de primaire interface, niet een grafische omgeving.
Kernel vs userspace
De kern van Linux is de kernel: de software die rechtstreeks communiceert met de hardware (CPU, geheugen, schijven, netwerk). Bovenop de kernel draait de userspace: alle programma's die de gebruiker ziet en gebruikt, van de shell tot webservers.
┌─────────────────────────────────┐
│ Jouw programma's (Python, ...) │
├─────────────────────────────────┤
│ Shell / Terminal │
├─────────────────────────────────┤
│ Linux Kernel │
├─────────────────────────────────┤
│ Hardware │
└─────────────────────────────────┘
Distributies
Linux bestaat niet als één product. Ontwikkelaars combineren de kernel met extra software tot een distributie (distro). Er zijn honderden distributies, maar ze vallen in drie grote families:
| Familie | Voorbeelden | Typisch gebruik |
|---|---|---|
| Debian-gebaseerd | Ubuntu, Debian, Linux Mint | Servers, development, desktops |
| Red Hat-gebaseerd | RHEL, Fedora, CentOS | Enterprise-omgevingen |
| Arch-gebaseerd | Arch Linux, Manjaro | Gevorderde gebruikers |
In dit vak werken we met Ubuntu/Debian via de terminal.
Wat leer je in dit hoofdstuk?
| Sectie | Wat je leert |
|---|---|
| Het bestandssysteem | Hoe de mappenstructuur van Linux in elkaar zit en hoe je erin navigeert |
| Basiscommando's | Bestanden aanmaken, kopiëren, verplaatsen en lezen |
| Streams & omleiding | Standaardstromen, omleiding en pipes |
| Filtercommando's | grep, sort, uniq, wc en cut via pipes combineren |
| Archieven & compressie | Bestanden archiveren en comprimeren met tar, gzip en zip |
| Gebruikers & rechten | Gebruikersbeheer, groepen en bestandsrechten |
| Processen & packages | Processen beheren en software installeren |
| Bash scripting | Automatiseren met shell scripts |