Skip to content

5 Hilfe

5 Hilfe

Lernziele

  • Mit Handbuch und Infoseiten umgehen können

  • HOWTOs kennen und finden können

  • Die wichtigsten anderen Informationsquellen kennen

Vorkenntnisse

  • Linux-Überblick

  • Kenntnisse über Linux auf der Kommandozeile (etwa aus den vorangegangenen Kapiteln)

5.1 Hilfe zur Selbsthilfe

Linux ist ein leistungsfähiges und vielschichtiges System. Leistungsfähige und vielschichtige Systeme sind in der Regel komplex. Ein wichtiges Hilfsmittel zur Beherrschung dieser Komplexität ist Dokumentation. Viele Aspekte von Linux sind sehr ausführlich dokumentiert, wenn auch leider nicht alle. In diesem Kapitel werden einige Methoden zum Zugriff auf die Dokumentation beschrieben.

💡 „Hilfe“ unter Linux bedeutet in vielen Fällen „Selbsthilfe“. Zur Kultur der freien Software gehört auch, dass man die Zeit und das Wohlwollen der Freiwilligen in der Szene nicht unnötig mit Dingen strapaziert, die in den ersten paar Absätzen der Dokumentation erklärt sind. Als Linux-Anwender sollten Sie sich zumindest einen Überblick über die vorhandene Dokumentation und die empfohlenen Quellen für Hilfe verschaffen. Wenn Sie sich informieren, werden Sie in der Regel erfahren, dass Ihnen aus der Klemme geholfen wird. Die Toleranz gegenüber Leuten, die sich auf die faule Haut legen und erwarten, dass sich andere in ihrer Freizeit für sie ins Zeug legen, ist jedoch nicht besonders groß.

💡 Wenn Sie möchten, dass Ihnen auch für nicht gründlich recherchierte Fragen und Probleme rund um die Uhr, sieben Tage die Woche, ein offenes Ohr zur Verfügung steht, müssen Sie auf eines der zahlreichen kommerziellen Support-Angebote zurückgreifen. Diese stehen für alle namhaften Distributionen zur Verfügung, teils vom Anbieter der Distribution selbst und teils von Drittfirmen. Vergleichen Sie die verschiedenen Dienstleister und suchen Sie sich einen aus, dessen Dienstgüteversprechen und Preis Ihnen zusagen.

5.2 Der help-Befehl und die --help-Option

Die in der Shell integrierten Kommandos werden durch den Befehl help und den entsprechenden Befehlsnamen als Argument genauer beschrieben:

$ help exit
exit: exit [n]
Exit the shell with a status of N.
If N is omitted, the exit status
is that of the last command executed.
$ _

💡 Ausführliche Erklärungen finden Sie in den Handbuchseiten sowie in der Info-Dokumentation von Shell. Auf diese Informationsquellen werden wir später in diesem Kapitel näher eingehen. Viele externe Kommandos (Programme) unterstützen stattdessen die Option „--help”. Daraufhin erscheint bei den meisten Befehlen eine kurze Angabe zu den Parametern und der Syntax des Kommandos.

💡 Nicht jedes Kommando reagiert auf --help. Oft heißt die Option -h oder -?, oder die Hilfe wird ausgegeben, wenn Sie eine ungültige Option angeben oder eine ansonsten illegale Kommandozeile eingeben. Leider gibt es dafür keine einheitliche Konvention.

5.3 Die Handbuchseiten

5.3.1 Überblick

Zu fast jedem kommandozeilenorientierten Programm sowie zu vielen Konfigurationsdateien, Systemaufrufen usw. gibt es eine „Handbuchseite“ (engl. manual page oder kurz manpage). Diese Texte werden in der Regel bei der Installation einer Software mitinstalliert und können mit dem Kommando „man ⟨Name⟩” eingesehen werden. Name ist dabei der Befehl oder Dateiname, den Sie erklärt haben möchten. „man bash” liefert beispielsweise eine Auflistung der oben erwähnten internen Kommandos der Shell.

Die Handbuchseiten haben für Anwender allerdings einige Nachteile: Zum einen liegen viele davon nur in englischer Sprache vor. Viele Distributionen bieten mittlerweile mehrsprachige Handbuchseiten an, z. B. über das Debian Man Page Lookup oder tldr-Seiten, die kurze, praxisnahe Beispiele liefern.

💡 Tipp: Installieren Sie tldr mit sudo apt install tldr (Debian/Ubuntu) oder sudo dnf install tldr (Fedora), um die praktischen Kurzanleitungen direkt in der Shell nutzen zu können.

Beispiel: Statt man tar können Sie tldr tar eingeben, um die wichtigsten Optionen mit Beispielen angezeigt zu bekommen.

Die Qualität der Übersetzungen hat sich in den letzten Jahren deutlich verbessert. Andererseits sind die Texte oft sehr komplex. Jedes einzelne Wort kann bedeutsam sein, was Einsteigern den Zugang natürlich erschwert. Gerade bei langen Texten ist die Aufteilung zudem recht unübersichtlich. Dennoch ist der Wert dieser Dokumentation nicht zu unterschätzen. Anstatt den Anwender mit einer Unmenge Papier zu überhäufen, ist die Hilfe immer vor Ort verfügbar.

💡 Viele Linux-Distributionen verfolgen die Philosophie, dass es zu jedem über die Kommandozeile aufrufbaren Programm eine Handbuchseite geben muss. Leider gilt dies nicht im selben Umfang für Programme der grafischen Arbeitsumgebungen KDE und GNOME: Viele davon haben nicht nur keine Handbuchseite, sondern sind auch innerhalb der grafischen Umgebung überaus schlecht dokumentiert. Die Tatsache, dass viele dieser Programme von Freiwilligen erstellt wurden, ist hierfür nur eine schwache Entschuldigung.

5.3.2 Struktur

Der Aufbau der Handbuchseiten folgt grob der in Tabelle 5.1 angegebenen Gliederung. Allerdings enthält nicht jede Handbuchseite alle Punkte. Vor allem die Beispiele kommen oft zu kurz.

Abschnitt Inhalt
NAME Kommandoname mit knapper Funktionsbeschreibung
SYNOPSIS Beschreibung der Befehlssyntax
DESCRIPTION Ausführliche Beschreibung der Kommandowirkung
OPTIONS Die möglichen Optionen
ARGUMENTS Die möglichen Argumente
FILES Benötigte bzw. bearbeitete Dateien
EXAMPLES Beispiele zur Anwendung
SEE ALSO Querverweise auf verwandte Themen
DIAGNOSTICS Fehlermeldungen des Kommando
COPYRIGHT Autor(en) des Kommandos
BUGS Bekannte Fehler des Kommandos

Tabelle 5.1: Gliederung der Handbuchseiten

💡 Die Überschrift „BUGS” wird häufig missverstanden. Echte Fehler in der Implementierung müssen natürlich behoben werden. Was hier dokumentiert wird, sind in der Regel Einschränkungen, die sich aus dem Ansatz des Kommandos ergeben, die sich nicht mit vertretbarem Aufwand beheben lassen und über die Sie als Anwender Bescheid wissen sollten. In der Dokumentation zum Kommando grep wird beispielsweise darauf hingewiesen, dass bestimmte Konstrukte im zu suchenden regulären Ausdruck dazu führen können, dass ein grep-Prozess sehr viel Speicher benötigt. Dies ist eine Konsequenz der Implementierung des Suchens durch grep und kein trivialer, leicht zu behebender Fehler.

Nr. Themenbereich
1 Benutzerkommandos
2 Systemaufrufe
3 Funktionen der Programmiersprache C
4 Gerätedateien und Treiber
5 Konfigurationsdateien und Dateiformate
6 Spiele
7 "Diverses (z. B. groff-Makros, ASCII-Tabelle, …)"
8 Kommandos zur Systemadministration
9 Kernel-Funktionen
n »Neue« Kommandos

Tabelle 5.2: Themenbereiche der Handbuchseiten

Handbuchseiten werden in einem speziellen Format geschrieben, das mit dem Programm groff für die Anzeige in einem Textterminal oder den Ausdruck aufbereitet werden kann. Die Quelltexte für die Handbuchseiten liegen im Verzeichnis /usr/share/man in Unterverzeichnissen der Form man𝑛, wobei 𝑛 einer der Kapitelnummern aus Tabelle 5.2 entspricht.

💡 Sie können Handbuchseiten in anderen Verzeichnissen integrieren, indem Sie die Umgebungsvariable MANPATH setzen. Diese benennt die von man durchsuchten Verzeichnisse und deren Reihenfolge. Das Kommando manpath gibt Tipps für die MANPATH-Einstellung.

5.3.3 Kapitel

Jede Handbuchseite gehört zu einem „Kapitel” im konzeptuellen Gesamthandbuch (siehe Tabelle 5.2). Wichtig sind vor allem die Kapitel 1, 5 und 8. Sie können im Man-Kommando eine Kapitelnummer angeben, um die Suche einzuschränken. So zeigt beispielsweise „man 1 crontab” die Handbuchseite zum crontab-Kommando und „man 5 crontab” die Handbuchseite, die das Format von crontab-Dateien erklärt. Wenn auf Handbuchseiten verwiesen wird, wird das Kapitel gerne in Klammern angehängt. Wir unterscheiden also zwischen „crontab(1)”, der Anleitung für das „crontab”-Kommando, und „crontab(5)”, der Beschreibung des Dateiformats.

Mit dem Parameter -a werden die zum Suchbegriff gehörenden Handbuchseiten aller Kapitel nacheinander angezeigt, ohne diesen Schalter wird nur der erste gefundene Text, also meist der aus Kapitel 1, dargestellt.

5.3.4 Handbuchseiten anzeigen

Als Anzeigeprogramm für das Kommando „man” ist in der Regel „less” voreingestellt, das noch ausführlich besprochen wird. Wichtig ist nur, dass Sie sich mit den Cursortasten „↑” und „↓” durch den Handbuchtext bewegen können. Innerhalb des Textes können Sie nach Drücken der Taste / ein Stichwort suchen. Nachdem Sie das Wort eingetippt und abschließend die Eingabetaste betätigt haben, springt der Cursor zum gesuchten Wort – sofern es im aktuellen Text vorkommt. Wenn Sie alle gewünschten Informationen erhalten haben, können Sie die Anzeige durch Drücken der Taste q beenden und zur Shell zurückkehren.

💡 Mit dem KDE-Webbrowser Konqueror ist es möglich, ansprechend formatierte Handbuchseiten bequem anzuzeigen. Geben Sie dazu in der Adresszeile des Browsers den URL „man:/⟨Name⟩” oder einfach nur „#⟨Name⟩” an. Dasselbe funktioniert auch in der KDE-Befehlszeile.

Bevor Sie sich planlos durch die unzähligen Dokumentationen arbeiten, ist es oft sinnvoll, allgemeine Informationen zu einem Stichwort mittels apropos abzurufen. Dieses Kommando funktioniert genauso wie „man -k“. Beide suchen in den „NAME“-Abschnitten aller Handbuchseiten nach dem entsprechenden Stichwort. Als Ausgabe erhalten Sie eine Liste mit allen Handbuchseiten, die einen Eintrag zu dem eingegebenen Thema enthalten.

Das Kommando whatis (engl. „was ist”) ist verwandt. Auch dieses sucht in allen Handbuchseiten, allerdings nicht nach einem Stichwort, sondern nach dem eingegebenen Namen. Auf diese Weise erscheint eine kurze Beschreibung des mit dem Namen verbundenen Kommandos, Systemaufrufs o. Ä. – also der zweite Teil des „NAME“-Abschnitts der gefundenen Handbuchseite(n). whatis ist äquivalent zu „man -f“.

Übungen

✏️ 5.1 [!1] Schauen Sie sich die Handbuchseite zum Programm ls an. Benutzen Sie dazu das textbasierte Programm „man“ oder moderne Alternativen wie tldr ls. Falls vorhanden, können Sie auch den Konqueror-Browser oder Online-Wikis nutzen.

✏️ 5.2 [2] Welche Handbuchseiten auf Ihrem System beschäftigen sich mit Prozessen? Jedenfalls mit dem NAME-Abschnitt.

✏️ 5.3 [5] (Für Fortgeschrittene) Verwenden Sie einen Editor, um eine Handbuchseite für ein hypothetisches Kommando zu erstellen. Lesen Sie dazu vorher die Handbuchseite man(7). Prüfen Sie das Aussehen der Handbuchseite auf dem Bildschirm (mit „groff -T ascii -man ⟨Datei⟩ | less”) und in der Druckansicht (mit „groff -T ps -man ⟨Datei⟩ | gv -”).

5.4 Die Info-Seiten

Für einige, oft komplexere Kommandos gibt es zusätzlich zur Handbuchseite sogenannte Info-Seiten. Sie sind in der Regel ausführlicher und basieren auf den Prinzipien von Hypertext, ähnlich wie das World Wide Web. Hypertext

💡 Die Idee der Info-Seiten stammt aus dem GNU-Projekt. Man findet sie daher vor allem bei Software, die von der FSF veröffentlicht wird oder anderweitig zum GNU-Projekt gehört. Ursprünglich sollte es im „GNU-System” nur Info-Dokumentation geben. Da GNU jedoch zahlreiche Software integriert, die nicht unter der Ägide der FSF erstellt wurde, und da die GNU-Werkzeuge auch auf Systemen eingesetzt werden, die einen konservativeren Ansatz verfolgen, ist die FSF in vielen Fällen nachgiebig geworden.

Bild 5.1: Eine Handbuchseite im Textterminal (links) und im Konqueror (rechts).

Info-Seiten (aufrufbar mit info <Kommando>) sind besonders bei GNU-Software verbreitet. Viele Projekte setzen heute jedoch auf moderne Alternativen wie Online-Wikis (z. B. Arch-Wiki) oder HTML-Dokumentation. Daneben können die Infoseiten auch mit dem Editor Emacs betrachtet oder im KDE-Browser Konqueror über URLs der Form „info:/⟨Kommando⟩” aufgerufen werden.

Ein Vorteil von Info-Seiten ist, dass sie sich (ähnlich wie Handbuchseiten) in einem Quellformat schreiben lassen, das automatisch für die Bildschirmanzeige und das Ausdrucken von Handbüchern im PostScript- oder PDF-Format aufbereitet werden kann. Statt groff wird hierfür das Programm TEX verwendet.

Info-Seiten sind besonders bei GNU-Software verbreitet, aber viele Projekte setzen heute auf moderne Formate wie Markdown oder Wiki-Systeme.

Übungen

✏️ 5.4 [!1] Schauen Sie sich die Info-Seite zum Programm ls an. Probieren Sie den textbasierten Info-Dienst und, falls vorhanden, den Konqueror-Browser aus.

✏️ 5.5 [2] Info-Dateien realisieren eine primitive Form von Hypertext, die den HTML-Seiten im World Wide Web ähnelt. Warum werden die Info-Dateien nicht gleich in HTML geschrieben?

5.5 Die HOWTOs

Das Problem bei den Handbuch- und Info-Seiten ist, dass man im Grunde schon wissen muss, wie das gewünschte Kommando heißt. Auch die Suche mit apropos ist oft Glückssache. Außerdem lässt sich nicht jedes Problem auf ein spezielles Kommando reduzieren. Es besteht also Bedarf für eine »problemorientierte« statt »kommandoorientierte« Dokumentation. Dafür gibt es die HOWTOs. Die HOWTOs sind umfassendere Dokumente, die nicht nur einzelne Kommandos, sondern komplette Problemlösungen behandeln. So gibt es beispielsweise ein „DSL-HOWTO“, das detailliert beschreibt, wie man einen Linux-Rechner per DSL ans Internet anschließt, oder ein „Astronomy-HOWTO“, das Astronomiesoftware für Linux diskutiert. Viele HOWTOs gibt es auch auf Deutsch. Bei Übersetzungen kann es jedoch sein, dass die deutsche Version dem Original hinterherhinkt. (Einige HOWTOs sind von Anfang an auf Deutsch verfasst.)

Die meisten Linux-Distributionen ermöglichen es, die HOWTOs (oder eine signifikante Teilmenge davon) als Paket zu installieren. Sie befinden sich dann in einem distributionsabhängigen Verzeichnis, beispielsweise /usr/share/doc/howto bei den SUSE-Distributionen oder /usr/share/doc/HOWTO bei Debian GNU/Linux. Typischerweise sind sie entweder als einfache Textdokumente oder im HTML-Format verfügbar. Aktuelle Anleitungen und HOWTOs finden sich zunehmend in Wikis (z. B. Arch-Wiki oder Debian-Dokumentation) oder auf Plattformen wie GitHub. Das Linux Documentation Project (LDP) pflegt weiterhin viele Dokumente, aber einige sind veraltet und sollten kritisch geprüft werden.

Aktuelle Anleitungen finden sich oft in Wikis wie dem Arch-Wiki oder der Debian-Dokumentation, die regelmäßig gepflegt werden.

5.6 Weitere Informationsquellen

Zu fast jedem installierten Softwarepaket finden Sie auf Ihrem Rechner unter /usr/share/doc bzw. /usr/share/doc/packages weitere Dokumentation und Beispieldateien. Für Programme unter der grafischen Oberfläche (z. B. KDE oder GNOME) gibt es außerdem entsprechende Hilfemenüs. Viele Distributionen bieten auch spezielle Hilfe-Center, die einen bequemen Zugang zur Dokumentation der verschiedenen Pakete gestatten.

Unabhängig vom lokalen Rechner gibt es im Internet Unmengen an Dokumentation, unter anderem im WWW und in Usenet-Archiven. Einige interessante Seiten für Linux sind die folgenden:

  • The Linux Documentation Project (LDP): Historisch wichtige Sammlung von Handbuchseiten und HOWTOs, aber viele Dokumente sind nicht mehr aktuell. Für zuverlässige Informationen empfehlen sich stattdessen:
  • Arch-Wiki (als eine der besten Quellen für aktuelle, distributionsübergreifende Dokumentation)
  • Debian-Dokumentation
  • Ubuntuusers-Wiki
  • Red Hat Documentation – Offizielle Dokumentation für RHEL-basierte Systeme.
  • Linux-Magazin-Archiv – Enthält viele praxisnahe Artikel und Tutorials.
  • http://www.linux.org/: Ein allgemeines „Portal” für Linux-Interessierte. (Englisch)
  • http://www.linuxwiki.de/ Eine „Freiform-Text-Informationsdatenbank für alles, was mit GNU/Linux zusammenhängt”.
  • http://lwn.net/ Linux Weekly News – die vermutlich beste Webpräsenz für Linux-Neuigkeiten aller Art. Neben einer täglichen Übersicht über die neuesten Entwicklungen, Produkte, Sicherheitslücken, Äußerungen pro und contra Linux in der Presse usw. erscheint jeden Donnerstag eine umfassende Online-Zeitschrift mit gründlich recherchierten Hintergrundberichten rund um die Vorkommnisse der Woche davor. Die täglichen Neuigkeiten sind frei zugänglich, während die wöchentliche Ausgabe kostenpflichtig abonniert werden muss (verschiedene Preisstufen ab 5 US-Dollar pro Monat). Eine Woche nach Erscheinen kann man auch auf die wöchentlichen Ausgaben kostenfrei zugreifen. (Englisch)

  • http://freecode.com/ Hier erscheinen Ankündigungen neuer (vornehmlich freier) Softwarepakete, die meist auch unter Linux zur Verfügung stehen. Daneben gibt es eine Datenbank, in der man nach interessanten Projekten oder Softwarepaketen recherchieren kann. (Englisch)

  • http://www.linux-knowledge-portal.de/ ist eine Seite, die „Schlagzeilen” anderer interessanter Linux-Seiten zusammenträgt (darunter auch Linux Weekly News oder Freshmeat). (Deutsch/Englisch)

Wenn Sie im WWW oder in USENET-Archiven keine Informationen finden, können Sie Ihre Frage in Mailinglisten oder USENET-Newsgruppen stellen. Dabei sollten Sie jedoch beachten, dass viele Benutzer solcher Foren verärgert reagieren, wenn Sie Fragen stellen, deren Antworten offensichtlich im Handbuch oder in FAQ-Sammlungen (engl. „frequently asked questions”) zu finden sind. Versuchen Sie, eine gründliche Problembeschreibung vorzubereiten und diese zum Beispiel mit relevanten Auszügen aus Protokolldateien zu untermauern. Ohne diese ist eine „Ferndiagnose” eines komplexen Problems nicht möglich (und die nicht komplexen Probleme können Sie ja sicher selbst lösen).

💡 Zugriff auf ein Newsarchiv finden Sie u. a. unter http://groups.google.de/ (ehemals DejaNews).

💡 Interessante Newsgroups für Linux finden Sie in englischer Sprache in der comp.os.linux.-Hierarchie und auf Deutsch in der de.comp.os.unix.linux.-Hierarchie. Für viele Linux-Themen sind auch die entsprechenden Unix-Gruppen passend. Eine Frage zur Shell sollte beispielsweise in de.comp.os.unix.shell und nicht in de.comp.os.unix.linux.misc gestellt werden, da Shells zumeist keine Linux-spezifischen Programme sind.

💡 Linux-orientierte Mailinglisten gibt es unter anderem bei majordomo@vger.kernel.org. Dabei handelt es sich um eine E-Mail-Adresse, an die Sie eine Nachricht mit dem Text „subscribe LISTE” schicken müssen, um die Liste LISTE zu abonnieren. Eine kommentierte Aufstellung aller angebotenen Listen finden Sie unter http://vger.kernel.org/vger-lists.html.

💡 Eine probate Strategie zum Umgang mit scheinbar unerklärlichen Problemen besteht darin, die betreffende Fehlermeldung bei Google (oder einer anderen Suchmaschine Ihres Vertrauens) einzugeben. Wenn Sie nicht gleich ein hilfreiches Ergebnis erzielen, lassen Sie bei der Anfrage Teile weg, die von Ihrer speziellen Situation abhängen (etwa Dateinamen, die es nur auf Ihrem System gibt). Der Vorteil ist, dass Google nicht nur die gängigen Webseiten, sondern auch viele Archive von Mailinglisten indiziert und die Chancen gut stehen, dass Sie auf einen Dialog stoßen, in dem jemand anderes ein sehr ähnliches Problem hatte wie Sie.

Der große Vorteil von Open-Source-Software ist übrigens nicht nur die riesige Menge an Dokumentation, sondern auch, dass die meisten Dokumente ähnlich wenige Restriktionen unterliegen wie die Software selbst. Dadurch ist eine umfassendere Zusammenarbeit von Softwareentwicklern und Dokumentationsautoren möglich und die Übersetzung von Dokumentationen in andere Sprachen ist einfacher. Tatsächlich gibt es genügend Gelegenheit für Nichtprogrammierer, freien Entwicklungsprojekten zuzuarbeiten, indem sie beispielsweise dabei helfen, gute Dokumentation zu erstellen. Die Freie-Software-Szene sollte versuchen, Dokumentationsautoren dieselbe Achtung entgegenzubringen wie Programmierern. Dieser Umdenkprozess hat zwar eingesetzt, ist aber noch bei weitem nicht abgeschlossen.

5.7 Kommandos in diesem Kapitel

Kommando Beschreibung manpage
apropos Zeigt alle Handbuchseiten mit dem angegebenen Stichwort im ”NAME“ Abschnitt apropos(1)
groff Programm zur druckreifen Aufbereitung von Texten groff(1)
help Zeigt Hilfe für bash-Kommandos bash(1)
info Zeigt GNU-Info-Seiten auf einem Textterminal an info(1)
less Zeigt Texte (etwa Handbuchseiten) seitenweise an less(1)
man Zeigt Handbuchseiten des Systems an man(1)
manpath Bestimmt den Suchpfad für Handbuchseiten manpath(1)
whatis Sucht Handbuchseiten mit dem gegebenen Stichwort in der Beschreibung whatis(1)

5.8 Zusammenfassung

  • Interne Kommandos der Bash werden mit »help ⟨Kommando⟩« erklärt. Externe Kommandos unterstützen oft die Option --help.

  • Handbuchseiten (man) und moderne Alternativen wie tldr bieten schnelle Hilfe. apropos durchsucht Handbuchseiten nach Stichwörtern, whatis liefert kurze Beschreibungen zu Kommandos.

  • Info-Seiten sind für manche Programme eine Alternative zu Handbuchseiten.

  • HOWTOs stellen eine problemorientierte Form der Dokumentation dar.

  • Es gibt eine Vielzahl interessanter Linux-Ressourcen im World Wide Web und im Usenet.