Linux im Griff

Linux-Terminal-Basics 9: Speicherplatz & Co. anzeigen

Wie viel Speicher ist frei? Wie groß ist Ordner XY? Welche Festplatten habe ich überhaupt? Fragen über Fragen ...

Fragen nach Speicherplatz sind vielleicht nichts Alltägliches, wollen aber auch beantwortet werden. Das Blöde: Da man die Befehle im Terminal tendenziell eher selten nutzt und sie nicht gerade schön sind, fallen sie oft aus dem Kopf. Das Schöne: Hier geht etwas, das auf dem Desktop selbstverständlich sein sollte, aber nicht ist - Ordnergrößen anzeigen.

In unserer Serie zu Linux-Terminal-Basics zeigen wir Euch, wie Ihr einige der wichtigsten Aufgaben auf der Kommandozeile erledigen könnt - vom Navigieren, über Dateioperationen, bis hin zu komplexen Suchaufträgen. Als Terminal verwenden wir Bash und auch wenn Linux im Vordergrund steht, funktioniert fast alles auch unter Windows. Und nun noch die Links zur Einleitung und zur Übersicht aller Artikel.

du - disk usage

du ist das Standardwerkzeug, um anzuzeigen, wie viel Speicherplatz Dateien und Verzeichnisse belegen. Ruft Ihr einfach nur du ohne Optionen auf, bekommt Ihr eine Liste aller Dateien im aktuellen Ordner und in dessen Unterordnern. Und das auch noch mit der Größenangabe in Bytes - unschön.

Darum gleich zu Anfang mal das, was du besser macht als zum Beispiel der Windows Explorer:

du -h -c -d 1 ./

Damit listet du die Verzeichnisse im aktuellen Verzeichnis samt Größe in Kilo-/Mega-/Giga-/Terabyte plus eine abschließende Gesamtsumme:

  • h: Human readable, also vernünftige Größenangaben
  • c: Gesamtsumme
  • d: Depth/Tiefe; gibt an, wie viele Hierarchiestufen gesucht wird

Die Ausgabe könnte dann zum Beispiel so aussehen:

$ du -hc -d 1  ./
34G     ./Age of Empires IV
11G     ./Battletoads
148M    ./OVERWHELM
4.4G    ./Return to Monkey Island
747M    ./Teenage Mutant Ninja Turtles- Shredder's Revenge
49G     ./
49G     total

Eine solche Übersicht würde man sich doch auch im Explorer und anderen Datei-Browsern wünschen, oder? Nun, fairerweise muss man sagen, dass es bisweilen verdammt lange dauert, bis das Resultat steht. Selbst bei den wenigen Ordnern im Beispiel sind es gut 11 Sekunden auf einem älteren Core i7.

Vielleicht wollt Ihr aber auch nur wissen, wie groß ein bestimmter Ordner ist:

du -hcs ./

Neu ist hier die Option s für Summarize, die eben nur die Endgröße liefert.

df - disk free

df ist das natürliche Gegenstück zu du, denn es zeigt nicht die Belegung an, sondern den freien Platz. Ohne weitere Optionen liefert df eine Liste aller Laufwerke samt Größe, freiem und belegtem Platz, prozentualer Auslastung und Mount-Punkt - und abermals mit blöden Byte-Größen. Daher ist der Standardaufruf eher:

df -h

Auch hier steht das h wieder für "human readable" und sorgt für die Ausgabe in Megabyte und so weiter.

Es ist aber immer noch viel Information. Ihr könnt aber auch gezielt angeben, welche Daten Ihr haben wollt. Und es lassen sich auch bestimmte Typen von Dateisystemen ausschließen. Das ist vor allem unter vielen Linuxen interessant, weil sich dort manchmal eine ganze Reihe von temporären tmpfs-Dateisystemen tummeln, die Euch wahrscheinlich gar nicht interessieren. Und so könnte das aussehen:

df -h --output=source,size,used,avail,target  --exclude-type=tmpfs

Über output wird schlicht angegeben, welche Spalten Ihr sehen wollt - welche es gibt, zeigt wie gewohnt ein dh --help. Und exclude-type schließt eben den Typ tmpfs aus. Eine beispielhafte Ausgabe:

$ df -h --output=source,size,used,avail,target
Filesystem            Size  Used Avail Mounted on
C:                    447G  334G  113G /
D:                    932G  844G   89G /d
E:                    477G  338G  140G /e

lsblk - list block devices

Bei lsblk geht es nun um die eigentliche Hardware, um "Block Devices". Es gibt einfach die Größe von Geräten und deren Partitionen aus - plus allerlei Informationen, die Euch tendenziell erstmal gar nicht interessieren. Erfreulicherweise gibt lsblk aber direkt im menschenlesbaren Format aus, die Aufgabe lautet also: Ausgabe formatieren:

lsblk -o NAME,SIZE,MOUNTPOINT

Über -o listet Ihr schlicht die Spalten, die Ihr haben wollt - und ein lsblk --help gibt Euch wirklich viele Spalten zur Auswahl! Da viele von Euch wohl unter Ubuntu arbeiten, noch ein Tipp: Bei Euch enthält die Ausgabe Dutzende Zeilen in der Art:

loop3                     148.4M /snap/chromium/2415

Die ganzen loop-Devices gehören zu Ubuntus Paketmanagement Snap. Lästigerweise werden dabei installierte Programme als "Geräte" verstanden, was die Ausgaben von Tools wie lsblk total versaut. Also solltet Ihr auch hier etwas filtern:

lsblk -o NAME,SIZE,MOUNTPOINT | grep -v  ^loop

Über grep könnt Ihr einfach nach allen Zeilen suchen, die nicht (-v) mit loop beginnen (^). Eine Ausgabe sieht dann etwa so aus:

NAME                        SIZE MOUNTPOINT
sda                        59.6G
├─sda1                      512M /boot/efi
├─sda2                        1G /boot
└─sda3                     58.1G
  └─ubuntu--vg-ubuntu--lv  58.1G /
sdb                         3.6T
└─sdb1                      3.6T /media/evo

Falls Ihr mehr zu diesem obskuren "ubuntu--vg-ubuntu--lv" wissen wollt, schaut hier vorbei.

Zugegeben, das sind waren jetzt doch ziemlich viele Befehle, Optionen und zusätzliche Filter. Falls Ihr dazu mal Hilfe braucht, könnt Ihr auch unsere hauseigene Terminal-Hilfe befragen - direkt im Terminal:

curl cli.help/df
curl cli.help/du
curl cli.help/grep

cli.help kann Euch - mit einer Art Beta-Funktion - auch direkt hübsche Ausgaben mit df und lsblk liefern, sofern die Tools bei Euch schon laufen:

curl cli.help/version | sh

Damit wird ein kleines Skript ausgeführt, dass ein paar Systeminformationen hübsch aufbereitet präsentiert:

Hardware:
    Architecture:                    x86_64
    CPU op-mode(s):                  32-bit, 64-bit
    Model name:                      Intel(R) Pentium(R) Silver N5000 CPU @ 1.10GHz
Systeminfo:
    Distributor ID: Ubuntu
    Description:    Ubuntu 22.04.2 LTS
    Release:        22.04
    Codename:       jammy
    Kernel:
    5.15.0-69-generic
Devices:
    NAME                        SIZE MOUNTPOINT
    sda                        59.6G
    ├─sda1                      512M /boot/efi
    ├─sda2                        1G /boot
    └─sda3                     58.1G
      └─ubuntu--vg-ubuntu--lv  58.1G /
    sdb                         3.6T
    └─sdb1                      3.6T /media/evo
Speicherplatz:
    Filesystem                         Size  Used Avail Mounted on
    /dev/mapper/ubuntu--vg-ubuntu--lv   58G   41G   14G /
    /dev/sda2                          974M  253M  654M /boot
    /dev/sda1                          511M  6.1M  505M /boot/efi
    /dev/sdb1                          3.7T  2.7T  969G /media/evo

Wie Ihr die Kommandozeilenprogramme unter Windows nutzen könnt, zeigen wir hier.

Mehr zur Kommandozeile.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Schaltfläche "Zurück zum Anfang"