Ga naar hoofdinhoud

Basiscommando's

In deze sectie leer je bestanden en mappen aanmaken, kopiëren, verplaatsen, verwijderen en lezen — de dagelijkse werktuigen van elke Linux-gebruiker.

Bestandsnamen: vermijd spaties

Gebruik geen spaties

Voordat we commando's bekijken, één belangrijke afspraak: gebruik geen spaties in bestandsnamen of mapnamen.

De spatie is in de terminal een scheidingsteken tussen argumenten. rm mijn bestand.txt wordt gelezen als rm mijn gevolgd door bestand.txt — twee aparte argumenten. Het commando probeert dan twee bestanden te verwijderen in plaats van één.

rm mijn bestand.txt # ✗ Probeert 'mijn' én 'bestand.txt' te verwijderen
rm "mijn bestand.txt" # ✓ Werkt, maar omslachtig
rm mijn-bestand.txt # ✓ Aanbevolen: gebruik koppeltekens
rm mijn_bestand.txt # ✓ Of underscores

Gebruik koppeltekens (-) of underscores (_) als scheidingsteken in namen. Dit is de gangbare Linux-conventie en voorkomt een hele reeks problemen.


Mappen en bestanden aanmaken

mkdir — map aanmaken

mkdir (make directory) maakt een nieuwe lege map aan. Je gebruikt het telkens wanneer je een nieuwe map in een project wilt aanmaken.

mkdir projecten # Maak de map 'projecten' aan
mkdir -p projecten/site/css # Maak ook tussenliggende mappen aan

Zonder de -p vlag (parents) geeft mkdir een fout als de tussenliggende mappen nog niet bestaan. Met -p maakt het de volledige padstructuur in één keer aan — handig wanneer je een projectstructuur opzet.

touch — leeg bestand aanmaken

touch maakt een leeg bestand aan als het nog niet bestaat. Als het bestand al bestaat, past het enkel de tijdstempel aan. Je gebruikt het vaak om een bestand klaar te zetten voordat je er iets in schrijft, of om een bestandsstructuur op te zetten.

touch index.html # Maak een leeg bestand aan
touch css/style.css js/script.js # Meerdere bestanden tegelijk

Bestanden verwijderen, kopiëren en verplaatsen

rm — verwijderen

TODO: laten we rmdir aanleren voor het verwijderen van (lege) mappen

rm (remove) verwijdert bestanden of mappen. Let op: er is geen prullenbak in de terminal. Wat je verwijdert, is onmiddellijk weg.

rm bestand.txt # Verwijder een bestand
rm -r map/ # Verwijder een map en alles erin (-r = recursive)
rm -f bestand.txt # Forceer verwijdering zonder bevestiging
rm -i bestand.txt # Vraag bevestiging voor elk bestand (-i = interactive)
rm is onomkeerbaar

Er is geen prullenbak in de terminal. rm -r verwijdert een volledige map met alles erin, permanent en onmiddellijk. Verifieer je commando altijd voor je op Enter drukt — met name rm -rf (force + recursive) is een gevaarlijke combinatie.

cp — kopiëren

cp (copy) maakt een kopie van een bestand of map. Het origineel blijft intact. Je geeft altijd een bron en een bestemming op.

cp bestand.txt kopie.txt # Kopieer bestand naar nieuwe naam
cp bestand.txt backup/ # Kopieer naar map 'backup' (zelfde naam)
cp -r map/ map-backup/ # Kopieer een volledige map recursief
cp *.html backup/ # Kopieer alle .html bestanden

Zonder -r kun je geen mappen kopiëren — cp geeft dan een foutmelding.

mv — verplaatsen of hernoemen

mv (move) verplaatst een bestand of hernoemt het. Beide operaties zijn eigenlijk hetzelfde: het pad van het bestand verandert. Als de bestemming een bestaande map is, wordt het bestand daarin geplaatst. Als de bestemming een bestandsnaam is, wordt het hernoemd.

mv bestand.txt documenten/ # Verplaats naar map 'documenten'
mv oud-bestand.txt nieuw.txt # Hernoem een bestand
mv map/ nieuwe-naam/ # Hernoem een map
mv *.log logs/ # Verplaats alle .log bestanden naar 'logs'

Bestanden lezen

cat — inhoud tonen

cat (concatenate) toont de volledige inhoud van een of meer bestanden in de terminal. Het is handig voor korte bestanden die je snel wilt bekijken. Voor langere bestanden gebruik je beter less.

cat bestand.txt # Toon de volledige inhoud
cat bestand1.txt bestand2.txt # Toon twee bestanden na elkaar
cat -n bestand.txt # Met regelnummers

less — scrollen door een bestand

less toont de inhoud van een bestand pagina per pagina. Je kunt erdoor scrollen, zoeken en weer afsluiten. Gebruik less voor logbestanden, configuratiebestanden of elk bestand dat niet op één scherm past.

less logfile.txt
less /etc/hosts

Navigeren in less:

ToetsActie
Pijltjestoetsen of j/kRegel voor regel scrollen
Spatie of fVolgende pagina
bVorige pagina
/zoektermZoeken naar tekst (vooruit)
nVolgende zoekresultaat
gBegin van het bestand
GEinde van het bestand
qAfsluiten

head en tail — begin en einde

head toont de eerste regels van een bestand, tail de laatste. Standaard zijn dat 10 regels, maar je kunt het aantal aanpassen met -n.

head bestand.txt # Eerste 10 regels
head -n 5 bestand.txt # Eerste 5 regels
tail bestand.txt # Laatste 10 regels
tail -n 20 bestand.txt # Laatste 20 regels
tail -f logfile.txt # Live meekijken: update automatisch

tail -f (follow) is bijzonder nuttig tijdens development: je kunt ermee live meekijken in een logbestand terwijl een applicatie draait. Elke nieuwe regel die aan het bestand wordt toegevoegd, verschijnt meteen in je terminal.


Hulp zoeken

man — de handleiding

man (manual) toont de volledige documentatie van een commando. Elk geïnstalleerd programma heeft doorgaans een man-pagina. Ze bevatten alle opties, argumenten en voorbeelden.

man ls # Handleiding van ls
man cp # Handleiding van cp
man 5 passwd # Sectie 5 = bestandsformaten (bv. /etc/passwd)

Navigeer in man met dezelfde toetsen als in less: pijltjes, / om te zoeken, q om te sluiten.

--help — snelle referentie

Bijna elk commando ondersteunt de --help vlag. Het toont een kortere lijst van de meest gebruikte opties — handig als je even snel een vlag wilt opzoeken zonder de volledige man-pagina te openen.

ls --help
tar --help
Wanneer gebruik je wat?
  • --help: snel de opties van een commando bekijken
  • man: uitgebreide documentatie met uitleg en voorbeelden
  • Zoekmachine: als je niet weet wélk commando je nodig hebt

Overzicht

CommandoWat het doet
mkdir <map>Nieuwe map aanmaken
mkdir -p <pad>Map + alle tussenliggende mappen aanmaken
touch <bestand>Leeg bestand aanmaken
rm <bestand>Bestand permanent verwijderen
rm -r <map>Map en alle inhoud verwijderen
cp <bron> <doel>Bestand kopiëren
cp -r <map> <doel>Map kopiëren
mv <bron> <doel>Bestand verplaatsen of hernoemen
cat <bestand>Volledige inhoud tonen
less <bestand>Bestand interactief lezen
head -n N <bestand>Eerste N regels tonen
tail -n N <bestand>Laatste N regels tonen
tail -f <bestand>Live meekijken (logbestanden)
man <commando>Volledige handleiding
<commando> --helpKorte optielijst