Bei der Verwaltung des Speicherplatzes auf Linux-Systemen gibt es mehrere leistungsstarke Kommandozeilen-Tools, die Ihnen bei der Analyse der Speichernutzung und der Optimierung helfen können. In diesem Artikel schauen wir uns an, wie Sie diese Befehle nutzen, um Ihren Speicherplatz unter Linux zu verstehen und zu verwalten.
Wichtigste Erkenntnisse
- Der Befehl 'df' zeigt den gesamten und verfügbaren Speicherplatz auf jeder Festplatte an, die an das System angeschlossen ist
- 'df -H' zeigt die Ausgabe in einem lesbaren Format (MB, GB, TB) an
- Passen Sie die 'df'-Ausgabe mit der '--output'-Option gefolgt von Feldnamen an (z.B. source, size, used, avail)
- Der Befehl 'du' gibt die Größe von Verzeichnissen und Dateien aus
- Kombinieren Sie 'du' mit 'sort' und 'head', um die größten Verzeichnisse zu finden (z.B. 'du -a . | sort -n -r | head -n 10')
Der Befehl df
Überblick über den Befehl 'df'
Der Befehl 'df', der für "disk filesystem" steht, ist ein Werkzeug zur Überprüfung der Speicherplatznutzung auf Linux-Systemen. Er zeigt Informationen über den gesamten und verfügbaren Speicherplatz auf jeder Festplatte an, die an das System angeschlossen ist, einschließlich lokaler Laufwerke und Netzwerkdateisysteme. Dieser Befehl wird von Linux-Nutzern seit den Anfangstagen des Betriebssystems in den 1990er Jahren zur Analyse der Speicherplatznutzung verwendet.
Grundlegende Verwendung von 'df'
Um 'df' zu verwenden, führen Sie den Befehl mit der Option '-H' aus, etwa so: df -H. Dies zeigt die Ausgabe in einem lesbaren Format an und gibt die Speicherplatzgrößen in Megabyte, Gigabyte oder Terabyte aus. Die Ausgabe enthält mehrere Informationsspalten für jedes Dateisystem:
| Spalte | Beschreibung |
|---|---|
| Filesystem | Der Name des Dateisystems oder der Gerätepfad |
| Size | Die Gesamtgröße des Dateisystems |
| Used | Die Menge an Speicherplatz, die auf dem Dateisystem belegt ist |
| Available | Der verbleibende freie Speicherplatz auf dem Dateisystem |
| Use% | Der Prozentsatz des Dateisystems, der belegt ist |
| Mounted on | Der Einhängepunkt, an dem das Dateisystem angeschlossen ist |
Um beispielsweise zu prüfen, wie viel Speicherplatz auf Ihrer Hauptsystemfestplatte noch verfügbar ist, die normalerweise unter '/' eingehängt ist, führen Sie aus:
df -H /
Dies könnte etwa folgende Ausgabe liefern:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 100G 65G 35G 65% /
Um Informationen über eine bestimmte Festplatte oder Partition anzuzeigen, geben Sie den Gerätepfad als Argument für 'df' an. Beispielsweise zeigt df -H /dev/sda1 die Speicherplatznutzung für die erste Partition auf dem primären SATA-Laufwerk an.
Anpassung der 'df'-Ausgabe
Standardmäßig enthält 'df' eine Reihe von Spalten in seiner Ausgabe. Sie können dies mit der Option '--output' gefolgt von einer kommagetrennten Liste von Feldnamen anpassen. Einige nützliche Felder sind:
- source: das Quellgerät des Dateisystems
- size: Gesamtgröße des Dateisystems
- used: Menge an belegtem Speicherplatz
- avail: Menge an verfügbarem Speicherplatz
- pcent: Prozentsatz des belegten Speicherplatzes
Um beispielsweise einen Bericht zu erstellen, der das Gerät, die Gesamtgröße, den belegten Speicherplatz und den verfügbaren Speicherplatz anzeigt, führen Sie aus:
df -H --output=source,size,used,avail
Dies gibt eine Tabelle mit den ausgewählten Spalten aus:
Filesystem Size Used Avail
/dev/sda1 100G 65G 35G
/dev/sda2 500G 100G 400G
Der Befehl du
Was ist der Befehl 'du'?
Der Befehl du, kurz für "disk usage", ist ein Linux-Hilfsprogramm, das die Größe von Verzeichnissen und Dateien angibt. Im Gegensatz zum Befehl df, der eine übergeordnete Ansicht der Festplattennutzung nach Dateisystem bietet, ermöglicht Ihnen du den Speicherplatz zu sehen, der von bestimmten Verzeichnissen und Dateien verwendet wird. Dies macht es nützlich, um herauszufinden, welche Unterverzeichnisse und Dateien den meisten Speicherplatz auf Ihrem Linux-System verwenden.
So verwenden Sie 'du'
Um du zu verwenden, geben Sie das Verzeichnis, das Sie analysieren möchten, als Argument an:
du /home/user/Documents
Dies gibt eine Liste aller Unterverzeichnisse in /home/user/Documents aus, zusammen mit dem Speicherplatz, den jedes davon verwendet. Standardmäßig werden die Größen in Kilobyte angezeigt.
Um die Ausgabe leichter lesbar zu machen, verwenden Sie die Option -h, um Größen in lesbarem Format (KB, MB oder GB) anzuzeigen, und die Option -s, um nur eine Zusammenfassung für das Verzeichnis anzuzeigen:
du -sh /home/user/Documents
Dies könnte etwa folgende Ausgabe liefern:
25G /home/user/Documents
Dies zeigt, dass das Verzeichnis /home/user/Documents und sein Inhalt insgesamt 25 Gigabyte Speicherplatz verwenden.
Sie können du auch für einzelne Dateien verwenden, um deren Speicherplatznutzung zu sehen:
du -h /home/user/Documents/large-file.zip
Wenn Sie beispielsweise eine große Videodatei in Ihrem Dokumentenordner haben, könnten Sie ausführen:
du -h /home/user/Documents/vacation-video.mp4
Und erhalten eine Ausgabe wie:
2.3G /home/user/Documents/vacation-video.mp4
Dies zeigt, dass die Videodatei 2,3 Gigabyte Speicherplatz belegt.
Die größten Verzeichnisse mit 'du' finden
Eine häufige Verwendung für du ist es, Verzeichnisse zu finden, die am meisten Speicherplatz verwenden. Während Sie die Ausgabe manuell überprüfen könnten, um die größten Unterverzeichnisse zu finden, ist es einfacher, du mit anderen Befehlen zu kombinieren, um die Ergebnisse zu sortieren.
Um die 10 größten Unterverzeichnisse im aktuellen Verzeichnis nach Größe aufzulisten, führen Sie aus:
du -a . | sort -n -r | head -n 10
Hier ist, was jeder Teil des Befehls macht:
du -a .: Berechnet die Speicherplatznutzung aller Dateien und Unterverzeichnisse im aktuellen Verzeichnis (.). Die Option-aschließt Dateien sowie Verzeichnisse ein.sort -n -r: Sortiert diedu-Ausgabe numerisch (-n) in umgekehrter Reihenfolge (-r), sodass die größten Zahlen zuerst kommen.head -n 10: Nimmt die ersten 10 Zeilen der sortierten Ausgabe.
Der vollständige Befehl liefert Ihnen eine Liste der 10 größten Unterverzeichnisse und Dateien, die Sie dann genauer betrachten können, um zu sehen, ob Speicherplatz freigegeben werden kann.
Sie können auch ein anderes Verzeichnis als Ausgangspunkt angeben:
du -a /home/user/Documents | sort -n -r | head -n 10
Dies findet die 10 größten Speicherverbraucher innerhalb des Verzeichnisses /home/user/Documents und seiner Unterverzeichnisse.
Angenommen, Ihr Verzeichnis /home/user/Documents enthält diese Unterverzeichnisse:
/home/user/Documents/work
/home/user/Documents/personal
/home/user/Documents/photos
/home/user/Documents/music
Das Ausführen des obigen Befehls könnte etwa folgende Ausgabe liefern:
45G /home/user/Documents/photos
30G /home/user/Documents/music
10G /home/user/Documents/work
5G /home/user/Documents/personal
Dies zeigt, dass die Unterverzeichnisse photos und music den meisten Speicherplatz verwenden.
Der Befehl stat
Der Befehl stat zeigt Informationen über eine Datei, ein Verzeichnis oder ein Dateisystem an, einschließlich seiner Größe, Blockgröße und Speicherplatznutzung.
Um stat zu verwenden, geben Sie den Pfad zur Datei, zum Verzeichnis oder zum Gerät an, das Sie analysieren möchten. Zum Beispiel:
stat /home/user/Documents/file1.txt
Dies gibt Informationen über file1.txt aus:
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: -
Aus dieser Ausgabe können Sie die Größe der Datei (4096 Bytes), die Anzahl der Blöcke, die sie auf der Festplatte belegt (8), und andere Metadaten wie Berechtigungen, Eigentümer und Zeitstempel sehen.
Sie können stat auch für ein Verzeichnis oder Dateisystem verwenden. Zum Beispiel:
stat /home/user/Documents
Dies zeigt die Größe und Speicherplatznutzung des Verzeichnisses /home/user/Documents mit weiteren Informationen an.
Situationen, in denen stat hilfreich sein kann, umfassen:
- Analyse der Speicherplatznutzung einer bestimmten Datei oder eines Verzeichnisses zur Identifizierung von Speicherineffizienzen
- Überprüfung von Dateiberechtigungen und Eigentümern zur Behebung von Zugriffsproblemen
- Untersuchung von Dateizeitstempeln, um festzustellen, wann eine Datei zuletzt geändert oder aufgerufen wurde
Beispiel: Überprüfung von Dateiberechtigungen und Eigentümern
Um die Berechtigungen und den Eigentümer einer Datei zu überprüfen, können Sie stat verwenden:
stat /home/user/Documents/important_file.txt
Die Ausgabe enthält die Berechtigungen und den Eigentümer der Datei:
Access: (0640/-rw-r-----) Uid: ( 1000/ user) Gid: ( 1000/ user)
In diesem Fall hat die Datei Lese- und Schreibberechtigungen für den Eigentümer (user), Leseberechtigungen für die Gruppe (user) und keine Berechtigungen für andere. Der Eigentümer und die Gruppe sind beide "user" mit UID 1000 und GID 1000.
Wenn die Berechtigungen oder der Eigentümer nicht korrekt sind, können Sie chmod und chown verwenden, um sie anzupassen:
chmod 0644 /home/user/Documents/important_file.txt
chown user:group /home/user/Documents/important_file.txt
Dies setzt die Berechtigungen auf -rw-r--r-- (Lesen und Schreiben für Eigentümer, Lesen für Gruppe und andere) und ändert den Eigentümer auf "user" und die Gruppe auf "group".
Der Befehl fdisk -l
Der Befehl fdisk -l wird verwendet, um Informationen über Festplattenpartitionen und deren Größen anzuzeigen. Er listet die Partitionstabellen für alle Speichergeräte auf, die an das System angeschlossen sind, und zeigt das Festplatten-Layout an.
Das Ausführen von fdisk -l als Root (oder mit sudo) gibt Informationen über jede Festplatte und ihre Partitionen aus:
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
Diese Ausgabe zeigt, dass /dev/sda eine Gesamtgröße von 50 GiB hat und drei Partitionen enthält: eine 100 MB EFI-Systempartition, eine 1 GB Linux-Dateisystempartition und eine 14 GB Linux-Dateisystempartition.
Der Befehl fdisk -l ist nützlich, um die Struktur Ihrer Speichergeräte und die Größen der Partitionen zu verstehen. Er kann bei Aufgaben wie diesen helfen:
- Identifizierung der Gesamtgröße und des freien Speicherplatzes auf jedem Speichergerät
- Bestimmung des Partitions-Layouts und der Größen bei der Planung einer neuen Installation oder Neupartitionierung
- Überprüfung, dass Partitionen korrekt eingerichtet und mit dem Speichergerät ausgerichtet sind
Beispiel: Identifizierung der gesamten Festplattengröße und des freien Speicherplatzes
Um schnell die Gesamtgröße und den freien Speicherplatz einer Festplatte zu überprüfen, können Sie fdisk -l mit grep und awk kombinieren:
sudo fdisk -l /dev/sda | grep -e "Disk /dev/sda" -e "^$" | awk '{print $3 " " $4}'
Dieser Befehl extrahiert die relevanten Zeilen aus der fdisk -l-Ausgabe und zeigt die gesamte Festplattengröße und Einheit an:
50 GiB
Um den freien Speicherplatz zu berechnen, ziehen Sie den belegten Speicherplatz (Summe der Partitionsgrößen) von der gesamten Festplattengröße ab. Sie können dies mit einem Skript automatisieren:
#!/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 "Total size: $total_size bytes"
echo "Used space: $used_space bytes"
echo "Free space: $free_space bytes"
Dieses Skript berechnet die gesamte Festplattengröße, summiert die Partitionsgrößen, um den belegten Speicherplatz zu erhalten, und zieht den belegten Speicherplatz von der Gesamtgröße ab, um den freien Speicherplatz zu bestimmen. Die Ausgabe sieht etwa so aus:
Total size: 53687091200 bytes
Used space: 15728640000 bytes
Free space: 37958451200 bytes
Dies hilft Ihnen, den freien Speicherplatz auf einer Festplatte schnell zu beurteilen, ohne ihn manuell aus den Partitionsgrößen berechnen zu müssen.
Kombination von Befehlen für eine detaillierte Analyse
Sortierung von Dateien und Verzeichnissen nach Größe
Sie können den Befehl du mit sort kombinieren, um Dateien und Verzeichnisse nach ihrer Speicherplatznutzung sortiert aufzulisten. Dies ist nützlich, um die größten Dateien und Verzeichnisse zu finden.
Um beispielsweise den Inhalt Ihres Desktop-Verzeichnisses nach Größe von groß nach klein zu sortieren, führen Sie aus:
du -h /home/user/Desktop | sort -rn
Die Option -h macht die Ausgabe leicht lesbar, während sort -rn die Ergebnisse numerisch (-n) in umgekehrter Reihenfolge (-r) sortiert.
Wenn Sie nur die größten oder kleinsten Ergebnisse sehen möchten, können Sie die Ausgabe an head oder tail weiterleiten:
| Befehl | Beschreibung |
|---|---|
du -h /home/user/Desktop \| sort -rn \| head -n 5 |
Zeigt die 5 größten Dateien/Verzeichnisse auf Ihrem Desktop |
du -h /home/user/Desktop \| sort -rn \| tail -n 5 |
Zeigt die 5 kleinsten Dateien/Verzeichnisse auf Ihrem Desktop |
Hier ist ein Beispiel, wie die Ausgabe beim Finden der 5 größten Elemente aussehen könnte:
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
Dies zeigt, dass das Verzeichnis videos mit 4,0 Gigabyte den meisten Speicherplatz belegt, gefolgt von images mit 1,5 Gigabyte und so weiter.
Filterung der Ergebnisse nach Größe
Um Dateien zu finden, die größer als eine bestimmte Größe sind, können Sie du mit grep kombinieren. Der Befehl grep sucht nach Zeilen, die einem Muster entsprechen.
Um Dateien in Ihrem Desktop-Verzeichnis zu finden, die größer als 1 Gigabyte sind, führen Sie aus:
du -h /home/user/Desktop | grep '^\s*[0-9\.]\+G'
Dies sucht nach Zeilen, die mit (^) einigen Leerzeichen (\s*) beginnen, gefolgt von einem oder mehreren (+) Ziffern oder Punkten ([0-9\.]), und mit einem G (für Gigabyte) enden.
Sie können das G in M ändern, um Dateien zu finden, die größer als ein Megabyte sind, oder K für Kilobyte:
# Dateien finden, die größer als 100 Megabyte sind
du -h /home/user/Desktop | grep '^\s*[0-9\.]\+M'
# Dateien finden, die größer als 10 Kilobyte sind
du -h /home/user/Desktop | grep '^\s*[0-9\.]\+K'
Wenn Sie beispielsweise den Befehl zum Finden von Dateien ausführen, die größer als 100 Megabyte sind, könnten Sie eine Ausgabe wie diese sehen:
200M /home/user/Desktop/presentation.ppt
150M /home/user/Desktop/archive.tar.gz
120M /home/user/Desktop/video.mp4
Diese Technik ist praktisch, wenn Sie große Dateien finden müssen, die möglicherweise zu viel Speicherplatz belegen.
Ausschluss von Dateien nach Typ
Bei der Analyse der Speicherplatznutzung möchten Sie möglicherweise bestimmte Dateitypen von den Ergebnissen ausschließen. Der Befehl du hat eine Option --exclude, mit der Sie Dateien überspringen können, die einem Muster entsprechen.
Um beispielsweise die Speicherplatznutzung Ihres Desktop-Verzeichnisses zu ermitteln und dabei Textdateien auszuschließen, führen Sie aus:
du -h /home/user/Desktop --exclude="*.txt"
Dies berechnet die Größen aller Dateien und Unterverzeichnisse wie gewohnt, lässt jedoch alle Dateien aus, die mit .txt enden.
du -h /home/user/Desktop --exclude={"*.txt","*.jpg","*.png"}
Beide Befehle analysieren die Speicherplatznutzung, während sie Textdateien, JPEGs und PNGs überspringen.
Die Verwendung von --exclude ist hilfreich, wenn Sie versuchen, große Dateien zum Aufräumen zu finden, aber wissen, dass bestimmte Dateitypen dort sein sollen und nicht gezählt werden müssen. Wenn Sie beispielsweise eine große Fotosammlung haben, können Sie Bilddateien ausschließen, um sich auf andere Dateitypen zu konzentrieren, die möglicherweise unnötig Speicherplatz belegen.
Praktische Anwendungsfälle
Hier sind einige Situationen aus dem echten Leben, in denen die Kombination von du mit anderen Befehlen von Vorteil sein kann:
-
Freigabe von Speicherplatz: Wenn Ihre Festplatte nur noch wenig Speicherplatz hat, können Sie
du -h | sort -rn | headverwenden, um die größten Verzeichnisse und Dateien zu identifizieren. Dies hilft Ihnen zu entscheiden, was Sie löschen oder auf ein anderes Laufwerk verschieben möchten, um Speicherplatz freizugeben. -
Vorbereitung auf eine Systemmigration: Bevor Sie Ihre Daten auf einen neuen Computer oder ein neues Laufwerk migrieren, ist es eine gute Idee, Ihre aktuelle Speichernutzung zu überprüfen. Befehle wie
du -h --exclude="*.bak" --exclude="*.tmp"ermöglichen es Ihnen, ein genaues Bild von der Größe Ihrer Daten zu erhalten, während temporäre oder Sicherungsdateien ausgeschlossen werden, die nicht übertragen werden müssen. -
Behebung von Leistungsproblemen: Wenn Ihr System langsam ist oder bestimmte Prozesse lange dauern, könnte dies daran liegen, dass sie sehr große Dateien verarbeiten. Die Verwendung von
du -h | grep '^\s*[0-9\.]\+G'kann Ihnen helfen, große Dateien zu finden, die möglicherweise Leistungsprobleme verursachen.
Der Befehl ls -al
Der Befehl ls -al listet den Inhalt eines Verzeichnisses auf, einschließlich versteckter Dateien, und zeigt deren Größen mit weiteren Informationen an. Er ist nützlich für die Analyse der Speicherplatznutzung bestimmter Dateien innerhalb eines Verzeichnisses.
Das Ausführen von ls -al im Verzeichnis /home/user/Documents kann beispielsweise eine Ausgabe wie diese zeigen:
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 liefert ls -al eine Auflistung des Verzeichnisses und zeigt Dateiberechtigungen, Eigentümer, Änderungsdaten und Größen an. Dieser Befehl hilft, wenn Sie die Speicherplatznutzung einzelner Dateien innerhalb eines Verzeichnisses analysieren müssen.
Einige Anwendungsfälle für ls -al umfassen:
- Finden großer Dateien, die Speicherplatz belegen
- Überprüfung von Dateiberechtigungen und Eigentümern zur Gewährleistung der Zugriffskontrolle
- Vergleich von Dateiänderungsdaten, um zu sehen, welche Dateien kürzlich aktualisiert wurden
Beispiel: Große Dateien finden
Um große Dateien in einem Verzeichnis zu finden, können Sie ls -al mit sort und head kombinieren:
ls -al /home/user/Documents | sort -k 5 -n -r | head -n 5
Dieser Befehl listet den Inhalt von /home/user/Documents auf, sortiert die Ausgabe nach der fünften Spalte (Dateigröße) in umgekehrter numerischer Reihenfolge und zeigt die ersten 5 Ergebnisse an. Die Ausgabe zeigt die größten Dateien im Verzeichnis:
-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
Dies hilft Ihnen, schnell die größten Dateien zu identifizieren, die möglicherweise Speicherplatz verbrauchen.





