Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sie manche Aufgabe schneller bewältigen als in grafischen Programmen. Wir stellen interessante Anwendungen und Aufrufparameter vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.
Tipp: Wer ist auf dem Rechner angemeldet?
Haben Sie Accounts für andere Benutzer auf Ihrem Computer eingerichtet und würden gerne wissen, wer außer Ihnen angemeldet ist? Auf der Shell können Sie diese Informationen blitzschnell abrufen. Geben Sie einfach w ein und drücken Sie [Eingabe]. Das Kommando zeigt neben allgemeinen Informationen (Uhrzeit, Uptime, Anzahl der angemeldeten Benutzer und Systemlast) eine Liste der eingeloggten Anwender an.
Listing 1
Ausgabe von “w”
$ w 12:39:50 up 17 days, 14:28, 9 users, load average: 2,26 1,99 1,99 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT huhn pts/1 [...] 09Sep16 1:59m 15.94s 15.94s irssi huhn pts/2 [...] 09Sep16 43:25 0.05s 0.05s ssh host.example.com egbert pts/3 [...] 09Sep16 18.00s 2.21s 2.11s mutt hahn pts/4 [...] 12Sep16 4days 0.01s 0.01s /bin/bash [...]
Listing 1 zeigt ein Beispiel – die drei Benutzer huhn, egbert und hahn sind gerade eingeloggt und verwenden unter anderem den IRC-Client Irssi und den Mailclient Mutt. Benutzer huhn hat außerdem eine SSH-Verbindung zum Rechner host.example.com aufgebaut. Die Spalte FROM verrät, von wo aus die Anmeldung erfolgte (IP-Adresse oder Hostname), und die Spalte LOGIN@ zeigt, wann sie stattgefunden hat. JCPU und PCPU zeigen, wie viel Prozessorzeit die von diesem Benutzer gestarteten Programme verbraucht haben. Die allerletzte Spalte (WHAT) verrät Ihnen, welches Programm der- oder diejenige aufgerufen hat.
Alternativ zum Kommando w können Sie auch who am Prompt eingeben. Ohne weitere Optionen aufgerufen, zeigt es lediglich den Namen des Benutzers, wo er angemeldet ist, seit wann und von wo aus die Verbindung kommt, an. Der Befehl kann aber noch mehr, wie der nächste Tipp zeigt.
Tipp: Informationen übers System: “who”
Das Kommando who kann allerhand über einen Rechner verraten. Wenn Sie sich z. B. dafür interessieren, wann der Computer zum letzten Mal gebootet wurde, rufen Sie den Befehl mit der Option -b auf:
$ who -b Systemstart 2016-09-09 22:11
Außerdem kann who tote Prozesse, so genannte Zombies, anzeigen. Dazu hängen Sie den Parameter -d an den Aufruf an. Erscheint keine Ausgabe in der Shell, ist alles in Ordnung.
In der Voreinstellung zeigt who beim Abfragen der eingeloggten Benutzer die Hostnamen der Rechner an, von denen aus die Verbindung erfolgt ist. Möchten Sie stattdessen die IP-Adresse sehen, hängen Sie einfach die Option --ips an den Befehl an. Alternativ wandeln Sie Hostnamen in IP-Adressen (und umgekehrt) mit dem Programm dig um (siehe nächster Tipp).
Tipp: IP-Adressen und Hostnamen auflösen
Dank DNS (Domain Name System) muss niemand lange IP-Adressen auswendig lernen, um andere Rechner im Internet zu erreichen. Wie in einer Art Telefonbuch verwaltet das Domain Name System die Namensräume im Internet und sorgt dafür, dass Sie über www.easylinux.de unsere Website erreichen können – die zugehörige IP-Adresse 195.122.146.187 müssen Sie nicht notieren und in die Adresszeile des Browsers eintippen.
Wer sich dafür interessiert, welche IP-Adresse zu welchem Hostnamen gehört, kann das Programm dig aus dem Paket dnsutils einsetzen. Es nimmt entweder eine IP-Adresse oder einen Hostnamen als Option entgegen – je nachdem, in welche Richtung Sie suchen wollen.
Wollen Sie einen Namen in eine IP-Adresse umwandeln, geben Sie diesen direkt hinter dig an. Die Antwort sehen Sie im Bereich ANSWER SECTION; hinter A steht die Adresse (Abbildung 1). In die andere Richtung fragen Sie über den Parameter -x:
$ dig -x 195.122.146.187 [...] ;; ANSWER SECTION: 187.146.122.195.in-addr.arpa. 3600 IN PTR w4z.linuxnewmedia.de. [...]
Wie Sie sehen, steht hier ein anderer Hostname: w4z.linuxnewmedia.de anstelle von www.easylinux.de. Das kann passieren, wenn ein Server mehrere Websites beherbergt und darum auf mehrere Namen hört, wie in diesem Fall.

Abbildung 1: Mit “dig” lösen Sie Rechnernamen in IP-Adressen auf. Die Antwort (englisch “answer”) steht im Bereich “ANSWER SECTION” (rot umrandet).
Tipp: Kopf und Fuß? “head” und “tail”!
Einfache Textdateien und damit auch die Logfiles Ihres Linux-Rechners können Sie mit einem Programm wie less oder more betrachten. Interessieren Sie sich nur für Ausschnitte, z. B. die ersten oder letzten zehn Zeilen, dann greifen Sie besser zu head (englisch für “Kopf”) bzw. tail (“Schwanz, Ende”). Rufen Sie beispielsweise head /var/log/auth.log auf, um die ersten zehn Zeilen der Protokolldatei einzublenden, die alle Versuche, sich am System anzumelden, notiert. (Dabei ist es egal, ob ein Anwender sich lokal oder über eine SSH-Verbindung einloggt bzw. ob jemand mit sudo Administratorrechte erlangen möchte.) Sollen es statt zehn nur fünf Zeilen sein, setzen Sie hinter -n die Anzahl:
head -n 5 /var/log/auth.log
Ähnlich arbeitet tail, gibt aber die letzten Zeilen aus. Auch dieses Tool zeigt in der Voreinstellung zehn Zeilen an, nimmt aber hinter -n eine andere Zahl entgegen. tail kann aber noch etwas ganz Besonderes: Mit der Option -f “verfolgt” es Dateien, die sich ständig verändern, also Logfiles. Um nicht immer wieder tail /var/log/syslog einzugeben, hängen Sie einfach -f dazwischen:
tail -f /var/log/syslog
Das Tool schaut wie in einer Endlosschleife ständig nach, ob die Datei gewachsen ist. Ist das der Fall, aktualisiert es die Anzeige auf der Shell.
Tipp: Farbe für die Logfiles
Etwas funktioniert nicht wie gewünscht und Sie erhalten den Tipp, einen Blick in ein Logfile zu werfen. Diese Dateien (in der Regel unterhalb von /var/log) protokollieren akribisch, was auf dem System los ist. Besonders übersichtlich sind sie allerdings nicht, auch wenn Sie wie im vorigen Tipp gezeigt die Zeilenanzahl begrenzen. Wer sich eine Weile mit less, head oder tail eine solche Datei angeschaut hat, verliert irgendwann den Überblick.
Bringen Sie doch einfach etwas Farbe ins Spiel – mit dem Tool ccze[1], das Sie bei Kubuntu in den Standard-Repositorys finden und unter OpenSuse via One-Click-Installation einspielen: Unter Kubuntu spielen Sie es mit
sudo apt install ccze
ein, während OpenSuse-Anwender es über eine Suche in der Software-Datenbank [2] finden und dann via One-Click-Installation einrichten.
Je nach Logfile färbt ccze unterschiedliche Blöcke ein und hebt Schlüsselwörter hervor. Sie können ccze zusammen mit tail oder head (siehe vorheriger Tipp) aufrufen; leiten Sie deren Output über das Pipe-Zeichen | einfach an ccze weiter (Abbildung 2).

Abbildung 2: Mit dem kleinen Tool “ccze” färben Sie Logdateien ein. So fallen bestimmte Schlüsselwörter und Ereignisse besser ins Auge.
Tipp: “ccze”: Logfiles in HTML-Dateien umwandeln
Wenn Sie ein mit ccze eingefärbtes Protokoll im Browser betrachten möchten, können Sie den Output ganz leicht im HTML-Format speichern. In diesem Fall verzichten Sie auf den Einsatz von tail, das die Anzeige fortlaufend aktualisiert, sondern nehmen besser cat zur Hilfe. Dieses Programm kann nicht nur mehrere Dateien zu einer zusammenfügen (englisch “to concatenate”), sondern auch einzelne auf der Standardausgabe im Terminal anzeigen. Hinter cat definieren Sie wie gehabt den Namen der Logdatei; es folgt das Pipe-Zeichen |. Der ccze-Befehl erhält als zusätzliche Optionen -h, den Umleitungsoperator > und den Namen der Zieldatei:
cat /var/log/auth.log | ccze -h > test.html
In diesem Beispiel landet der HTML-Quelltext in der Datei test.html, die Sie anschließend im Webbrowser betrachten können (Abbildung 3).

Abbildung 3: Die “ccze”-Option “-h” und der Umleitungsoperator “>” speichern das eingefärbte Protokoll als bunte HTML-Datei ab, die Sie anschließend im Browser anzeigen können.
Um den “Useless use of cat award” [3] zu vermeiden, können Sie auch kürzer
ccze -h < /var/log/auth.log > test.html
schreiben.
Glossar
-
Uptime
-
Die Zeit, die ein Rechner läuft, ohne dass ihn jemand neu gestartet hat. Manche Linux-Server laufen mehrere Monate oder sogar Jahre ohne einen Reboot – bis ein Upgrade mit einem neuen Kernel den Neustart erfordert. Das gleichnamige Kommando
uptimegibt die Anzahl der Tage, Stunden und Minuten aus; die erste Zeile vonwentspricht deruptime-Ausgabe. -
Zombie
-
Ein solcher Prozess ist eigentlich beendet, taucht aber noch in der Liste der Prozesse auf (und belegt geringe Systemressourcen). Er ist bereits beendet, konnte aber seinen Rückgabestatus noch nicht an den Eltern-Prozess übergeben.
Infos
[1] ccze: http://freecode.com/projects/ccze
[2] OpenSuse-Software-Datenbank: https://software.opensuse.org/
[3] Useless use of cat award: http://porkmail.org/era/unix/award.html
