Linux & Co.

Skript: Linux-System- und Hardware-Infos anzeigen

Es gibt allerlei Systeminformationen, die man immer wieder braucht: Festplatten, Speicherplatz, Distribution, Kernel, CPU und so weiter. Ihr wollt alle Infos sauber formatiert auf einen Blick? Oder Euch einfach kein halbes Dutzend Befehle plus Optionen merken müssen? Dann nehmt eben eine GUI, oder unser Skript.

Die GUI-Variante

Wenn Ihr es Euch ganz einfach machen wollt, installiert Hardinfo über sudo apt install hardinfo und schon habt Ihr ein Fenster mit so ziemlich allem, was sich aus einem System ziehen lässt.

Im Terminal bekommt Ihr Systeminformationen über eine ganze Reihe Befehle, etwa lscpu, uname, df und viele weitere. Und damit deren Output einigermaßen aussieht und sich gegebenenfalls auf das Wichtige beschränkt, benötigt Ihr meist auch noch allerlei Optionen – und da soll unser TutoSysinfo-Skript ein wenig helfen.

systeminformationen
Die einfache Variante: Hardinfo dürfte den meisten genügen.

Systeminfo-Skript

Ganz wichtig: Das Skript ist natürlich kaum mehr als ein Beispiel – mit Informationen, die hier gerade nützlich erscheinen. Aber Ihr könnt es natürlich superleicht anpassen und erweitern. Ein paar Anregungen findet Ihr direkt am Ende der Skript-Ausgabe. Aber erstmal von vorne, beginnend mit dem Ende – hier das finale Ergebnis im Bild:

systeminformationen
Es geht hübscher und umfangreicher, aber als Startpunkt sollte es genügen.

Und hier das zugehörige Skript TutoSysinfo:

#!/bin/bash
    tput setaf 1
    echo Hardware
    tput sgr0
lscpu | egrep --color=never "Architecture|CPU op|Model name|CPU MHz"
    tput setaf 1
    echo Distribution
    tput sgr0
lsb_release -idrc
     tput setaf 1
    echo Kernel
    tput sgr0
uname -r
    tput setaf 1
    echo Speichergeräte
    tput sgr0
lsblk -o NAME,SIZE,MOUNTPOINT
    tput setaf 1
    echo Speicherplatz
    tput sgr0
df -h --output=source,size,used,avail,target --exclude-type=tmpfs
    tput setaf 1
    echo Weitere Infos
    tput sgr0
echo "sudo lshw -short  Ausführliche Hardware-Info"
echo "lsusb         USB-Geräte auflisten"
echo "sudo dmidecode -q BIOS-Informationen auslesen"
echo "ip a          IP-Infos anzeigen"
echo "cat /etc/passwd       Nutzer anzeigen"
echo "lspci         Ausführliche Infos über PCI-Geräte"

tput ist für die Auszeichnung der Ausgabe verantwortlich, sprich die rote Schrift. Über tput setaf 1 wird die Terminal-Schrift auf Rot gesetzt und mit tput sgr0 wird zurückgesetzt.

Bei lscpu | egrep werden zunächst CPU-Informationen ausgelesen und dann mit egrep auf die interssanten Zeilen begrenzt. Den egrep-Part könnt Ihr natürlich weglassen.

lsb_release gibt Euch die Basisinformationen zu Eurer Distribution, als etwa Namen und Version von Ubuntu.

uname gibt schlicht die Kernel-Version aus.

lsblk listet (ls) Informationen über Blockspeichergeräte (blk) aus. In der obigen Konfiguration wird der Output (-o) auf Namen, Größe und Einbindungspunkt beschränkt. Das Schöne hier ist die Darstellung als Baum, weil man so sofort sieht, welche Festplatten vorhanden sind und welche Partitionen dazu gehören.

df liefert dann die Speicherplatzbelegung nach, die bei lsblk leider fehlt – sowie bei df die schicke Baumdarstellung. Auch hier werden wieder nur einige Spalten ausgegeben und Dateisysteme vom Typ „tmpfs“ sind komplett ausgenommen.

Schlussendlich bekommt Ihr noch ein paar weitere Vorschläge für mehr Infos: lshw (listet/ls – hardware/hw – da malt sich ein Konzpt ab ;) ) gibt ausführliche Hardware-Informationen aus, lsusb macht das gleiche für USB-Geräte, dmidecode kann Daten vom BIOS auslesen, ip zeigt unter anderem Eure eigene IP-Adresse, cat /etc/passwd listet existierende Nutzerkonten und lspci, Ihr könnt es Euch denken, listet Infos zu PCI-Geräten. Übrigens: Die Lücken bei den echo-Befehlen unten im Skript sind Tabs, daher sieht das im Code so doof aus.

Anpassen und nutzen

Ihr könnt das Skript dann einfach über ./tutosysinfo aufrufen (sollte es nicht laufen, versucht es mit chmod +x tutosysinfo, um die Datei ausführbar zu machen). Anschließend passt Ihr nach Bedarf an, bis es passt. Alle verwendeten Tools liefern Optionen über –help und Handbücher gibt es über man lsblk und so weiter. Und am besten benennt Ihr es danach um, in etwas, das Ihr Euch besser merken könnt als tutosysinfo. Wie wäre es schlicht mit systeminfo oder version?

In so ein Skript könnt Ihr noch etliche weitere Datenquellen einbauen, die Ausgaben noch viel weiter beschränken, bessere Formatierungen einbauen und so weiter. Wir hoffen, dass es für Einsteiger ein nützlicher Startpunkt ist. Über Lizenzkram müsst Ihr Euch übrigens keine Gedanken machen, das Skript ist viel zu trivial, um es überhaupt zu lizenzieren. Sicherheitshalber steht das Ding unter der Creative Commons Zero (CC0). Die CC0 ist tatsächlich dazu gedacht, formell klar zu machen, das ein Werk ohne jegliche Auflagen genutzt werden kann. Macht also einfach, was Ihr wollt.

RAM- und GraKa-Infos

Und noch ein paar Infos: Am Ende des Skripts stehen noch ein paar auskommentierte Zeilen. Über lshw werden hier die Größe des Arbeitsspeichers sowie Name und Hersteller verbauter Grafikchips ausgelesen. Allerdings müsst Ihr das Skript dann mit root-Rechten aufrufen, da ansonsten Warnmeldungen im schönen Output landen.

#tput setaf 1
#   echo Grafikkarten
#   tput sgr0
#lshw -quiet -class display|egrep "Produkt|Hersteller"
#   tput setaf 1
#   echo Arbeitsspeicher
#   tput sgr0
#lshw -quiet -class memory|egrep "Größe"

Zum Ausprobieren einfach auskommentierten, sprich die Rauten entfernen. Tipp: Natürlich könnt Ihr auch einzelne Befehle direkt per Drag&Drop auf ein Terminalfenster ziehen, um sie auszuprobieren.

Weitere Linux-Spielereien findet Ihr hier.

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

2 Kommentare

  1. Hallo Mirco,
    also wenn Windows-User das sehen/lesen, fühlen sie sich um so mehr bestätigt, das Linux kein Betriebssystem unserer Zeit ist, wenn schon das Auslesen der Hardwarekomponenten mit so viel Tipperei verbunden ist.
    Ich habe noch nie einen Windows- und/oder OS X-User beobachtet, der sein Betriebssystem so bedient, um die verbauten Hardwarekomponenten anzuzeigen.
    Richtig ist, dass Du zeigst, das es unter Linux solch ein Minitool gibt: hardinfo
    Falsch hingegen ist, wie Du zeigst, wie man in heutiger Zeit ein Tool herunter lädt und installiert. Was Du da vorturnst, ist tiefstes MS-DOS-Mittelalter. So wird heutzutage kein Linux bedient, mit dem man arbeitet, das man als Untergrund für seine Programme nutzt. Ich verstehe nicht, warum es einigen Linuxern so schwer fällt, von dem ach-so-tollen Terminal abschied zu nehmen.
    Es ist ja schön, wie Du zeigst, wie man vom Terminal aus, ein Tool herunterlädtst und installierst, nur macht das weder ein Windows-Umsteiger, noch ein Apple-Umsteiger.
    Warum wohl hat man den Synaptic-Paketmanager und die Software-Verwaltung geschaffen…?
    Rööösch-tööösch, weil die Zeiten der Tipperei längst hinter uns liegen und moderne Betriebssysteme mit grafischen Oberflächen arbeiten.
    Darum sollte man Umsteigern auch mit den tollen grafischen Möglichkeiten der Fenstermanager entgegen kommen, statt mit einem altbackenen Eingabefenster, das an das CMD-Fenster von Windows erinnert und Junge Menschen gar nicht wissen wozu das ist und warum es im Startmenü vorhanden ist.

    Die ganze Terminal-Frickelei ist Spielerei und hat nichts damit zu tun, unter einem anderen OS zu ARBEITEN, sondern nur des programmierens Willen.
    Ich habe etwa 1995 angefangen, mich für Linux zu interessieren (ein Kumpel schenkte mir seinerzeit eine Knoppix DVD. Nach der Installation sah ich aber nur eine Einschaltmeldung {ähnlich wie die MS-DOS Oberfläche}). Das war nicht das, was ich von einem anderen Betriebssystem erwartet hatte (schließlich hatte der AMIGA und mein PC ja auch eine grafische Oberfläche.
    Dann war erstmal lange Zeit Pause und etwa zur Jahrtausendwende wurde ich auf Ubuntu aufmerksam (dieser schokoladenbraune Desktop war einfach nur toll – im Gegensatz zu den quietschfarben von Win-XP). Nur leider hat das Ubuntu mein damaliges Modem nicht erkannt und damit dann auch kein Internet möglich.
    Mit einem anderen Rechner ins Netz – NEIN nicht Foren durchstöbert, um mich schlau zu machen, was ich denn ins Terminal einhacken muß, damit das Modem erkannt wird – NEIN, weit gefehlt. Ins Netz gegangen, um die iso einer anderen Distri. runterzuladen/zu brennen. Den anderen Rechner wieder angeschmissen, die HDD formatiert und die neue Distri. installiert.
    Von ca.2000 – ca. 2006 hatte ich unzählige Distributionen installiert. Wenn das Modem erkannt wurde, aber irgendeine andere Komponente nicht, hatte ich ja die Möglichkeit, neueste Updates herunter zu laden. Wurde danach die Komponente noch immer nicht erkannt – tja, dann flog auch diese Distri wieder von der Platte. Natürlich habe ich auch von Ubuntu immer mal wieder neuere Distributionen getestet.
    Irgendwann 2006 hatte ich LinuxMint9 auf den Rechner gezogen. Oh Wunder, alles wurde erkannt. Also gleich erstmal alle USB-Stecker raus und in einer anderen Reihenfolge wieder eingestöpselt. Alles lif tadellos. Sofort installierte ich das auch (neben WinXP) auf mein Lappy und mein Netbook natürlich auch.
    Ohne mein Zutun haben sich die Rechner ins Netzwerk eingeklinkt (selbstverständlich mußte ich den WAP-Code eingeben), aber ich hatte plötzlich von meinem PC im Büro, Zugriff auf mein Netbook im Wohnzimmer (Public-Ordner). Bis vor zwei Monaten hatte ich auch immer schön upgegraded (LinuxMint17.3LTS).

    Nur leider machen Ubuntu und Canonical Ltd. gerade Streß und teste auf einem Rechner (der PC hier) Zorin OS 12 (basierend auf Arch-Linux) und werde den Ubuntu-Kern nach so vielen langen Jahren den Rücken kehren.

    Kurz, mit anderen Worten: Ich war in den ganzen Jahren nicht ein einziges Mal im Terminal. Wüßte auch nicht was ich da soll, denn ich kenne ja nicht die Programmiersprache.
    Programmierkenntnisse sind für den Umgang mit Linux nicht zwingend nötig. Wie man an meinem – doch eher langgewordenen – Kommentar sieht. Wenn die Distri. nicht alles erkannt kat, dann war sie nicht fertigprogrammiert/für den User, der damit arbeiten will, nicht zu gebrauchen – als runter damit

    1. Ich denke die beiden anderen Tutonauten würden Dir hemmungslos Recht geben (auch wenn zumindest Christian eine bisweilen sehr merkwürdige Vorstellung von Linux hat – wie Du ja selbst gesehen hast ;) ), naturgemäß muss ich jedoch ein wenig Widerspruch einlegen …

      Zur Installation von Tools: Doch, die installiert man genau so – weil es unendlich viel schneller geht als mit Synaptic, zumindest wenn man weiß, wie das Tools heißt. „apt-get install cowsay“ vs. „Startmenü öffnen -> Synaptic eingeben -> Synaptic anklicken -> Curser im Suchfeld platzieren -> cowsay eingeben -> cowsay-Paket markieren -> Änderungen anwenden -> Synaptic schließen“. Und noch viel schlimmer sieht es aus bei „apt-get install tool1 tool2 tool3 tool4“ – das dauert in Synaptic ewig.

      Zur Nutzlosigkeit des Terminals: Es gibt etliche Gründe, den Terminal zu benutzen. Beispielsweise muss ich immer wieder Dateien von A nach B kopieren. Wenn mir die Rechte fehlen sagt die GUI: Geht nicht. Im Terminal setze ich ein simples sudo davor und schon ist die Welt in Ordnung. Oder wie sieht es mit reinen CLI-Tools aus? Git per GUI ist die Hölle (gut, Git ist jetzt eine spezielle Kundschaft …). Vor allem aber der Lerneffekt: Hardinfo macht doch nichts weiter als genau die Tools aufzurufen, die ich auch im Terminal benutze, und bereitet die Ausgaben dann hübsch auf. Wer immer nur Hardinfo nutzt, bekommt zwar die gewünschen Infos, versteht aber nicht, was eigentlich passiert. Und ich persönlich möchte Computer nicht als absolute Blackbox nutzen. Wenn ich für meine Daten verantwortlich sein will, für meine Sicherheit und meinen Rechner nach meinen Bedürfnissen nutzen und anpassen will, muss ich nicht nur Ergebnisse produzieren können, sondern auch verstehen, was da wo passiert. Zumindest bis zu einem gewissen Level. Gilt aber natürlich nicht für jeden.

      Anpassung: Die Ergebnisse von CLI-Tools kann ich einerseits anpassen und andererseits andernorts nutzen. Ich könnte etwa das Info-Skript täglich ausführen und mir den Bericht als Telegram-Nachricht schicken lassen, um mein System im Auge zu behalten. Und wenn überhaupt beginnt auch erst hier die Frickelei. Einen Befehl im Terminal einzugeben (ich hoffe jetzt liest auch Christian mit) hat NICHTS mit Frickelei zu tun. Und fünf Befehle nacheinander in ein Skript zu packen hat nichts mit Programmierung zu tun.

      Natürlich hast Du recht, Otto Normalverbraucher will surfen, ein wenig Office machen, Nachrichten schreiben und ein mit Multimedia herumspielen. Und das geht bei modernen Distris/Desktops sicherlich ganz ohne Terminal. Aber Du schreibst doch in einem anderen Kommentar selbst, dass jedes OS für einen bestimmten Zweck programmiert wurde. Ich würde zwar behaupten, dass alle drei großen OS als Allzwecksysteme gedacht sind, aber ich greife das Argument trotzdem mal auf: Linux und Open Source generell waren immer schon darauf ausgelegt, dass man die Software an die eigenen Bedürfnisse anpassen kann. Und das gilt nicht nur für das Umprogrammieren von Quellcode, sondern auch auf Nutzerebene. Linux wie Windows zu nutzen ist in meinen Augen Verschwendung. Und um den Schock zu vervollständigen: Auch unter Windows greife ich immer wieder mal auf die Kommandozeile zurück – und die CMD macht weiß Gott keinen Spaß, nur geht es eben ab und an nicht anders. Denn ja, mit Windows kann/soll man arbeiten – zu sagen es sei als Spielekonsole konzipiert ist Quark.

      Apropos Arbeit: Gerade wenn man ernsthaft arbeitet ist der Terminal bisweilen ein echter Segen. Ich musste zeitweise immer wieder mal Listen abgleichen und verschmelzen. Zeig mir mal, wie das in einer GUI geht! Wenn Du alle Arbeit auf triviale Standardaufgaben beschränkst, ja gut, dann kann ich Dir zustimmen. Aber Arbeit besteht eben auch aus komplexeren Aufgaben.

      Um das Ganze mal zum Abschluss zu bringen, schließlich gäbe es noch etliche weitere Argumente: Otto Normalverbraucher, der keine besonderen Ansprüche hat, nichts lernen will und sich nur mit trivialen Standardaufgaben abgibt, braucht den Terminal in der Tat nur sehr selten („nie“ bringe ich nicht übers Herz). Das Eintippen von Buchstaben sofort als Frickelei oder gar Programmierung abzutun, bleibt aber völliger Quatsch. Ja, wenn ein umstiegswilliger Windows-Nutzer sowas sieht, verliert er vielleicht die Lust. Aber ich werde den Teufel tun, nur noch Artikel zu schreiben die noch den letzten DAU in ein Komfortzonen-Wattebäuschchen packen. Und mal ernsthaft: Braucht es einen Artikel, um im Startmenü den Eintrag „Systeminformationen“ zu finden? (Gute) GUIs sind doch intuitiv nutzbar – warum also darüber schreiben?

      In diesem Sinne:
      echo tkc0r xuN17 | rev | tr 7,1,N,0 L,i,n,o

Schreibe einen Kommentar zu Mirco Lang Antworten abbrechen

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Schaltfläche "Zurück zum Anfang"
Schließen

Ooopsi!

Bitte deaktiviere Deinen Adblocker.