Kommandozeilen-Tools geben Auskunft

Informationen sammeln

Über einen Rechner und das darauf installierte Linux-System lassen sich viele Informationen sammeln, für die sich z. B. ein Support-Mitarbeiter interessiert, der bei der Problembehebung hilft. Wir stellen die wichtigsten Infoquellen auf der Konsole vor.

Welche CPU ist eigentlich im Rechner verbaut? Und mit welcher Linux-Kernel-Version arbeite ich? Diese und viele weitere Fragen beantworten Sie bequem, indem Sie ein paar Kommandos im Terminalfenster eingeben; zu fast allen Themengebieten gibt es ein passendes Werkzeug.

Versionsnummern

Jede Linux-Distributionsversion bringt ab Werk eine spezielle Auswahl von Softwarepaketen mit – in der Regel jeweils in den Versionen, die bei Fertigstellung der Distribution aktuell waren oder vom Projekt als stabil betrachtet wurden. Ist ein solches System einmal installiert, bleibt es aber nicht statisch, denn dank regelmäßiger Aktualisierungen ändern sich alle paar Tage die Versionsnummern.

Wer – z. B. für eine Support-Anfrage bei einem befreundeten Linux-Profi oder beim kommerziellen Dienstleister – die Versionsnummern bestimmter Pakete herausfinden möchte, hat dazu gleich mehrere Möglichkeiten.

  • Welcher Linux-Kernel (also das eigentliche Betriebssystem) gerade läuft, verrät das Kommando uname -r. Die Antwort, z. B. 4.4.70-18.9-default, verrät, dass ein Kernel 4.4.70 im Einsatz ist; der Rest des Versionsstrings (18.9-default) ist eine interne Bezeichnung des Distributors, im Beispiel von OpenSuse.
  • Ein Programm mit grafischer Oberfläche hat meist einen separaten Menüpunkt, über den sich Versionshinweise abrufen lassen – oft versteckt er sich im Hilfe-Menü. Wenn eine solche Funktion fehlt, können Sie zunächst herausfinden, welche Programmdatei das Fenster erzeugt hat. (Falls das nicht offensichtlich ist, finden Sie im Kasten Wer hat das Fenster geöffnet? Hinweise.) Der Programmname ist schon "die halbe Miete" bei der Suche nach der Versionsnummer, wie die folgenden Punkte zeigen.

Wer hat das Fenster geöffnet?

Bei den meisten Fenstern auf dem Desktop können Sie über einen schnellen Blick erkennen, um welche Anwendung es sich handelt. Ein zusätzlicher Blick in die Prozessliste verrät dann, welcher Prozess das Fenster erzeugt hat. Manchmal ist der Zusammenhang aber nicht auf Anhieb klar, so heißt etwa die Programmdatei von LibreOffice soffice.bin, was nur verstehen kann, wer die Historie des Officepakets kennt, das vor LibreOffice den Namen OpenOffice.org trug und noch früher StarOffice hieß: Das "s" ist ein Überbleibsel aus StarOffice-Zeiten, denn schon damals hieß das Programm soffice.bin.

Macht der Blick in die Prozessliste Sie ratlos, hilft das Tool xprop weiter: Wenn Sie das Kommando ohne Argumente aufrufen, ändert sich das Aussehen des Cursors, und Sie können ein beliebiges Fenster anklicken. Danach füllt das Tool das Terminalfenster mit einer Flut an Informationen, zu denen auch in ASCII gerenderte Versionen des Programm-Icons in verschiedenen Größen gehören. Das brauchen Sie alles nicht: Filtern Sie die Ausgabe mit grep PID, um nur die eine interessante Zeile anzuzeigen, in der die Prozess-ID (z. B. 12345) steht. Anschließend antwortet ps über die Optionen -p 12345 (nur Informationen zum Prozess mit der PID 12345 anzeigen) und -o cmd= (nur die Befehlszeile ausgeben) auf Ihre Fragen..

esser@prudlup:~> xprop | grep PID
_NET_WM_PID(CARDINAL) = 12345
esser@prudlup:~> ps -p 12345 -o cmd=
/usr/bin/dolphin /home/esser

Die Ausgabe zeigt neben dem Namen des Programmbinarys (/usr/bin/dolphin) auch noch das Aufrufargument an, was aber nicht weiter stört.

Falls Sie dieses Feature häufiger benötigen, können Sie es auch automatisieren: Dazu schneiden Sie aus der Ausgabe von xprop die ersten 24 Zeichen ab und verwenden das $()-Feature der Shell, um die extrahierte Prozess-ID zu einem Teil der Argumente für ps zu machen. Alles zusammen schreiben Sie in eine Skriptdatei ~/bin/xi (xi soll hier für "X-Info" stehen), die Sie noch ausführbar machen und dann verwenden können.

#!/bin/bash
# Skript: xi
pid=$( xprop | grep PID | cut -c25- )
ps -p $pid -o cmd=

Damit können Sie nun jederzeit xi in eine Shell tippen und ein Fenster anklicken, um dann den Pfadnamen auszugeben.

  • Kennen Sie den Programmnamen, können Sie versuchen, das Programm mit einer der vier Optionen -v, -V, -version oder --version aufzurufen: Die meisten Anwendungen – auch solche, die nicht für den Betrieb im Terminalfenster gedacht sind, sondern ein eigenes Fenster öffnen – reagieren auf eine dieser Optionen mit der Ausgabe mehr oder weniger ausführlicher Versionsinformationen und beenden sich dann gleich wieder (Abbildung 1).
Abbildung 1: GCC und LibreOffice geben über die Option "--version" die Versionsnummer aus. Der Warnhinweis beim mittleren Kommando informiert darüber, dass die Variante mit einem "-" veraltet ist.
  • Funktioniert die Versionsabfrage über Optionen nicht, können Sie die Paketdatenbank befragen. Unter OpenSuse verrät rpm -qf dateiname, zu welchem RPM-Paket eine Datei gehört. Die Ausgabe enthält in der Regel schon die Versionsnummer – falls nicht, führt anschließend rpm -qi paketname zum Ziel (Abbildung 2). Kubuntu- und Mint-Anwender suchen analog mit dpkg -S dateiname nach dem Debian-Paket zur Datei und ermitteln dann mit dpkg -l paketname die Versionsnummer.
Abbildung 2: "rpm -qi" zeigt Informationen zu einem RPM-Paket an. In der "Version"-Zeile steht die Versionsnummer.
  • Die Version der Linux-Distribution finden Sie über das Kommando lsb_release -a heraus, hier auf einem Mint-18.2-System ausgeführt:
esser@mint182 ~ $ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description:    Linux Mint 18.2 Sonya
Release:        18.2
Codename:       sonya

Hardware

Hinweise zur im Rechner verbauten Hardware liefern gleich diverse Tools, doch schon ohne Hilfsmittel können Sie über das Proc-Dateisystem einiges in Erfahrung bringen: Der Ordner /proc/ enthält diverse Dateien, die Sie mit cat ausgeben können, um den Systemzustand auszulesen; einige Dateien lassen sich (vom Administrator root) sogar beschreiben, um Einstellungen zu ändern. Was die Hardware angeht, sind vor allem zwei Dateien von Interesse:

  • /proc/cpuinfo: Hier finden sich Informationen zu den eingebauten Prozessoren, darunter Architektur (bei PCs: x86_64 oder x86), Modellname, Taktfrequenz und eine Liste von Feature-Bezeichnungen. Linux behandelt bei Multicore-CPUs jeden Kern als separate CPU; beherrschen die Cores zudem Hyper-Threading, sieht Linux sogar doppelt so viele Kerne. Auf einem Quad-Core-System mit Hyper-Threading erscheinen also acht CPU-Einträge. Statt cat /proc/cpuinfo können Sie auch das Kommando lscpu verwenden: Es gibt dieselben Informationen aus, versieht sie aber mit deutschen Feldnamen.
  • /proc/partitions: Für alle Platten und sonstigen Blockgeräte (USB-Sticks, eingelegte DVDs etc.) sowie deren Partitionen erscheinen hier die Major- und Minor-Nummern (siehe Kasten Gerätenummern), die Größe in KByte und der Name der Gerätedatei (z. B. sda) – eine schöner formatierte und auch ausführlichere Darstellung liefert das Tool lsblk: Es zeigt zusätzlich den Gerätetyp und – falls eingehängt – den Mountpoint an. Ergänzen Sie noch die Option -f, gibt es statt Größenangaben Hinweise zu den eingesetzten Dateisystemen (Abbildung 3), dafür benötigt das Tool dann aber Root-Rechte.
Abbildung 3: Das Tool "lsblk" zeigt ausführliche Informationen zu Blockgeräten. Partitionen erscheinen in einer Baumstruktur unterhalb der zugehörigen Platte.

Gerätenummern

Alle von Linux im Ordner /dev/ verwalteten Geräte haben eine zweiteilige Gerätenummer, die aus je zwei Zahlen zwischen 0 und 255 (also Bytes) besteht. In der Ausgabe von ls -l erscheinen diese Nummern an der Position, an der bei normalen Dateien die Dateigröße steht – die beiden Zahlen sind durch ein Komma getrennt. Der erste Wert heißt Major Device Number, der zweite Minor Device Number. Klassisch legt die Major Number eine Gerätekategorie fest, und über die Minor Number lassen sich dann mehrere Geräte derselben Kategorie unterscheiden. So haben z. B. CD-/DVD-Laufwerke die Major Number 11, und wenn mehrere von ihnen im Rechner verbaut sind, erhalten sie die Minor Numbers 0, 1, 2 usw.

Speziell für Festplatten modifiziert Linux dieses Schema ein wenig, wobei es auch noch vom Controller abhängt, wie die Nummern vergeben werden:

  • SATA- und SCSI-Platten sowie USB-Geräte (sda, sdb etc.) teilen sich alle eine Major Number (8), und die Minor Numbers können entweder für die ganze Platte oder für eine von 15 Partitionen stehen: (8,0) = sda, (8,1) = sda1, (8,2) = sda2, …, (8,15) = sda15, (8,16) = sdb, (8,17) = sdb1, …, (8,32) = sdc, (8,48) = sdd usw. Wenn Sie mehr als 15 Partitionen auf solchen Platten einrichten, können Sie auf die höheren nicht zugreifen – es gibt allerdings gepatchte Kernel-Versionen, die mehr Partitionen erlauben und anders nummerieren.
prudlup:~ # cd /dev; ls -l sd*
brw-rw---- 1 root disk 8,  0 Apr  4 15:33 sda
brw-rw---- 1 root disk 8,  1 Apr  4 15:33 sda1
brw-rw---- 1 root disk 8,  2 Apr  4 15:33 sda2
brw-rw---- 1 root disk 8, 16 Sep 30 21:00 sdb
brw-rw---- 1 root disk 8, 17 Sep 30 21:00 sdb1
  • Klassische IDE-Controller unterstützen nur den Anschluss von bis zu vier Geräten (hda, hdb, hdc und hdd). Sie kommen nur noch in älteren Systemen vor und verwenden die Major Number 3, die für diese Geräteklasse reserviert ist. Da sich maximal vier Geräte die Minor Numbers (die zwischen 0 und 255 liegen) teilen müssen, sind hier bis zu 63 Partitionen pro Platte zulässig – die Zuordnungen sind (3,0) = hda, (3,1) = hda1, (3,2) = hda2, …, (3,63) = hda63, (3,64) = hdb, (3,65) = hdb1 usw.

Die umfangreichste Sammlung an Hardwaredaten liefert lshw (list hardware) – OpenSuse-Anwender müssen das Programm erst mit sudo zypper in lshw einspielen; bei Kubuntu und Mint kommt es mit der Standardinstallation auf die Platte. Die Ausgabe von lshw ist allerdings lang und unübersichtlich, so dass sich hier selbst für überzeugte Kommandozeilenfans der Einsatz eines GUIs (Abbildung 4) lohnen kann: Unter Kubuntu und Mint spielen Sie dazu mit sudo apt install lshw-gtk ein Paket ein, OpenSuse-Anwender nutzen das Kommando sudo zypper in lshw-gui. Der Programmstart gelingt dann unter Kubuntu/Mint mit sudo lshw-gtk und auf OpenSuse-Systemen mit kdesu gtk-lshw. (Trotz der abweichenden Paket- und Programmnamen handelt es sich um dasselbe Tool.)

Abbildung 4: Das GUI für "lshw" heißt je nach Distribution "lshw-gtk" oder "gtk-lshw"; es stellt die Geräteinformationen in einer Baumstruktur dar, zeigt davon aber immer nur einen Teil an.

Nützlicher ist oft das Tool hwinfo, das Sie mit Root-Rechten ausführen sollten. Kubuntu- und Linux-Mint-Anwender müssen es zunächst mit sudo apt install hwinfo nachrüsten, bei OpenSuse ist es vorinstalliert. Ohne Parameter aufgerufen, erzeugt es eine ähnlich komplexe Ausgabe wie lshw – über die Option --short erstellt es aber eine übersichtliche Zusammenfassung (Abbildung 5), die über CPU-Kerne, Tastatur und Maus, Grafik- und Soundkarte, Netzwerkschnittstellen, USB-Geräte und weitere Komponenten informiert.

Abbildung 5: Eine kurze Zusammenfassung der wichtigsten Hardwaredaten liefert "hwinfo".

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

EL 11/2017-01/2018: Einstieg in Linux

Digitale Ausgabe: Preis € 9,80
(inkl. 19% MwSt.)

EasyLinux erscheint vierteljährlich und kostet 9,80 Euro. Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 33,30 Euro. Details dazu finden Sie im Computec-Shop.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!      

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...