Mit der Linux-Hilfe flott und direkt zum Ziel

Aus LinuxUser 11/2023

Mit der Linux-Hilfe flott und direkt zum Ziel

© Jievani Priyanka Weerasinghe / 123RF.com

Hilfeersuchen

Wer heute Hilfe zu Linux-Themen sucht, bemüht die Suchmaschine seiner Wahl. Dabei fiele es leicht, auf einer Linux-Maschine direkt gute Hilfe zu bekommen.

Suchen Sie im Internet nach Fragestellungen rund um Linux, erscheinen unter den Top-5-Fundstellen Domains wie http://unix.stackexchange.com oder http://superuser.com. Sie gehören zum großen, renommierten Stack Exchange Network, das durch ausgeklügelte Scoring- und Ranking-Mechanismen dafür sorgt, dass unpassende oder falsche Antworten gar nicht erst veröffentlicht werden. Doch warum in die Ferne schweifen, wenn das Hilfreiche so nah liegt? Linux bringt von Haus aus einen imposanten Schatz an Dokumentation mit.

Apropos

Wenn es um Linux-Hilfe geht, empfehle ich nicht nur Einsteigern grundsätzlich das Kommando apropos. Vermutlich kennen Sie die Situation, Hilfe zu einem ganz bestimmten Thema zu benötigen, aber nicht zu wissen, in welchem Heuhaufen Sie mit der Suche beginnen sollen. Hier springt Ihnen Apropos zur Seite. Das Werkzeug findet sich in praktisch jeder handelsüblichen Distribution und durchsucht sämtliche vorhandenen Manpages nach Schlagworten. Das Spektrum erstreckt sich dabei von einem einzelnen Wort bis hin zu regulären Ausdrücken.

Sehen wir uns dazu einige Beispiele an. Die ersten drei Kommandos aus Listing 1 sind alle äquivalent. Apropos durchforstet die Handbuchseiten standardmäßig mit der Option --regex. Wenn Sie mit regulären Ausdrücken vertraut sind, erkennen Sie, dass sich die Regex-Suche nach “move” und die exakte Suche nach “move” mangels Spezialzeichen nicht unterscheiden. Alle anderen können einen Blick in einen schon etwas älteren Artikel [1] zum Thema Regex werfen, der in die Thematik einführt.

Listing 1

Apropos

### Suche
$ apropos move
$ apropos --exact move
$ apropos --regex move
### Sektionssuche
$ apropos --section=1 move
### Exakte Suche
$ apropos --section=1 --exact move
$ apropos --section=1 '\<move\>'
### Kontextsuche
$ apropos --section=1 --and git "\<move\>"

Auf meinem Testsystem spuckt Apropos als Ergebnis unbefriedigenderweise jede Menge Treffer aus, insgesamt 66. Allerdings unterteilen sich die Linux-Handbücher in Sektionen, sodass ich mir auf der Suche nach einem Programm zum Verschieben von Dateien nur die Sektion 1 vornehmen muss (Listing 1, Zeile 6). Die Einschränkung auf ausführbare Programme und Shell-Befehle hat die Ergebnismenge auf 21 Treffer reduziert, was mir immer noch nicht genügt. Außerdem erscheinen Treffer für “remove” (Abbildung 1).

Abbildung 1: Die Ergebnismenge ist von&nbsp;66 auf 21&nbsp;Treffer geschrumpft, enth&auml;lt jedoch unerw&uuml;nschte Treffer f&uuml;r "remove".

Abbildung 1: Die Ergebnismenge ist von 66 auf 21 Treffer geschrumpft, enthält jedoch unerwünschte Treffer für “remove”.

Möchten Sie ausschließlich Hilfe zu Kommandos mit exakt dem Wort “move” erhalten, müssen Sie entweder den Schalter --exact oder einen passenden regulären Ausdruck verwenden. Ein Regex, der auf “move” passt, nicht aber auf “remove”, ist \<move\>. Hier markieren die spitzen Klammern mit vorangestelltem Backslash Wortanfang und -ende. Die Kommandos aus den Zeilen 8 und 9 von Listing 1 tun also dasselbe.

Mit dieser Suche dezimiert sich mein Listing auf übersichtliche sechs Treffer, inklusive des Linux-Kommandos mv – ein Ergebnis, mit sich weiterarbeiten lässt. Häufig möchte ich meine Suche durch mehrere Begriffe präzisieren, etwa “move” im Kontext von “git”. Dazu erlaubt Apropos die Konjunktion von Suchbegriffen per --and. Das Kommando aus der letzten Zeile von Listing 1 liefert genau zwei Handbuchseiten (Abbildung 2).

Wer nicht bereits ein ganz konkretes Handbuch im Sinn hat, findet in Apropos einen exzellenten ersten Ansatzpunkt. Die Dokumentation stellen die bereits erwähnten Handbuchseiten selbst bereit, die Linux-Benutzer unter dem Namen Manpages kennen.

Abbildung 2: Apropos erlaubt, zwei Suchbegriffe zu kombinieren, was die Ergebnisliste weiter eingrenzt.

Abbildung 2: Apropos erlaubt, zwei Suchbegriffe zu kombinieren, was die Ergebnisliste weiter eingrenzt.

Manpages

Die Linux-Handbuchseiten bilden das Rückgrat der Linux-Dokumentation. Sobald Sie die Manpages von Find, Awk, Lsof oder Ssh öffnen, stoßen Sie auf Dutzende Bildschirmseiten Dokumentation, die sich in stets identische Kapitel gliedern.

Das gewährleistet, dass Manpages einen gewissen Standard einhalten und man sich leichter zurechtfindet. Das Kommando man nutzt zur Anzeige der Manpages einen Pager, also ein Programm, das Texte seitenweise ausgibt. Unter Linux dienen dazu More oder heute üblicher Less. Mit diesem Wissen suchen Sie innerhalb von einer Manpage per [Umschalt]+[ 7] vorwärts und per [Umschalt]+[ß] rückwärts. Darüber hinaus lassen sich Suchen per [N] vorwärts und per [Umschalt]+[N] rückwärts wiederholen.

Bereits bei Apropos bin ich auf die Sektionen eingegangen, die Manpages thematisch aufschlüsseln. Sektion 1 dokumentiert beispielsweise ausführbare Programme und Shell-Befehle, Sektion 2 dagegen Systemaufrufe, also Kernel-Funktionen. Die vollständige Liste entnehmen Sie bitte der Manpage von man oder der Tabelle “Man-Sektionen”.

Sektion

Inhalt

1

Ausführbare Programme, Shell-Befehle

2

Systemaufrufe (Kernel-Funktionen)

3

Bibliotheksaufrufe (Bibliotheksfunktionen)

4

Spezielle Dateien (meist in /dev)

5

Dateiformate und Konventionen

6

Spiele

7

Verschiedenes (etwa Makropakete, Konventionen)

8

Befehle für die Systemverwaltung

9

Kernel-Routinen (nicht Standard)

Diese Gliederung gibt Ihnen eine weitere Möglichkeit an die Hand, die passende Dokumentation zu finden. Möchten Sie zum Beispiel die genaue Funktionsweise des Kommandos file kennenlernen, besuchen Sie die dazugehörige Manpage aus Sektion 1. Das funktioniert implizit via man file und explizit via man 1 file. Möchten Sie dagegen als C-Programmierer mehr zum I/O-Stream FILE aus der Standard-C-Bibliothek Libc wissen, sehen Sie in die Sektion 3: man 3 file.

Manpages stellt, wie erwähnt, für gewöhnlich der Pager Less dar. Das genügt oft, was aber keineswegs bedeutet, dass es keine anderen Möglichkeiten gibt. Möchte ich etwa die Man-Sektionen in meine persönlichen Notizen einbinden, exportiere ich die betreffenden Informationen einfach. Im entsprechenden Aufruf aus Listing 2 dient Cat statt Less als Pager und schreibt die komplette Manpage nach stdout. Hieraus greppe ich die Zeile “Ausführbare Programme” inklusive der nachfolgenden neun Zeilen (Schalter -A9) und leite die Ausgabe in die Datei man-sections.txt um. Voilà, schon kann ich den Inhalt der Manpage im Tool meiner Wahl weiterverarbeiten.

Listing 2

Dateiausgabe

$ man -P cat man | grep -A9 "Ausführbare Programme" > man-sections.txt

Troff/Groff: GNU Roff

Bereits in den 1960er-Jahren entwickelte AT&T ein Textsatzsystem namens RUNOFF, das 1971 erstmals Einzug in Unix hielt. Dessen Abkömmlinge GNU Troff beziehungsweise Groff haben sich bis heute als Standardformat für Manpages erhalten. Die Syntax von Troff lässt sich schnell erlernen. Dementsprechend lohnt es sich, das Textsatzsystem für eigene Dokumentation in Betracht zu ziehen. Listing 3 zeigt ein einfaches Troff-Dokument mit Man-Makros.

Listing 3

Manpage in Troff

.TH Beispieldokument\ im\ Groff-Man-Format
.SH ÜBERSICHT
.PP
Möglichkeiten zum strukturierten Ablegen von Informationen gibt es wie Sand am Meer, von Plaintext über \fBMarkdown\fP, \fBreStructuredText (reST)\fP, Textsatzsysteme wie \fBtroff\fP und \fBLaTeX\fP, Markup-Sprachen wie HTML, XML und SGML bis hin zu binären Formaten wie Word DOC.
.PP
Ich bin kein Freund von proprietären Binärformaten, da hier stets die Gefahr droht, Wissen aufgrund von Patentrechten zu verlieren. Plaintext-Formate sind deswegen zu bevorzugen.
.PP
Auch wenn LaTeX praktisch alle denkbaren Anwendungsfälle abdeckt, ist es doch mitunter unübersichtlich und nur bedingt einsteigerfreundlich. Zudem fehlt bei TeX die strenge Trennung von Inhalt und Darstellung. Markdown eignet sich hier deutlich besser, ist leicht erlernbar und dank Tools wie \fIPandoc\fP universell wandelbar.

.TH steht für Title Heading, also den Dokumententitel. .SH definiert eine Abschnittsüberschrift (Section Heading), und .PP markiert einen Abschnittsbeginn. Im Text bezeichnet \fB den Start von fettgedrucktem Text und \fP dessen Ende. \fI und \fP tun dasselbe für kursiv gedruckten Text. Eine vollständige Übersicht liefert der Aufruf man 7 groff_man. Das Umwandeln in Postscript funktioniert ähnlich einfach wie bei LaTeX (Listing 4).

Listing 4

Groff ausgeben

$ groff -man -K utf-8 groff.man > groff.ps

Mit über 60 Jahren auf dem Buckel leistet Troff heute immer noch gute Dienste. Spätestens dann, wenn Sie eigene Open-Source-Software entwickeln möchten, sollten Sie sich mit dem System auseinandersetzen.

Infopages

Neben dem Unix-Urgestein Man steht mit GNU Info ein weiteres System zur Dokumentation zur Verfügung. Es verwendet als Quellformat Texinfo, eine TeX-Variante. Die Info-Seiten enthalten oft aktuellere und umfangreichere Inhalte als die Manpages. Allerdings verwendet das Anzeigewerkzeug Info die Keybindings von Emacs, was mich persönlich immer wieder verwirrt.

Info bringt ebenfalls eine Apropos-Funktion mit. Mit dem entsprechenden Parameter info --apropos=Suchbegriff beziehungsweise der Kurzform info -k Suchbegriff aufgerufen, listet das Werkzeug eine Reihe passender Dokumente auf. Als sehr hilfreich empfinde ich die Möglichkeit, Seiten per info --output=Datei Info-Seite in eine Datei umzuleiten, die sich anschließend wie gewohnt mit Less oder Vim anzeigen respektive bearbeiten lässt.

Fazit

Wer unter Linux Dokumentation benötigt, braucht mitnichten Webbrowser und Suchmaschine zu bemühen. Die über die Man- und Infopages mitgelieferte Dokumentation lässt keine Fragen offen und enthält in der Regel viel verlässlichere Hilfe als so manche Webseite. (jlu)

Infos

  1. Reguläre Ausdrücke: Frank Hofmann, “Schnipseljagd”, LU 06/2015, S. 10, https://www.linux-community.de/35006

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 11/2023 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben