Linux / Befehl apropos: Befehle nach Beschreibung suchen
apropos ist ein Befehl, der nach Schlüsselwörtern im Namen und der einzeiligen Beschreibung von Handbuchseiten sucht, wenn Sie den genauen Befehlsnamen nicht kennen. Zum Beispiel ist es nützlich, Kandidaten zu finden, wenn Sie die Aufgabe kennen, die Sie ausführen möchten, wie „Dateikomprimierung“, „Benutzererstellung“ oder „Netzwerkadresse“, aber den zugehörigen Befehl nicht kennen.
man -k bietet dieselbe Suchfunktion. Da die Standard-Suchbegriffe als reguläre Ausdrücke verarbeitet werden können, kann das Verständnis der Beziehungen zwischen mehreren Wörtern, exakten Suchanfragen, Platzhaltern und Shell-Zitierregeln genauere Ergebnisse liefern.
Was ist der Befehl apropos?
Jede Handbuchseite hat eine kurze Beschreibung, die ihren Namen und ihre Funktionalität zusammenfasst. apropos durchsucht die Seitennamen und Beschreibungen in der man-db-Indexdatenbank und gibt passende Einträge aus.
Es ist kein Befehl, um den gesamten Handbuchinhalt zu durchsuchen. Daher sind die Ergebnisse schnell und gut geeignet, um themenspezifische Kandidaten zu finden, aber Seiten, die das Schlüsselwort nicht in der Beschreibung enthalten, können nicht erscheinen, selbst wenn der Inhalt verwandte Informationen enthält.
Grundlegende Syntax und Lesen der Ergebnisse
apropos [option] keyword...
Hier ist ein Beispiel für das Finden von Handbüchern, die sich auf das Kopieren von Dateien beziehen.
apropos copy
Typische Ergebnisse haben die folgende Struktur.
cp (1) - copy files and directories scp (1) - OpenSSH secure file copy
Das erste Feld ist der Name der Handbuchseite, die Zahl in Klammern ist der Abschnitt, und die Beschreibung nach dem Bindestrich ist eine einzeilige Erklärung. Sobald Sie den gewünschten Eintrag gefunden haben, geben Sie den Abschnitt an, um die genaue Seite zu öffnen.
man 1 cp man 1 scp
Mehrfach-Keyword-Suchmethoden
Standardmäßig werden Einträge angezeigt, wenn mindestens eines übereinstimmt
Beim Angeben mehrerer Schlüsselwörter können standardmäßig Einträge angezeigt werden, die mindestens eines davon enthalten. Der Suchbereich kann groß werden, was zu zu vielen Ergebnissen führt.
apropos network address
Verwenden Sie -a, wenn alle Schlüsselwörter erforderlich sind
-a oder --and zeigt nur Einträge an, die mit allen angegebenen Schlüsselwörtern übereinstimmen. Dies ist nützlich, um irrelevante Ergebnisse zu reduzieren.
apropos -a network address apropos --and user password
Sie können Anführungszeichen verwenden, um mehrere Wörter zu einem einzigen Suchausdruck zusammenzufassen, aber denken Sie daran, dass die Standardsuche ein regulärer Ausdruck ist.
Reguläre Ausdrücke, exakte Suchen und Platzhalter
Einfache Suche mit regulären Ausdrücken
der apropos von man-db behandelt Schlüsselwörter standardmäßig als reguläre Ausdrücke. Zeichen wie Punkte, Klammern und Sternchen können besondere Bedeutungen haben, daher müssen Sie, um nach ihnen wörtlich zu suchen, sie maskieren oder einen anderen Suchmodus verwenden.
apropos '^ssh' apropos 'file.*system'
Das erste Beispiel findet Teile, die mit ssh im Namen oder in der Beschreibung beginnen, und das zweite Beispiel findet Einträge, bei denen ein beliebiges Zeichen nach file steht und später system erscheint.
Exakte Übereinstimmung -e
-e oder --exact stimmen genau mit dem Schlüsselwort im Seitennamen oder in der Beschreibung überein. Wenn Sie den genauen Seitennamen bereits kennen, könnte whatis einfacher sein.
apropos -e printf
Shell-Style Wildcard -w
-w oder --wildcard behandelt das Schlüsselwort als Shell-Style-Wildcard-Muster. Setzen Sie das Muster in Anführungszeichen, damit die aktuelle Shell das Sternchen nicht zuerst auf Dateinamen erweitert.
apropos -w 'ssh*' apropos --wildcard '*password*'
Suchbereich auf Abschnitte beschränken
Die Verwendung von -s oder --sections zur Begrenzung der Handbuchabschnitte kann Ergebnisse mit demselben Namen aus anderen Dokumenten oder nicht verwandten Einträgen reduzieren.
apropos -s 1 archive apropos -s 2,3 socket apropos --sections=5 password
| Abschnitt | Hauptinhalt |
|---|---|
| 1 | Befehle und Programme, die von allgemeinen Benutzern ausgeführt werden |
| 2 | Systemaufrufe, die vom Linux-Kernel bereitgestellt werden |
| 3 | Programmbibliotheksfunktionen |
| 5 | Konfigurationsdateien und Dateiformate |
| 8 | Systemverwaltungsbefehle, die hauptsächlich von Administratoren verwendet werden |
Die Abschnittsliste kann durch Kommas oder Doppelpunkte getrennt werden. Je nach Implementierung und installierter Dokumentation kann es Unterabschnitte wie 3p oder 3perl geben.
Häufig verwendete Apropos-Optionen
| Option | Beschreibung |
|---|---|
-a, --and |
Gibt nur Elemente aus, die alle Schlüsselwörter enthalten. |
-e, --exact |
Vergleicht Schlüsselwörter genau mit Seitennamen oder Beschreibungen. |
-r, --regex |
Behandelt Schlüsselwörter als reguläre Ausdrücke. Dies ist die Standard-Suchmethode in man-db. |
-w, --wildcard |
Sucht mit Shell-ähnlichen Platzhaltermustern. |
-s list, --sections=list |
Durchsucht nur die angegebenen Handbuchabschnitte. |
-l, --long |
Deaktiviert das Abschneiden von Beschreibungen, um in die Terminalbreite zu passen. |
-M path, --manpath=path |
Geben Sie den Pfad der Handbuchhierarchie an, um direkt zu suchen. |
-L locale, --locale=locale |
Geben Sie vorübergehend die zu verwendende Gebietsschema für die Suche an. |
Was ist die Beziehung zwischen apropos und man -k?
In der man-db-Umgebung ist man -k eine Schnittstelle, die apropos Suchoptionen verwendet. Die folgenden zwei Befehle können für den gleichen Zweck verwendet werden.
apropos filesystem man -k filesystem
Sie können je nach Ihren Gebrauchgewohnheiten wählen. Wenn Sie betonen möchten, dass es sich um einen Prozess des Findens eines Handbuchs handelt, ist man -k geeignet; wenn Sie es als eigenständigen Suchbefehl merken möchten, ist apropos intuitiver.
Punkte, die zu überprüfen sind, wenn keine Suchergebnisse erscheinen
Zu einem allgemeineren Schlüsselwort wechseln
Verwenden Sie englische Wörter, die wahrscheinlich tatsächlich in der Beschreibung enthalten sind. Wenn das übersetzte Handbuch nicht installiert ist, werden die Ergebnisse möglicherweise nicht für einen lokalisierten Suchbegriff angezeigt.
apropos compress apropos archive apropos -a user account
Aktualisierung der Index-Datenbank
Unmittelbar nach der Installation eines neuen Handbuchs oder wenn der Index beschädigt ist, können die Ergebnisse von apropos leer sein. In einer man-db-Umgebung können Sie den Index mit Administratorrechten aktualisieren.
sudo mandb
mandb erstellt oder aktualisiert den Index-Cache der Handbuchseite. Da das System ihn möglicherweise während der Paketinstallation oder periodischer Aufgaben automatisch aktualisiert, ist es nicht erforderlich, ihn ohne Grund wiederholt auszuführen.
Überprüfung der Handbuchpfade und -lokalisierungen
manpath printf '%s\n' "$MANPATH" locale
Wenn Sie MANPATH manuell gesetzt oder Dokumente in einem speziellen Pfad installiert haben, kann die standardmäßige manuelle Hierarchie bei der Suche übersprungen werden. Die Option -M kann verwendet werden, um vorübergehend einen anderen Pfad anzugeben, wenn Probleme diagnostiziert werden.
Verwendung in Shell-Skripten
In man-db gibt apropos 0 zurück, wenn es normal ausgeführt wird, 1 bei Nutzungs- oder Konfigurationsfehlern, 2 bei Betriebsfehlern und 16, wenn keine passenden Ergebnisse vorhanden sind. Durch die Unterscheidung des Beendigungsstatus statt nur zu prüfen, ob die Ausgabe leer ist, können Fehler von fehlenden Suchergebnissen unterschieden werden.
if apropos -e "$1" >/dev/null; then printf '%s\n' 'There are matching manual entries.' else status=$? printf 'Search failed or no results: status=%d\n' "$status" >&2 fi
Die Werte des Beendigungsstatus können in anderen Implementierungen variieren. Überprüfen Sie man apropos auf Ihrem aktuellen System, bevor Sie es für die Automatisierung verwenden.
Vergleich von Befehlen, die apropos ähneln
| Befehl | Zweck |
|---|---|
apropos keyword |
Sucht nach Themen oder Schlüsselwörtern im Seitennamen und in der einzeiligen Beschreibung. |
whatis name |
Überprüft die einzeilige Beschreibung des genauen Handbuchseitennamens. |
man name |
Liest den vollständigen Inhalt der ausgewählten Handbuchseite. |
man -K string |
Durchsucht den gesamten installierten Handbuchtext nach einer Zeichenfolge. Dies kann lange dauern. |
Häufig gestellte Fragen
Kann ich mit lokalisierten Schlüsselwörtern suchen?
Ja, wenn lokalisierte Handbuchbeschreibungen installiert und durch die aktuelle Gebietsschemaeinstellung ausgewählt sind. Viele Systeme beinhalten nur englische Beschreibungen, daher versuchen Sie englische Schlüsselwörter, wenn eine lokalisierte Suche keine Ergebnisse liefert.
Was ist, wenn der Suchbegriff Leerzeichen enthält?
Um es als einzelnen Ausdruck zu übergeben, setzen Sie es in Anführungszeichen. Wenn Sie mehrere unabhängige Schlüsselwörter eingeben und -a verwenden, werden nur Einträge gefunden, bei denen jedes Wort übereinstimmt.
Soll ich apropos anstelle von which verwenden?
Sie haben unterschiedliche Zwecke. apropos findet relevante Handbücher, und command -v oder type prüft, wie der eingegebene Befehlsname tatsächlich interpretiert wird.
Zusammenfassung
apropos ist nützlich, wenn Sie einen Befehl oder ein Dokument anhand von Funktionsschlüsselwörtern finden möchten, ohne seinen Namen zu kennen. Sie können Kandidaten mit der Basissuche finden, mehrere Bedingungen mit -a erfüllen und Abschnitte mit -s eingrenzen, um die Ergebnisse effizient zu organisieren.
Nachdem Sie die gewünschte Seite gefunden haben, öffnen Sie sie mit man zusammen mit der Abschnittsnummer. Weitere grundlegende Befehle finden Sie in der Liste und Übersicht der Linux-Befehle.




