Linux ist sehr auskunftfreudig: Wie viel Plattenplatz und Arbeitsspeicher ist noch frei? Welche Linux-Distribution läuft hier in welcher Version? Wer ist eingeloggt? Dies und viel mehr bringen Sie mit kurzen Shell-Kommandos in Erfahrung.
Um Informationen über das laufende System zu erhalten, müssen Sie kein grafisches Werkzeug wie etwa das KDE-Infozentrum (kinfocenter) bemühen – alle interessanten Daten stehen in der Shell bereit; wer die richtigen Programm- und Dateinamen kennt, wird schnell fündig.
Fragen zur Orientierung
“Wach, orientiert zu Person und Ort” beschreibt einen Patienten im Krankenhaus, der ansprechbar ist und die Fragen “Wer sind Sie?” und “Wo sind Sie?” korrekt beantworten kann. Zu wissen, wer und wo man ist, hat viele Vorteile, und das gilt im übertragenen Sinne auch für die Arbeit am Computer. Dort verändern sich die Fragestellungen geringfügig und lauten nun:
- Mit welchem Benutzernamen bin ich angemeldet?
- Auf welcher Maschine arbeite ich?
Das klingt zunächst überflüssig, aber Linux-Administratoren sind es ja gewohnt, sich via SSH auf zahlreichen Maschinen einzuloggen und auch dort Befehle auszuführen (Abbildung 1). Um nun nicht versehentlich auf der falschen Maschine ein Verzeichnis zu löschen, sollte man immer die Orientierung behalten.

Abbildung 1: Man kann nie genug Terminalfenster öffnen – auf einem großen Monitor mit hoher Auflösung behalten Sie dank SSH mehrere Rechner im Blick.
Die Shell unterstützt das automatisch über den Shell-Prompt, der – wenn Sie nicht absichtlich etwas anderes einstellen – immer (durch ein “@”-Zeichen getrennt) den Benutzernamen und den Namen des Rechners anzeigt, also z. B.
esser@hpquadi7:/tmp> _
Die dritte Information in diesem Prompt ist hinter dem Doppelpunkt das aktuelle Arbeitsverzeichnis (hier: /tmp/). Am Ende steht ein Größerzeichen (typisch für OpenSuse), alternativ findet sich oft ein Dollarzeichen (die Voreinstellung bei Kubuntu). “>” oder “$” sagen: Der Anwender ist mit normalen Rechten unterwegs. Ändert sich das Zeichen in eine Raute (“#”), sind Sie zum Administrator geworden: Sie sehen den “Root-Prompt”. Auch hier gibt es einen Unterschied zwischen den OpenSuse- und Kubuntu-Voreinstellungen: Kubuntu zeigt auch beim Root-Prompt den Benutzernamen (dann root) an, während OpenSuse darauf verzichtet, weil durch die Raute schon klar ist, wer angemeldet ist (Abbildung 2).

Abbildung 2: Root-Rechte sind immer an der Raute “#” im Prompt erkennbar. Kubuntu (oben) zeigt zusätzlich den Benutzernamen “root” an.
Sollten Sie sich einmal die Anzeige zerschießen (indem Sie experimentell die Shell-Variable PS1 verändern), können Sie mit den Kommandos whoami, hostname und pwd herausfinden, wer und wo Sie sind:
esser@hpquadi7:~/Daten/EL/2017/04/guru> PS1="kaputterprompt> " kaputterprompt> whoami esser kaputterprompt> hostname hpquadi7 kaputterprompt> pwd /home/esser/Daten/EL/2017/07/guru
Bequemer ist es aber, den Prompt wiederherzustellen, z. B. mit dem Befehl
PS1="\u@\h:\w> "
Hier stehen \u, \h und \w für user (Benutzer), hostname und working directory (Arbeitsverzeichnis).
Ist hier noch was frei?
Zu wenig Platz zu haben, ist immer ungünstig – das gilt bei Linux sowohl für den Hauptspeicher als auch für die Festplatte. Wie es im RAM aussieht, verrät der Befehl free (Listing 1). Die Ausgabe enthält mehr und weniger relevante Informationen: In der ersten Spakte total steht, wie viel RAM im Rechner verbaut ist (Mem, hier 12 GByte) und wie viel zusätzlicher Platz als Swap (Auslagerungsbereich, hier 2 GByte) zur Verfügung steht.
Listing 1
Ausgabe von “free”
esser@hpquadi7:~> free
total used free shared buffers cached
Mem: 12279776 8492100 3787676 68532 74204 2931280
-/+ buffers/cache: 5486616 6793160
Swap: 2104316 0 2104316
Die Angaben in den Spalten used und free erklären im Beispiel, dass ca. 8 GByte belegt und entsprechend knapp 4 GByte RAM frei sind. Einen Teil der Belegung verursacht Linux aber, indem es aus Performance-Gründen Daten im Hauptspeicher vorrätig hält, die es zu einem früheren Zeitpunkt von der Platte gelesen hat (und aktuell gar nicht braucht). Das sind die Speicherbereiche, deren Größen in den Spalten buffers und cached angegeben sind: Die Inhalte können jederzeit “weggeworfen” werden (was diese Speicherbereiche verfügbar macht), weil die Inhalte ja auch auf der Platte liegen. Darum kann man diese Bereiche zum freien Speicher hinzuzählen. Genau das passiert in der zweiten Zeile (-/+ buffers/cache): Dort ist der Eintrag für den belegten Speicher kleiner (und der für den freien entsprechend größer). Die Werte in dieser Zeile sind die richtigen, wenn Sie herausfinden möchten, ob der Hauptspeicher allmählich knapp wird.
Dass in der letzten Zeile Swap bei used eine Null steht, zeigt, dass der Beispielrechner noch keine Daten auf Platte auslagern musste. Sollte sich das ändern, weil Sie speicherintensive Software laufen lassen, wird vielleicht sogar der Auslagerungsspeicher knapp. Welche Swap-Bereiche aktiviert sind, verrät ein Blick in /proc/swaps:
esser@hpquadi7:~> cat /proc/swaps
Filename Type Size Used Priority
/dev/sdb4 partition 2104316 0 -1
Linux verwendet zum Auslagern bevorzugt Swap-Partitionen, kann aber alternativ oder ergänzend auch mit Swap-Dateien arbeiten (so, wie Windows das tut). Die folgenden Befehle legen auf die Schnelle eine zusätzliche 2 GByte große Swap-Datei im Ordner /tmp/ an (dd erstellt die Datei, mkswap schreibt eine Swap-Signatur an ihren Anfang) und binden sie als zusätzlichen Swap-Bereich ein. Danach zeigt ein erneuter Blick in /proc/swaps, wie sich die Situation geändert hat:
esser@hpquadi7:~> sudo su -l hpquadi7:~ # dd if=/dev/zero of=/tmp/swap bs=1M count=2048; chmod 0600 /tmp/swap; mkswap /tmp/swap; swapon /tmp/swap 2048+0 Datensätze ein 2048+0 Datensätze aus 2147483648 Bytes (2,1 GB) kopiert, 6,76692 s, 317 MB/s Auslagerungsbereich Version 1 wird angelegt, Größe = 2097148 KiB keine Bezeichnung, UUID=31f53b44-ac76-44c9-a64d-a23774d55476 hpquadi7:~ # cat /proc/swaps Filename Type Size Used Priority /dev/sdb4 partition 2104316 0 -1 /tmp/swap file 2097148 0 -2
Plattenplatz
Um den Speicherplatzverbrauch eines Verzeichnisses, einer ganzen Partition oder Ihres gesamten Linux-Systems einschließlich aller gemounteten Dateisysteme zu berechnen, können Sie den du-Befehl (disk usage, Plattennutzung) verwenden. Standardmäßig schaut sich das Kommando alle Ordner, Unterordner usw. an und gibt für jedes gefundene Verzeichnis die Größe an. Diese detaillierte Anzeige können Sie mit der Option -s (summary, Zusammenfassung) unterdrücken und bei der Gelegenheit die Einheit von Byte auf MByte (-m) oder mit -h (human-readable, für Menschen lesbar) auf ein der jeweiligen Größe angemessenes Vielfaches (also Byte, KByte, MByte, GByte oder TByte) umstellen:
esser@hpquadi7:~> du -s 433840040 . esser@hpquadi7:~> du -s Daten/ Dokumente/ Vorlagen/ 9270792 Daten/ 7892460 Dokumente/ 4 Vorlagen/ esser@hpquadi7:~> du -sm Daten/ Dokumente/ Vorlagen/ 9054 Daten/ 7708 Dokumente/ 1 Vorlagen/ esser@hpquadi7:~> du -sh Daten/ Dokumente/ Vorlagen/ 8,9G Daten/ 7,6G Dokumente/ 4,0K Vorlagen/
Wie Sie an den Beispielen sehen, lassen sich auch explizit Verzeichnisse übergeben, für die du den Speicherverbrauch untersuchen soll. Zahlen ohne Einheiten (beim Aufruf ohne -m oder -h) sind Größenangaben in KByte.
Globale Informationen über den Speicherverbrauch liefert der Befehl df (disk free, freier Laufwerkspeicherplatz): Er zeigt für alle gemounteten Dateisysteme den gesamten, den verwendeten und den noch freien Speicherplatz an. Diese Ausgabe war bis zur Einführung des Btrfs-Dateisystems immer sehr übersichtlich – auf aktuellen Linux-Installationen, die Btrfs verwenden, gilt das leider nicht mehr. Abbildung 3 zeigt die Ausgabe von df -h auf einem solchen Rechner, die Option -h steht wieder für “human-readable” und sorgt für lesbare Angaben in GByte oder TByte. In der Abbildung taucht die Partition /dev/sdb5 stolze 16 Mal auf: So oft ist sie an verschiedenen Mount-Points eingehängt. Diese praktische Eigenschaften von Btrfs, mit Sub-Volumes arbeiten zu können [1], zerstört aber leider die Lesbarkeit von df-Meldungen.

Abbildung 3: Eigentlich produziert “df” gut lesbare Übersichten; beim Einsatz des Dateisystems Btrfs gilt das aber nicht mehr.
Sie können mit df auch gezielt Informationen für eine einzelne Partition anfordern – das funktioniert auf drei Arten:
- Angabe der Gerätedatei, z. B. /dev/sdb5,
- Angabe des Mount-Points, z. B. /home, oder
- Angabe eines beliebigen Ordners, zu dem
dfdann zunächst herausfindet, auf welcher Partition er liegt.
Deswegen liefern die folgenden drei Kommandos dieselben Ergebnisse:
esser@hpquadi7:~> df -h /dev/sdb5; df -h /home; df -h /home/esser/Dokumente
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/sdb5 41G 25G 15G 64% /
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/sdb6 570G 553G 16G 98% /home
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/sdb6 570G 553G 16G 98% /home
Ein Nebeneffekt der dritten Variante ist, dass Sie damit schnell feststellen können, auf welcher Partition sich eine bestimmte Datei oder ein Verzeichnis befindet, denn die Partition taucht ja in der Ausgabe von df auf.
Prozessortyp
Welche CPU ist eigentlich im Rechner verbaut? Das beantwortet ein Blick in die Datei /proc/cpuinfo. Die Ausgabe zeigt für jeden Prozessor-Core (und bei Hyperthreading auch für jeden “logischen” Core) einen Block mit eigener Prozessornummer an; eine Quad-Core-CPU mit Hyperthreading erhält also acht Blöcke.
Ein Block (der immer mit processor : Nummer anfängt) enthält zahlreiche Informationen über die CPU, darunter die Bezeichnung im Feld model name. Für einen schnellen Überblick können Sie die Datei mit egrep durchsuchen; Abbildung 4 zeigt die Zeilen, die processor oder model name enthalten; der erste Aufruf stammt von einer virtuellen Maschine (VM), der zweite von einem Rechner mit Quad-Core-i7-Prozessor.
In seltenen Fällen brauchen Sie die Auflistung der unterstützten CPU-Features, die sich im Feld flags versteckt – sie verrät z. B., welche Virtualisierungsfunktionen die CPU beherrscht. Wenn bei den Flags das Wort hypervisor auftaucht, läuft das Linux in einer virtuellen Maschine. Diese Information lässt sich aber bequemer über hostnamectl abfragen: Auf einem Rechner, der Linux nativ (direkt auf der Hardware) ausführt, meldet das Tool unter Chassis z. B. laptop oder desktop; bei einer VM erscheint stattdessen vm. Außerdem enthält die Ausgabe auf VMs eine Zusatzzeile Virtualization, die angibt, welche Technik zum Virtualisieren eingesetzt wird (z. B. xen, kvm, oracle). Listing 2 zeigt die vollständigen Ausgaben des Tools auf einem PC (oben) und in einer VM (unten).
Listing 2
Ausgaben von “hostnamectl”
esser@hpquadi7:~> hostnamectl status Static hostname: hpquadi7.localnet Transient hostname: hpquadi7 Icon name: computer-desktop Chassis: desktop Machine ID: 4ed603cd18304c8d9216b69334cdeb3a Boot ID: 507018e0c782408da435f5dd05c312b1 Operating System: openSUSE 13.2 (Harlequin) (x86_64) CPE OS Name: cpe:/o:opensuse:opensuse:13.2 Kernel: Linux 3.16.7-29-desktop Architecture: x86-64 esser@kubu1610:~$ hostnamectl status Static hostname: esser-VirtualBox Transient hostname: kubu1610 Icon name: computer-vm Chassis: vm Machine ID: 8805c839cbad422e929feb2f7a8de2e7 Boot ID: 045f6cdd20fb477fa8e49abdbb24d0b7 Virtualization: oracle Operating System: Ubuntu 16.10 Kernel: Linux 4.8.0-32-generic Architecture: x86-64
Betriebssystem und Distribution
Ein klassisches Unix-Kommando, das nicht nur unter Linux, sondern auf jedem Unix-ähnlichen System (also z. B. unter macOS, FreeBSD und Minix – und wenn Sie auf einem Windows-Rechner die Cygwin-Tools [2,3] installieren, dann auch dort) funktioniert, ist uname (Unix name). Ohne Parameter aufgerufen, verrät es nur den Namen des Betriebssystems (z. B. Linux). Über die Option -a wird es gesprächiger und verrät – wie in Abbildung 5 zu sehen – weitere Details, darunter
- die Kernel-Version (im Beispiel: 4.4.36-8-default),
- das Datum, an dem der Kernel übersetzt wurde (09.12.2016) und
- die Prozessor-Architektur des Kernels (x86_64 steht für ein 64-Bit-Linux).
Im Screenshot sehen Sie im unteren Bereich zusätzlich die Ausgabe auf einem Apple MacBook, das macOS mit dem Kernel Darwin 16.4.0 ausführt.
Linux-Rechner können über lsb_release zudem ausgeben, welche Linux-Distribution (im Beispiel: OpenSuse) in welcher Version verwendet wird.

Abbildung 5: “uname” ist ein Klassiker der Unix-Welt und informiert darüber, welches Unix läuft. Unter Linux liefert “lsb_release” Hinweise zur Distribution.
Auslastung
Zum Schluss erwähnen wir noch drei Methoden, sich über die aktuelle Systemlast informieren zu lassen – die einfachste Variante führt über das Tool uptime, das in erster Linie (und seinem Namen entsprechend) darüber informiert, wie lange der Rechner schon läuft. Auch dieser Befehl ist ein Unix-Klassiker. Hinter der Zeitangabe folgen aber noch das Wort “Durchschnittslast” (oder bei Kubuntu die englische Fassung “load averages”) und drei Zahlen:
esser@hpquadi7:~> uptime
08:21 1 Tag 2:11 an, 7 Benutzer, Durchschnittslast: 0,15, 0,14, 0,14
Die drei Zahlen stehen für die gemittelte Systemlast in der letzten Minute sowie während der letzten fünf und 15 Minuten. Die Werte geben an, wie viele Prozesse im Schnitt rechenbereit sind, aber nicht laufen können (weil ein anderer Prozess läuft). Je höher der Wert, desto stärker ist die Belastung.
Um bei hoher Systemlast nach verantwortlichen Prozessen zu fahnden, eignet sich das Tool top: Es nutzt das ganze Terminalfenster, um eine sekündlich aktualisierte Liste der aktivsten Prozesse anzuzeigen. Hübscher als bei top finden Sie diese Informationen im Programm htop (Abbildung 6), das Sie allerdings zunächst mit sudo zypper in htop (OpenSuse) bzw. sudo apt install htop (Kubuntu) nachinstallieren müssen; top gehört zur Standardausstattung aller Distributionen. In beiden Programmen finden Sie im oberen Bereich auch die von uptime bekannten Lastwerte.

Abbildung 6: “htop” ist eine schönere Version des Prozessmonitors “top”, in der man auch scrollen kann.
Grafische Tools
Viele der hier erwähnten Informationen können Sie auch über grafische Tools abrufen, für KDE-Anwender ist das KDE-Infozentrum kinfocenter dafür die erste Anlaufstelle (Abbildung 7). Die CPU-Liste ist dort z. B. über Geräteinformationen / Gerätebetrachter / Prozessoren erreichbar, und eine Liste der Partitionen gibt es gleich neben den Prozessoren unter Speichergeräte / Festplatte.
Je nach Distribution und installiertem Desktop steht aber das KDE-Infozentrum nicht zur Verfügung, und alternative Tools präsentieren eine andere Auswahl von Systemdaten. Wer mehrere Linux-Systeme administriert, hat zudem nicht immer die Möglichkeit, auf entfernten Rechnern grafische Tools zu starten – darum ist es in jedem Fall hilfreich, sich die wichtigsten Kommandozeilentools und Dateien rund um das Thema “Information” zu merken.
Glossar
-
Hyperthreading
-
Prozessoren mit Hyperthreading-Unterstützung präsentieren die doppelte Anzahl der tatsächlich vorhandenen Prozessorkerne. Dadurch kann die Performance von parallel laufenden Anwendungen teilweise erhöht werden – allerdings nicht im selben Maß, in dem dies bei einer Verdopplung der Anzahl der Kerne möglich wäre. Technisch werden auf der CPU Teile des Kerns (und nicht der ganze Kern) doppelt verbaut.
Infos
-
Btrfs-Artikel: Hans-Georg Eßer, “Butter bei dat Dateisystem”, EasyLinux 01/2015, S. 94 f., http://linux-community.de/34125
-
Cygwin: http://www.cygwin.com/
-
Cygwin-Artikel: Hans-Georg Eßer, “Linux-Tools für Windows”, EasyLinux 02/2013, S. 48 ff., http://linux-community.de/28511







