Bij het beheren van schijfruimte op Linux-systemen zijn er verschillende handige commandoregeltools die je kunnen helpen om opslaggebruik te analyseren en verbeterpunten te vinden. In dit artikel bekijken we hoe je deze commando's gebruikt om je schijfruimte op Linux te begrijpen en te beheren.
Belangrijkste Punten
- Het 'df' commando toont de totale en beschikbare opslagruimte op elke schijf die aan het systeem is gekoppeld
- 'df -H' geeft output weer in een leesbaar format (MB, GB, TB)
- Pas de 'df' output aan met de '--output' vlag gevolgd door veldnamen (bijv. source, size, used, avail)
- Het 'du' commando toont de grootte van mappen en bestanden
- Combineer 'du' met 'sort' en 'head' om de grootste mappen te vinden (bijv. 'du -a . | sort -n -r | head -n 10')
df Commando
Overzicht van het 'df' commando
Het 'df' commando, wat staat voor "disk filesystem", is een tool om schijfruimtegebruik op Linux-systemen te controleren. Het toont informatie over de totale en beschikbare opslagruimte op elke schijf die aan het systeem is gekoppeld, inclusief lokale schijven en netwerkbestandssystemen. Dit commando wordt door Linux-gebruikers gebruikt om schijfruimtegebruik te analyseren sinds de begindagen van het besturingssysteem in de jaren '90.
Basisgebruik van 'df'
Om 'df' te gebruiken, voer je het commando uit met de '-H' vlag, zoals: df -H. Dit toont de output in een leesbaar format, waarbij schijfruimte wordt weergegeven in megabytes, gigabytes of terabytes. De output bevat verschillende kolommen met informatie voor elk bestandssysteem:
| Kolom | Beschrijving |
|---|---|
| Filesystem | De naam van het bestandssysteem of apparaatpad |
| Size | De totale grootte van het bestandssysteem |
| Used | De hoeveelheid gebruikte ruimte op het bestandssysteem |
| Available | De resterende vrije ruimte op het bestandssysteem |
| Use% | Het percentage van het bestandssysteem dat bezet is |
| Mounted on | Het aankoppelpunt waar het bestandssysteem is gekoppeld |
Om bijvoorbeeld te controleren hoeveel ruimte er nog beschikbaar is op je hoofdsysteemschijf, die meestal op '/' is aangekoppeld, voer je uit:
df -H /
Dit kan iets als dit weergeven:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 100G 65G 35G 65% /
Om informatie over een specifieke schijf of partitie te bekijken, voeg je het apparaatpad toe als argument aan 'df'. Bijvoorbeeld, df -H /dev/sda1 toont het ruimtegebruik voor de eerste partitie op de primaire SATA-schijf.
De 'df' output aanpassen
Standaard bevat 'df' een vaste set kolommen in de output. Je kunt dit aanpassen met de '--output' vlag gevolgd door een kommagescheiden lijst met veldnamen. Enkele nuttige velden zijn:
- source: het bronapparaat van het bestandssysteem
- size: totale grootte van het bestandssysteem
- used: hoeveelheid gebruikte ruimte
- avail: hoeveelheid beschikbare ruimte
- pcent: percentage gebruikte ruimte
Om bijvoorbeeld een rapport te maken dat het apparaat, totale grootte, gebruikte ruimte en beschikbare ruimte toont, voer je uit:
df -H --output=source,size,used,avail
Dit geeft een tabel met de geselecteerde kolommen:
Filesystem Size Used Avail
/dev/sda1 100G 65G 35G
/dev/sda2 500G 100G 400G
du Commando
Wat is het 'du' commando?
Het du commando, kort voor "disk usage", is een Linux-tool die de grootte van mappen en bestanden weergeeft. In tegenstelling tot het df commando dat een algemeen overzicht geeft van schijfgebruik per bestandssysteem, laat du je de ruimte zien die specifieke mappen en bestanden gebruiken. Dit maakt het nuttig om te ontdekken welke submappen en bestanden het meeste schijfruimte op je Linux-systeem gebruiken.
Hoe gebruik je 'du'
Om du te gebruiken, geef je de map die je wilt analyseren als argument:
du /home/user/Documents
Dit geeft een lijst van alle submappen in /home/user/Documents, samen met de schijfruimte die elk gebruikt. Standaard worden de groottes weergegeven in kilobytes.
Om de output gemakkelijker leesbaar te maken, gebruik je de -h vlag om groottes in leesbaar format weer te geven (KB, MB of GB), en de -s vlag om alleen een samenvatting voor de map te tonen:
du -sh /home/user/Documents
Dit kan iets als dit weergeven:
25G /home/user/Documents
Dit toont dat de /home/user/Documents map en de inhoud in totaal 25 gigabyte aan schijfruimte gebruiken.
Je kunt du ook op afzonderlijke bestanden gebruiken om hun schijfgebruik te bekijken:
du -h /home/user/Documents/large-file.zip
Als je bijvoorbeeld een groot videobestand in je Documents-map hebt, kun je uitvoeren:
du -h /home/user/Documents/vacation-video.mp4
En output krijgen zoals:
2.3G /home/user/Documents/vacation-video.mp4
Dit toont dat het videobestand 2,3 gigabyte ruimte inneemt.
De grootste mappen vinden met 'du'
Een veelvoorkomend gebruik voor du is het vinden van mappen die de meeste schijfruimte gebruiken. Hoewel je de output handmatig kunt controleren om de grootste submappen te vinden, is het gemakkelijker om du te combineren met andere commando's om de resultaten te sorteren.
Om de top 10 submappen in de huidige map op grootte weer te geven, voer je uit:
du -a . | sort -n -r | head -n 10
Dit is wat elk deel van het commando doet:
du -a .: Berekent het schijfgebruik van alle bestanden en submappen in de huidige map (.). De-avlag bevat bestanden én mappen.sort -n -r: Sorteert deduoutput numeriek (-n) in omgekeerde volgorde (-r), zodat de grootste getallen eerst komen.head -n 10: Neemt de eerste 10 regels van de gesorteerde output.
Het volledige commando geeft je een lijst van de 10 grootste submappen en bestanden, die je vervolgens verder kunt bekijken om te zien of er ruimte kan worden vrijgemaakt.
Je kunt ook een andere map opgeven om vanaf te beginnen:
du -a /home/user/Documents | sort -n -r | head -n 10
Dit vindt de top 10 ruimtegebruikers binnen de /home/user/Documents map en de submappen.
Als je /home/user/Documents map bijvoorbeeld deze submappen bevat:
/home/user/Documents/work
/home/user/Documents/personal
/home/user/Documents/photos
/home/user/Documents/music
Dan kan het uitvoeren van het bovenstaande commando iets als dit weergeven:
45G /home/user/Documents/photos
30G /home/user/Documents/music
10G /home/user/Documents/work
5G /home/user/Documents/personal
Dit toont dat de photos en music submappen de meeste ruimte gebruiken.
stat Commando
Het stat commando geeft informatie weer over een bestand, map of bestandssysteem, inclusief de grootte, blokgrootte en schijfgebruik.
Om stat te gebruiken, geef je het pad op naar het bestand, de map of het apparaat dat je wilt analyseren. Bijvoorbeeld:
stat /home/user/Documents/file1.txt
Dit geeft informatie over file1.txt:
File: /home/user/Documents/file1.txt
Size: 4096 Blocks: 8 IO Block: 4096 regular file
Device: 10301h/66049d Inode: 1234567 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2023-04-20 10:30:00.000000000 +0200
Modify: 2023-04-20 10:30:00.000000000 +0200
Change: 2023-04-20 10:30:00.000000000 +0200
Birth: -
In deze output zie je de bestandsgrootte (4096 bytes), het aantal blokken dat het op de schijf bezet (8), en andere metadata zoals rechten, eigendom en tijdstempels.
Je kunt stat ook gebruiken op een map of bestandssysteem. Bijvoorbeeld:
stat /home/user/Documents
Dit toont de grootte en het schijfgebruik van de /home/user/Documents map, met andere informatie.
Situaties waarin stat handig kan zijn:
- Het analyseren van het schijfgebruik van een specifiek bestand of map om inefficiënties in de opslag te vinden
- Het controleren van bestandsrechten en eigendom om toegangsproblemen op te lossen
- Het bekijken van tijdstempels van bestanden om te bepalen wanneer een bestand voor het laatst is gewijzigd of geopend
Voorbeeld: Bestandsrechten en Eigendom Controleren
Om de rechten en het eigendom van een bestand te controleren, kun je stat gebruiken:
stat /home/user/Documents/important_file.txt
De output bevat de rechten en het eigendom van het bestand:
Access: (0640/-rw-r-----) Uid: ( 1000/ user) Gid: ( 1000/ user)
In dit geval heeft het bestand lees- en schrijfrechten voor de eigenaar (user), leesrechten voor de groep (user), en geen rechten voor anderen. De eigenaar en groep zijn beide "user" met UID 1000 en GID 1000.
Als de rechten of het eigendom niet correct zijn, kun je chmod en chown gebruiken om ze aan te passen:
chmod 0644 /home/user/Documents/important_file.txt
chown user:group /home/user/Documents/important_file.txt
Dit stelt de rechten in op -rw-r--r-- (lezen en schrijven voor eigenaar, lezen voor groep en anderen) en wijzigt de eigenaar naar "user" en de groep naar "group".
fdisk -l Commando
Het fdisk -l commando wordt gebruikt om informatie weer te geven over schijfpartities en hun groottes. Het toont de partitietabellen voor alle opslagapparaten die aan het systeem zijn gekoppeld en geeft de schijfindeling weer.
Het uitvoeren van fdisk -l als root (of met sudo) geeft informatie over elke schijf en de partities:
Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A1B2C3D4-E5F6-G7H8-I9J0-K1L2M3N4O5P6
Device Start End Sectors Size Type
/dev/sda1 2048 206847 204800 100M EFI System
/dev/sda2 206848 2303999 2097152 1G Linux filesystem
/dev/sda3 2304000 31457279 29153280 14G Linux filesystem
Deze output toont dat /dev/sda een totale grootte heeft van 50 GiB en drie partities bevat: een 100 MB EFI System-partitie, een 1 GB Linux filesystem-partitie en een 14 GB Linux filesystem-partitie.
Het fdisk -l commando is nuttig om de structuur van je opslagapparaten en de grootte van de partities te begrijpen. Het kan helpen bij taken zoals:
- Het identificeren van de totale grootte en vrije ruimte op elk opslagapparaat
- Het bepalen van de partitie-indeling en groottes bij het plannen van een nieuwe installatie of herpartitionering
- Het verifiëren dat partities correct zijn ingesteld en zijn uitgelijnd met het opslagapparaat
Voorbeeld: Totale Schijfgrootte en Vrije Ruimte Identificeren
Om snel de totale grootte en vrije ruimte van een schijf te controleren, kun je fdisk -l combineren met grep en awk:
sudo fdisk -l /dev/sda | grep -e "Disk /dev/sda" -e "^$" | awk '{print $3 " " $4}'
Dit commando haalt de relevante regels uit de fdisk -l output en geeft de totale schijfgrootte en eenheid weer:
50 GiB
Om de vrije ruimte te berekenen, trek je de gebruikte ruimte (som van partitiegrootten) af van de totale schijfgrootte. Je kunt dit automatiseren met een script:
#!/bin/bash
disk="/dev/sda"
total_size=$(sudo fdisk -l $disk | grep "Disk $disk" | awk '{print $3}')
used_space=$(sudo fdisk -l $disk | awk '/^\/dev/ {sum += $5} END {print sum}')
free_space=$((total_size - used_space))
echo "Totale grootte: $total_size bytes"
echo "Gebruikte ruimte: $used_space bytes"
echo "Vrije ruimte: $free_space bytes"
Dit script berekent de totale schijfgrootte, telt de partitiegrootten op om de gebruikte ruimte te krijgen, en trekt de gebruikte ruimte af van de totale grootte om de vrije ruimte te bepalen. De output ziet er als volgt uit:
Totale grootte: 53687091200 bytes
Gebruikte ruimte: 15728640000 bytes
Vrije ruimte: 37958451200 bytes
Dit helpt je om snel de vrije ruimte op een schijf te beoordelen zonder deze handmatig te moeten berekenen uit de partitiegrootten.
Commando's Combineren voor Gedetailleerde Analyse
Bestanden en Mappen Sorteren op Grootte
Je kunt het du commando combineren met sort om bestanden en mappen gesorteerd op schijfgebruik weer te geven. Dit is handig om de grootste bestanden en mappen te vinden.
Om bijvoorbeeld de inhoud van je Desktop-map op grootte te sorteren van groot naar klein, voer je uit:
du -h /home/user/Desktop | sort -rn
De -h vlag maakt de output gemakkelijk leesbaar, terwijl sort -rn de resultaten numeriek (-n) in omgekeerde volgorde (-r) sorteert.
Als je alleen de grootste of kleinste resultaten wilt zien, kun je de output naar head of tail leiden:
| Commando | Beschrijving |
|---|---|
du -h /home/user/Desktop \| sort -rn \| head -n 5 |
Bekijk de 5 grootste bestanden/mappen op je Desktop |
du -h /home/user/Desktop \| sort -rn \| tail -n 5 |
Bekijk de 5 kleinste bestanden/mappen op je Desktop |
Dit is een voorbeeld van hoe de output eruit kan zien bij het vinden van de 5 grootste items:
4.0G /home/user/Desktop/videos
1.5G /home/user/Desktop/images
1.0G /home/user/Desktop/project.zip
500M /home/user/Desktop/music
100M /home/user/Desktop/documents
Dit toont dat de videos map de meeste ruimte inneemt met 4,0 gigabyte, gevolgd door images met 1,5 gigabyte, enzovoort.
Resultaten Filteren op Grootte
Om bestanden te vinden die groter zijn dan een bepaalde grootte, kun je du combineren met grep. Het grep commando zoekt naar regels die overeenkomen met een patroon.
Om bestanden in je Desktop-map te vinden die groter zijn dan 1 gigabyte, voer je uit:
du -h /home/user/Desktop | grep '^\s*[0-9\.]\+G'
Dit zoekt naar regels die beginnen met (^) wat witruimte (\s*), gevolgd door één of meer (+) cijfers of punten ([0-9\.]), en eindigen met een G (voor gigabytes).
Je kunt de G veranderen naar M om bestanden groter dan een megabyte te vinden, of K voor kilobytes:
# Vind bestanden groter dan 100 megabytes
du -h /home/user/Desktop | grep '^\s*[0-9\.]\+M'
# Vind bestanden groter dan 10 kilobytes
du -h /home/user/Desktop | grep '^\s*[0-9\.]\+K'
Als je bijvoorbeeld het commando uitvoert om bestanden groter dan 100 megabytes te vinden, zie je mogelijk output zoals dit:
200M /home/user/Desktop/presentation.ppt
150M /home/user/Desktop/archive.tar.gz
120M /home/user/Desktop/video.mp4
Deze techniek is handig wanneer je grote bestanden moet vinden die mogelijk te veel schijfruimte innemen.
Bestanden Uitsluiten op Type
Bij het analyseren van schijfgebruik wil je mogelijk bepaalde bestandstypen uitsluiten van de resultaten. Het du commando heeft een --exclude vlag waarmee je bestanden die overeenkomen met een patroon kunt overslaan.
Om bijvoorbeeld het schijfgebruik van je Desktop-map te krijgen terwijl je tekstbestanden uitsluit, voer je uit:
du -h /home/user/Desktop --exclude="*.txt"
Dit berekent de groottes van alle bestanden en submappen zoals gewoonlijk, maar laat bestanden die eindigen op .txt weg.
du -h /home/user/Desktop --exclude={"*.txt","*.jpg","*.png"}
Beide commando's analyseren het schijfgebruik terwijl tekstbestanden, JPEG's en PNG's worden overgeslagen.
Het gebruik van --exclude is handig wanneer je grote bestanden probeert te vinden om op te ruimen, maar weet dat bepaalde bestandstypen er horen te zijn en niet hoeven te worden geteld. Als je bijvoorbeeld een grote fotocollectie hebt, kun je afbeeldingsbestanden uitsluiten om je te richten op andere bestandstypen die mogelijk onnodig ruimte innemen.
Praktische Toepassingen
Dit zijn enkele praktijksituaties waarin het combineren van du met andere commando's nuttig kan zijn:
-
Schijfruimte vrijmaken: Wanneer je harde schijf weinig opslagruimte heeft, kun je
du -h | sort -rn | headgebruiken om de grootste mappen en bestanden te identificeren. Dit helpt je beslissen wat je moet verwijderen of naar een andere schijf moet verplaatsen om ruimte vrij te maken. -
Voorbereiding op een systeemmigratie: Voordat je je gegevens naar een nieuwe computer of schijf migreert, is het verstandig om je huidige opslaggebruik te controleren. Commando's zoals
du -h --exclude="*.bak" --exclude="*.tmp"geven je een nauwkeurig beeld van de grootte van je gegevens, terwijl tijdelijke of back-upbestanden die niet hoeven te worden overgedragen worden uitgesloten. -
Prestatieproblemen oplossen: Als je systeem traag is of bepaalde processen lang duren, kan dit komen doordat ze zeer grote bestanden verwerken. Het gebruik van
du -h | grep '^\s*[0-9\.]\+G'kan je helpen grote bestanden te vinden die prestatieproblemen kunnen veroorzaken.
ls -al Commando
Het ls -al commando toont de inhoud van een map, inclusief verborgen bestanden, en geeft hun groottes met andere informatie weer. Het is nuttig voor het analyseren van schijfgebruik van specifieke bestanden binnen een map.
Het uitvoeren van ls -al in de /home/user/Documents map kan bijvoorbeeld output zoals dit tonen:
total 24
drwxr-xr-x 2 user user 4096 Apr 20 10:30 .
drwxr-xr-x 5 user user 4096 Apr 19 09:15 ..
-rw-r--r-- 1 user user 4096 Apr 20 10:30 file1.txt
-rw-r--r-- 1 user user 8192 Apr 20 10:15 file2.txt
drwxr-xr-x 2 user user 4096 Apr 19 15:45 subdirectory
Hier geeft ls -al een lijst van de map, met bestandsrechten, eigendom, wijzigingsdatums en groottes. Dit commando helpt wanneer je het schijfgebruik van afzonderlijke bestanden binnen een map moet analyseren.
Enkele toepassingen voor ls -al zijn:
- Grote bestanden vinden die schijfruimte innemen
- Bestandsrechten en eigendom controleren om toegangscontrole te waarborgen
- Wijzigingsdatums van bestanden vergelijken om te zien welke bestanden recent zijn bijgewerkt
Voorbeeld: Grote Bestanden Vinden
Om grote bestanden in een map te vinden, kun je ls -al combineren met sort en head:
ls -al /home/user/Documents | sort -k 5 -n -r | head -n 5
Dit commando toont de inhoud van /home/user/Documents, sorteert de output op de vijfde kolom (bestandsgrootte) in omgekeerde numerieke volgorde, en geeft de top 5 resultaten weer. De output toont de grootste bestanden in de map:
-rw-r--r-- 1 user user 1048576 Apr 20 11:00 large_file1.bin
-rw-r--r-- 1 user user 524288 Apr 20 10:45 large_file2.bin
-rw-r--r-- 1 user user 262144 Apr 20 10:30 large_file3.bin
-rw-r--r-- 1 user user 131072 Apr 20 10:15 large_file4.bin
-rw-r--r-- 1 user user 65536 Apr 20 10:00 large_file5.bin
Dit helpt je om snel de grootste bestanden te identificeren die mogelijk schijfruimte innemen.





