Het bestandssysteem in Linux is hiΓ«rarchisch en begint bij de zogenaamde root directory, aangeduid met een / (forward slash). Dit betekent dat alle bestanden en mappen zich in een boomstructuur onder de root bevinden:
/βββbin/# EssentiΓ«le binaire bestanden (zoals ls, cat, mkdir)βββboot/# Opstartbestanden, kernel en bootloader (GRUB)βββdev/# Apparaatbestanden (schijven, USB, toetsenbord, etc.)βββetc/# Configuratiebestanden van het systeemβββhome/# Gebruikersmappen (bv. /home/jannes/)ββββjannes/# Home-directory van gebruiker "jannes"βββββDesktop/# BureaubladβββββDocuments/# DocumentenβββββDownloads/# Gedownloade bestandenβββββPictures/# AfbeeldingenβββββVideos/# Videoβsβββββ.config/# Verborgen configuratiebestandenβββββ.bashrc# Verborgen shell-instellingenββββandere_gebruiker/ββββnog_een_gebruiker/βββlib/# Bibliotheken voor systeembinariesβββmedia/# Automatisch aangekoppelde media (bv. USB-sticks)βββmnt/# Handmatig aangekoppelde bestandssystemenβββopt/# Optionele softwarepakkettenβββproc/# Virtuele bestanden met procesinformatieβββroot/# Home-directory van de root-gebruikerβββrun/# Tijdelijke systeemprocessen en socketsβββsbin/# Systeembinaries (voor root-gebruikers)βββsrv/# Bestanden van servers zoals Apache of FTPβββsys/# Virtueel bestandssysteem met hardware-informatieβββtmp/# Tijdelijke bestanden (wordt geleegd bij herstart)βββusr/# Gebruikersprogramma's en bibliothekenββββbin/# Niet-essentiΓ«le binaries voor gebruikers (Firefox, nano)ββββlib/# Bibliotheken voor gebruikersprogrammaβsββββlocal/# Software geΓ―nstalleerd door de gebruikerββββshare/# Gedeelde bestanden (documentatie, icons, fonts)ββββinclude/# Headerbestanden voor compileren van softwareβββvar/# Variabele bestanden (logbestanden, databases, cache)ββββlog/# Systeem- en applicatielogsββββmail/# E-mailsystemenββββspool/# Wachtrijen voor taken (bijv. printopdrachten)ββββwww/# Webserverbestanden voor Apache/Nginxββββcache/# Tijdelijke cachegegevensβββlost+found/# Herstelbare bestanden na een crash (alleen op ext4)
Navigeren met tekstcommando's
In de terminal kun je door het bestandssysteem navigeren met enkele eenvoudige commandoβs.
Huidige locatie bekijken
pwd (print working directory) toont in welke map je je momenteel bevindt.
Inhoud van een map weergeven
Dit geeft een lijst van bestanden en mappen in de huidige directory.
Handige opties:
ls -l β Laat details zien zoals rechten, grootte en datum.
ls -a β Toont ook verborgen bestanden (die beginnen met .).
ls -lh β Toont de bestandsgrootte in een leesbaar formaat (KB, MB, GB).
Voorbeeld:
Naar een andere map gaan
Het cd (change directory) commando laat je van map veranderen.
voorbeelden:
Bestanden en mappen maken
Voorbeeld:
Dit maakt een map nieuwe_map en een leeg bestand voorbeeld.txt daarin.
Bestanden en mappen verwijderen
β οΈ Wees voorzichtig met rm -r, want het verwijdert alles binnen de map onomkeerbaar!
Voorbeeld:
Bestanden verplaatsen of kopiΓ«ren
<bron> verwijst hier naar het bestand dat je wil kopieΓ«ren of verplaatsen, en <doel> verwijst hier naar de locatie waarin je bestand wil plakken of verplaatsen.
Voorbeelden:
Merk op dat in het tweede voorbeeld we het mv commando gebruiken om het bestand te hernoemen, terwijl we het in het derde voorbeeld gebruiken om het te verplaatsen naar een andere map. Wanneer we als <doel> een folder opgeven (eindigd op /) wordt het bestand louter verplaatst naar deze folder en blijft de bestandsnaam hetzelfde. Wanneer we als <doel> echter een nieuw bestand opgeven (bv. /home/jannes/Backup/nieuwe_naam.txt) verplaatsen we niet enkel het bestand, maar hernoemen we het ook.
Terugvinden van bestanden en mappen
Wil je zoeken naar een bestand?
We zoeken naar het bestand met naam -name bestand.txt in het hele foldersysteem (root folder /).
Wil je zoeken naar een map?
We zoeken naar een map (type -d) met naam -name Projecten in de home directory van de gebruiker (/home/jannes/).
Mappenstructuur weergeven met tree Het tree-commando wordt gebruikt om de mappenstructuur van een directory visueel weer te geven in een boomvorm. Dit helpt bij het snel begrijpen van de bestandshiΓ«rarchie.
Zonder opties toont tree de volledige hiΓ«rarchie vanaf de opgegeven directory (of de huidige directory als geen pad is opgegeven).
Met opties kun je de uitvoer aanpassen, zoals alleen mappen tonen of een maximale diepte instellen.
voorbeelden:
Dit geeft een overzicht van de bestanden en mappen in de huidige directory.
Toont de hiΓ«rarchie van de map /home/jannes/project en alle submappen en bestanden erin.
Toont alleen de 2 niveaus diep in de directory-structuur.
Probeer zelf eens na te gaan hoe je alleen de mappen, zonder de bestanden kan tonen. Je kan dit opzoeken in de handleiding van het commando (zie commando opties).
Absolute en Relatieve paden
In Linux kunnen paden op verschillende manieren worden geschreven, afhankelijk van waar je je bevindt in het bestandssysteem. De manier waarop een pad begint, bepaalt hoe het geΓ―nterpreteerd wordt.
Absolute paden
Een absoluut pad begint altijd met een / (forward slash). Dit betekent dat het pad wordt opgegeven vanaf de root (/) van het bestandssysteem.
Voorbeelden:
/home/jannes/Documents/ verwijst exact naar deze locatie, ongeacht waar je je bevindt in het systeem.
/var/log/syslog verwijst naar een logbestand in de systeemmap /var/log/.
βGebruik een absoluut pad als je zeker wilt zijn dat je naar een specifieke locatie verwijst, ongeacht waar je bent.
Relatieve paden
Een relatief pad is gebaseerd op de huidige werkdirectory (die je kunt controleren met pwd).
Een pad dat begint met ./ betekent: "begin vanaf de huidige directory". voorbeeld:
Dit betekent: "Ga naar de submap Webapp binnen de huidige map Projecten".
Een pad dat begint met ../ verwijst naar de bovenliggende map (parent directory).
Dit betekent "Ga naar de map Downloads, die zich in de bovenliggendemap bevindt".
Navigeren vanaf de home-directory
Het tilde-teken (~) is een speciale snelkoppeling in Linux die verwijst naar de home-directory van de huidige gebruiker. Dit is handig om snel naar je persoonlijke bestanden te navigeren, ongeacht waar je je in het bestandssysteem bevindt.
Elke gebruiker op een Linux-systeem heeft een eigen home-directory die zich standaard bevindt in /home/<gebruikersnaam>/.
Ik ben ingelogd onder de gebruikersnaam 'jannes', dus mijn home-directory is /home/jannes. Voor jou zal dit je eigen naam zijn.
Met ~ kun je hier snel naartoe:
Dit brengt je altijd terug naar je home-directory, ongeacht waar je je bevindt.
Op deze manier kan je dus ~ ook gebruiken om snel bestanden of mappen binnen je home-directory te openen zonder het volledige pad te typen.
mkdir <mapnaam> # Nieuwe map maken
touch <bestand> # Leeg bestand maken
mkdir nieuwe_map
touch nieuwe_map/voorbeeld.txt
rm <bestand> # Verwijder een bestand
rmdir <map> # Verwijder een lege map
rm -r <map> # Verwijder een map inclusief inhoud
rm -r oude_map # Verwijdert 'oude_map' en alles erin
cp <bron> <doel> # Kopieer een bestand
cp -r <bron> <doel> # Kopieer een map inclusief inhoud
mv <bron> <doel> # Verplaats of hernoem een bestand/map
cp bestand.txt /home/jannes/Backup/ # Kopieer bestand naar een andere map
mv bestand.txt nieuwe_naam.txt # Hernoem bestand
mv bestand.txt /home/jannes/Backup/ # Verplaats bestand naar een andere map
find / -name "bestand.txt" # Zoek naar bestand.txt in het hele systeem
find /home/jannes -type d -name "Projecten"
tree [opties] [directory]
tree
tree /home/jannes/project
tree -L 2
cd /home/jannes/Documents/
ls /var/log/syslog
cd ./Projecten/Webapp/
cd ../
cd ../Downloads
cd ~
cd ~/Documents # verwijst naar /home/jannes/Documents
ls ~/Downloads # verwijst naar /home/jannes/Downloads