Tricks und Tipps zum Auffinden von Informationen in Manpages [geschlossen]

80

Hat jemand irgendwelche Tricks und Tipps, um Informationen in Manpages zu finden?

Casebash
quelle
1
man --help/ man -hund sein vollständigeres Geschwister man manhat Such- und Navigationstipps.
Anton Tarasenko

Antworten:

51

Achten Sie auf die Abschnittsnummer: Angenommen, Sie möchten Hilfe zu printf. Es gibt mindestens zwei davon: in Shell und in C. Die Bash-Version von printf befindet sich in Abschnitt 1, die C-Version in Abschnitt 3 oder 3C. Wenn Sie nicht wissen, welche Sie möchten, geben Sie Folgendes ein man -a printf, und alle Handbuchseiten werden angezeigt.

Wenn Sie nach dem Format printf mit allen% -Codes suchen und es nicht auf der printf-Manpage angezeigt wird, können Sie zu den zugehörigen Manpages springen, die unter AUCH ABSCHNITT SEHEN aufgeführt sind. Möglicherweise finden Sie so etwas formats(5), das Sie zum Tippen auffordert man 5 formats.

Wenn Sie sich darüber ärgern, dass man printfSie printf (1) erhalten und nur printf (3) möchten, müssen Sie die Reihenfolge der durchsuchten Verzeichnisse in der MANPATHUmgebungsvariablen ändern und die Verzeichnisse für die Sprache C vor die Verzeichnisse für die Shell-Befehle setzen. Dies kann auch passieren, wenn Fortran- oder TCL / Tk-Manpages vor C-Manpages aufgeführt sind.

Wenn Sie nicht wissen, wo Sie anfangen sollen man intro, geben Sie oder ein man -s <section> intro. Dies gibt Ihnen eine Zusammenfassung der Befehle des angeforderten Abschnitts.

Abschnitte sind gut definiert:

  • 1 ist für Shell-Befehle,
  • 2 ist für Systemaufrufe,
  • 3 ist für Programmierschnittstellen (manchmal 3C für C, 3F für Fortran ...)
  • 5 ist für Dateiformate und andere Regeln wie PrintF- oder Regex-Formate.

Last but not least: Die in Manpages bereitgestellten Informationen sind nicht redundant. Lesen Sie sie daher von Anfang bis Ende sorgfältig durch, um die Wahrscheinlichkeit zu erhöhen, dass Sie das finden, was Sie benötigen.

mouviciel
quelle
11
Auf den meisten Systemen finden Sie man maneine vollständige Beschreibung der verschiedenen Abschnitte.
Steven D
1
Es wäre cool, wenn es ein Programm gäbe, um eine Seite nach einem «Schlüsselwort» zu durchsuchen. Dh ich konnte mich vor kurzem nicht mehr an den Namen der c-Funktion erinnern, um eine Teilzeichenfolge (the strstr()) zu finden , und ich hatte kein Internet in meiner Nähe.
Hi-Angel
3
@ Hi-angel man -k substringoder apropos substringhätte dir geholfen.
Kusalananda
58

Geben Sie einen Schrägstrich ein /und geben Sie dann die Zeichenfolge ein, nach der gesucht werden soll. Drücken Sie dann weiter n, um zum nächsten Element zu gelangen

Alexander Pogrebnyak
quelle
37

man -k suche

Dies gibt Ihnen eine Liste aller Manpages, die sich auf 'Suche' beziehen.

Kristof Provost
quelle
2
Und alle Menschen Seiten aufzulisten , die beziehen sich auf ‚Suche‘ in bestimmtem Abschnitt (Nummer 3, zum Beispiel) man dies nutzen könnte: man -k search -s 3 Auch erwähnt in superuser.com/a/677969/599957
kenichi
Ich weiß, Kommentare wie diese sind verpönt, aber danke, danke, danke! Ich habe buchstäblich schon länger nach einem solchen Befehl gesucht, als ich zugeben möchte ... Jahre !!
MikeyE
19

Vergessen Sie nicht, wie @Steven D sagt, die infoSeiten.

Lassen Sie sich außerdem nicht von den infoSeiten einschüchtern . Ich kenne viele Leute, die die Infoseiten wegen des eingebauten Navigationssystems nicht benutzen. Meine Lieblingslösung besteht darin, die Infoseiten durchzuleiten less:

info gpg |less

Auf diese Weise kann ich infomit meinem bevorzugten Pager durch die Seiten navigieren . Die infoSeiten verhalten sich jetzt wie manSeiten.

Stefan Lasiewski
quelle
1
Hey, das ist ein großartiger Tipp zur Navigation
Glenn Jackman
18

Das aproposDienstprogramm ist sehr praktisch, um die entsprechende Hilfeseite zu finden.

Hank Gay
quelle
1
man -k== apropos, nicht wahr?
Phunehehe
1
aproposist, was ich die ganze Zeit benutze, wenn ich nach etwas suche, das keine Manpage für sich hat.
Polemon
1
'man man' sagt, dass 'man -k' gleichbedeutend mit 'apropos -r' ist. Ich denke, apropos ist ein bisschen mächtiger. Ich benutze normalerweise 'man -k', da es etwas kürzer ist.
Kristof Provost
16

Der Standard-Pager zum Lesen einer Manpage ist less. Es ist Dokumentation less hier .

Speziell:

  • Eine Seite nach oben / unten scrollen: b/ space
  • Eine halbe Seite nach oben / unten scrollen: u/ d
  • Vorwärts / rückwärts suchen: // ?, dann einen regulären Ausdruck eingeben,
    • dann dann drücken n um zum nächsten Spiel zu gelangen oder
    • shift+ N, um zum vorherigen Spiel zu wechseln.
    • Wenn die Seite uninteressante Übereinstimmungen enthält, klicken Sie spaceauf, um zur nächsten Seite zu wechseln.
  • Fügen Sie @vor dem regulären Ausdruck ein hinzu, um von Anfang an zu suchen.
Casebash
quelle
DAS ist die beste Antwort. Zusätzliche Punkte für die Verwendung von kbd-Symbolen. ;)
Chiramisu
Blättern Sie nach oben / unten von einer Seite kann auch mit getan werden ctrl+space/ f, was hilfreich sein könnte , je nachdem , welche Finger Ihre bevorzugen für die Navigation zu verwenden.
joelostblom
8

Überprüfen Sie immer, was im Abschnitt SIEHE AUCH. Die unter diesem Abschnitt auf infoSeite angezeigten Befehle können ausgewählt werden, indem der Cursor auf den gewünschten Befehl gesetzt und dann die Eingabetaste gedrückt wird. Häufig finde ich auf diese Weise andere nützliche Befehle oder Funktionen.

Neth
quelle
7

Wenn Sie mit Ihrem Editor zufriedener sind als mit dem Standard-Pager, können Sie dies MANPAGERin Ihrer Umgebung festlegen . Zum Beispiel habe ich diese Zeile in meinem ~/.bashrc:

export MANPAGER="col -b | vim -c 'set ft=man nomod nolist ignorecase' -"
Rob Hoelz
quelle
4

Ich nehme an, die meisten Pager sind eine gute Idee. Dieser Pager ist sehr leistungsfähig, aber das Hauptmerkmal für mich - das Anzeigen von farbigen Manpages. Diese Funktion verbessert die Wahrnehmung von Klartext und erleichtert die Suche nach benötigten Informationen.

Schauen Sie sich den beigefügten Screenshot an, der Text sieht sehr gut aus, nicht wahr?

die meisten Pager

DR.
quelle
2
Sie haben die wichtigsten Informationen ausgelassen: Wie kann ich mostManpages anzeigen ?
user1968963
2
@ACK_stoverflow - wahrscheinlich keine gute Idee, dem Typen zu empfehlen, > ~/.bashrcwas er tun soll, da dies das überschreibt, was bereits darin enthalten ist. >>Meiner Meinung nach ist es besser, den Kalk anzufügen ( ) oder manuell hinzuzufügen.
Vatsug
@vatsug Wow guten Ruf, hier ist das, was mein Kommentar sollte gesagt haben: Installieren Sie es und probieren Sie es aus: aptitude install most; export MANPAGER="most"; man man. Um es dauerhaft zu machen:echo 'export MANPAGER="most"' >> ~/.bashrc
ACK_stoverflow
4

Unter Linux mankönnen Sie man -K string(beachten Sie den Großbuchstaben K) eine Brute-Force-Suche nach einem bestimmten Begriff durchführen

   -K, --global-apropos
          Search for text in all manual  pages.   This  is  a  brute-force
          search,  and is likely to take some time; if you can, you should
          specify a section to reduce the number of pages that need to  be
          searched.   Search terms may be simple strings (the default), or
          regular expressions if the --regex option is used.

Sehr nützlich, wenn Sie nicht wissen, wo Sie suchen sollen.

Enzotib
quelle
3

Ignoriere die infoSeiten nicht. Viele GNU-Tools haben weitaus umfangreichere Infoseiten als Manpages. Oft wird im Abschnitt SIEHE AUCH "Die vollständige Dokumentation für foo wird als Texinfo-Handbuch verwaltet." Dies gilt insbesondere für alles im GNU-Paket coreutils.

Wenn Sie ein Emacs-Benutzer sind, vergessen Sie nicht, dass Sie Informationen und Handbuchseiten lesen können, ohne Ihren Editor zu verlassen: M-x infound M-x woman.

Steven D
quelle
3

Für diese längeren, komplexeren Manpages finde ich es viel einfacher, sie von einem Computer aus zu lesen (seltsam, ich weiß), und so habe ich diese Funktionen in meinem .bashrc

# Print man pages 
manp() { man -t "$@" | lpr -pPrinter; }

# Create pdf of man page - requires ghostscript and mimeinfo
manpdf() { man -t "$@" | ps2pdf - /tmp/manpdf_$1.pdf && \
    xdg-open /tmp/manpdf_$1.pdf ;}
jasonwryan
quelle
2

Von Kristof Antwort, wenn Sie (dh) man -k chmodeingeben, erhalten Sie eine Liste der Möglichkeiten. Notieren Sie sich die Nummer in der Klammer. Dies bedeutet, dass in den Handbuchseiten nach folgenden Abschnitten gesucht werden muss:

Unter UNIX können Sie versuchen:

man -s1 chmod Es wird die Manpage für den Befehl chmod angezeigt

man -s2 chmod es zeigt die Manpage für die C lib Funktion chmod ()

Unter Linux sollten Sie ändern -sfür-S

jyz
quelle
man 1 chmod man 2 chmod macht dasselbe.
Elliptical View
2

Anzeigen von Manpages in einer benutzerfreundlichen grafischen Anwendung:

konqueror man:(command)

Für das Inhaltsverzeichnis der obersten Ebene:

konqueror man:

Eigenschaften:

  • Wenn Sie einen Befehl eingeben, der in mehreren Abschnitten übereinstimmt, gelangen Sie zu einer Seite mit Begriffsklärungen
  • Es ist eine grafische Anwendung, sodass Sie sich keine kryptischen Schlüsselsequenzen merken müssen, um auf der Seite zu navigieren
  • Es enthält Hyperlinks zu verwandten Seiten (einschließlich "Siehe auch" -Seiten).
  • Sie können verwandte Seiten in separaten Registerkarten öffnen
nobar
quelle
Das funktioniert übrigens auch mit info:(command). Einige Programme bieten viel mehr Informationen über "info" als über "man", und konqueror bietet eine viel schönere Oberfläche zum Durchsuchen dieser Informationsseiten. Hinweis: Nur mit info:, können Sie auch ein Inhaltsverzeichnis der obersten Ebene abrufen.
Nobar
Ein ähnlicher Effekt kann mit dem gmanPaket erzielt werden , das einen Manpage-Webserver unter localhost / cgi-bin / man / man2html erstellt .
Nobar
Alternativen auf AskUbuntu: askubuntu.com/questions/253705/…
Nobar
... yelpals leichterer Ersatz für konqueror- obwohl es das Manko hat, kein Inhaltsverzeichnis oder keine Begriffsklärung für Namen zu geben, die in mehreren Abschnitten verwendet werden. Sie müssen diese explizit durch Anhängen unterscheiden .(section)- z yelp man:open.2. Sie können die Adressleiste auch mit <kbd> Strg-L </ kbd> öffnen.
1.
2

Dayum, Leute! Was ist mit den verschlungenen Antworten ?! Was ist aus der Einfachheit als Schlüssel zur Brillanz geworden und was nicht? Die meisten Ihrer vi / vim-Tasten funktionieren problemlos:

/oder ?- Suche vorwärts oder rückwärts (wie einige der Jungs bereits erwähnt haben). Im ersten Fall scrollt ein n in Kleinbuchstaben vorwärts durch die Übereinstimmungen, ein N in Großbuchstaben rückwärts. Für letzteres gilt das Gegenteil - das Fragezeichen.

Etwas komplexere Suchen durch reguläre Ausdrücke. Der Unterschied zwischen man(oder less) und VIM besteht darin, dass Sie das Escapezeichen () verwenden müssen, um Metazeichen in Ihrem Ausdruck zu deklarieren, wenn Sie letzteres verwenden. Die gute Nachricht ist, dass Sie, wenn Sie das erstere ( manoder less) verwenden, nicht so oft. So können Sie leicht diese in Gebrauch genommen bei der Suche, zum Beispiel, eine iptablesman - Seite für mehrere Begriffe wie folgt: /(iptables|rules). Wenn Sie mit regulären Ausdrücken nicht vertraut sind, bedeutet dies "Nach Instanzen von Wörtern suchen iptablesODER"rulesMsgstr "" "Nachdem Sie dies eingegeben und n gedrückt haben, scrollen Sie durch die abwechselnden Ergebnisse der Suche, wobei die Ergebnisse für Sie mit verschiedenen Farben schön hervorgehoben werden (eigentlich zwei. Haha). Wenn Sie versuchen, durch die Seite und zu blättern Ich möchte mich auf bestimmte Begriffe oder Konzepte konzentrieren - Sie werden nichts verpassen!

Und für eine schnellere Navigation stehen Ihre regulären viStandbies natürlich weiterhin (kein Wortspiel beabsichtigt): ggoder G- Anfang / Ende des Dokuments; (Korrektur! In können manSie alle unten genannten Tasten ohne Strg verwenden. Das ist vinur für ). Ctrl + u or d- Scrollen Sie nach oben oder unten; Ctrl + b or f- Das Gleiche, nur in größeren Sprüngen. "Seite vorwärts oder rückwärts"; eoder y- scrollen Sie durch eine einzelne Zeile, aber ich denke, die meisten Leute würden lieber nur die Pfeiltasten verwenden. Wenn Sie jedoch "1337" bleiben und "nie die Startreihe verlassen" möchten (wie ich es tue, lol), ist dies der richtige Weg.

Was ich damit sagen will, ist, dass UNIX zwei Hauptvarianten von Tastaturprogramm-Steuerelementen hat, die beide Teile der readlineBibliothek sind: vi und emacs. Verbessere deine Fähigkeiten in einem (aber am besten in beiden) und es wird dein Leben viel weniger kompliziert machen. Die meisten CLI-Programme unter UNIX verwenden eines von beiden. BASHStandardmäßig werden Emacs-Steuerelemente verwendet. Sie können jedoch einfach durch Eingeben den "vi-Modus" aktivieren set -o vi. Das Gleiche gilt für reguläre Ausdrücke, aber das wird weit vom Thema entfernt sein. Ich würde sogar sagen, dass beide die "Lingua Franca" von UNIX sind.

Max
quelle
2

Ähnlich, aber etwas anders als Rob Hoelz 'Antwort:

Fügen Sie Folgendes hinzu ~/.vimrc:

let $GROFF_NO_SGR=1
runtime ftplugin/man.vim

Jetzt vimmanist es ein ausgezeichneter Hilfeseiten-Viewer, und :Manvon Vim aus (oder einfach Küber ein Schlüsselwort) ist es ein ausgezeichneter Hilfeseiten-Browser.

vergänglich
quelle
1

Die meisten von uns setzen die Variable PATH. Dies zeigt Ihnen, wie Sie den Pfad der Mannsuche automatisch an Ihren Befehlssuchpfad anpassen können.

Angenommen, Sie fügen Ihren Pfad hinzu, um Ihre persönlichen, arbeitsspezifischen und lokal installierten Dienstprogramme wie export PATH=$PATH:~/bin:/workgroup/bin:/opt/local/bin:. Als Nebeneffekt man foowerden die unter ~ / man, / workgroup / man oder / opt / local / man gespeicherten Hilfeseiten nicht angezeigt.

Um dies zu beheben, verwende ich den manpathBefehl, um den Manpage-Suchpfad automatisch festzulegen. Beispielsweise hat mein ~ / .bashrc Folgendes. Dies funktioniert für mich auf hundert verschiedenen Systemen, auf denen alles von FreeBSD 4.x, Darwin und CentOS 5 ausgeführt wird:

### PATH & MANPATH
# My personal utilities
export PATH=$PATH:$HOME/bin

### Set the manpath based on the PATH, after man(1) parses man.conf
# - No need to modify man.conf or manually modify MANPATH_MAP
# - Works on Linux, FreeBSD & Darwin, unlike /etc/manpaths.d/
# See "SEARCH PATH FOR MANUAL PAGES" in man(1)
# Just set the man search path. Don't print output to screeen.
manpath >/dev/null

Einige Systeme (wie Apple Leopard) stellen den MANPATH automatisch ein. Dies bedeutet jedoch, dass Ihr System die Variable MANPATH anstelle von verwendet manpath. Infolgedessen werden Manpages für 'MacPorts' (/ opt / local / man) ignoriert. Ich möchte das selbst kontrollieren, also deaktiviere ich MANPATH:

unset MANPATH
manpath >/dev/null
Stefan Lasiewski
quelle
1

Wenn Sie schauen , um Informationen über einen basheingebauten (wie time, disown, setoder [[), statt durch die detaillierte von slogging bashInformationsseite , oder man bashkönnen Sie eingeben help {builtin-keyword}und grundlegende Syntax Informationen schnell erhalten.

LawrenceC
quelle
1

Wenn Sie sich darüber ärgern, dass man printf Ihnen printf (1) gibt und Sie nur printf (3) möchten, können Sie man sagen, dass Sie das printf aus Abschnitt 3 möchten, indem Sie den Abschnitt vor printf setzen man 3 printf, ohne das ändern zu müssen Reihenfolge der durchsuchten Verzeichnisse in der Umgebungsvariablen MANPATH und setzen Sie die Verzeichnisse für die Sprache C vor die Verzeichnisse für die Shell-Befehle.

Li Lo
quelle
1

Ich benutze nur grep. Wenn ich mich fragen würde, was die -sOption des readBefehls bewirkt, würde ich diese Befehle nacheinander ausführen, bis ich eine Antwort bekomme:

info read |grep \\-s

man read |grep \\-s

help read |grep \\-s

In diesem Fall gab nur der infoBefehl eine eindeutige Antwort. Diese hervorragende Antwort enthält die Details zu den verschiedenen Hilfesystemen.

Cees Timmerman
quelle
1

man -a printfStandardmäßig man 1auf meinem Linux Mint-Computer. whatis printfgibt mir die entsprechenden informationen.

stu
quelle
1

Um beispielsweise nach einem einzelnen Zeichen zu suchen -u, können Sie häufig Folgendes verwenden:

/^ *-u($|\s)

Spart viel Zeit, wenn viele Optionen das Präfix '-u' haben.

matt
quelle
Auch dieser reguläre Ausdruck wäre nützlich: /-u($|[,\s]) Falls das Optionszeichen mit einem Komma umrahmt ist. Aber wenn Sie alle Einträge des Optionszeichens 'u' (wie -u]in [--udp|-u]der netstatBedienungsanleitung) sehen möchten, benötigen Sie /-u($|[^a-z])vivim/-u\($\|[^a-z]\)
Folgendes
0

Der Befehl apropos (1) wird zum Durchsuchen von Manpages verwendet. Die meisten Implementierungen von apropos (1) durchsuchen jedoch nur den Abschnitt NAME, was sehr einschränkend ist.

NetBSD verfügt über eine Volltextsuchimplementierung von apropos (1), mit der der gesamte Inhalt von Manpages durchsucht werden kann. Es gibt auch eine webbasierte Oberfläche: man-k.org , die Sie ausprobieren können.

Abhinav Upadhyay
quelle
0

Bildbeschreibung hier eingebenWenn Sie die Hilfeseiten aufgrund des weißen Texts nur schwer lesen können, können Sie sie einfärben. Die meisten Manpages öffnen mit less. Dafür verwende lessich .bashrcvon hier aus folgende Farbeinstellungen :

man() {
    LESS_TERMCAP_md=$'\e[01;31m' \red
    LESS_TERMCAP_me=$'\e[0m' \
    LESS_TERMCAP_se=$'\e[0m' \
    LESS_TERMCAP_so=$'\e[01;44;33m' \yellow on blue
    LESS_TERMCAP_ue=$'\e[0m' \
    LESS_TERMCAP_us=$'\e[01;32m' \green
    command man "$@"
}

Dies ist für Bash und Zsh. Für most, fish, xtermund rxvtsiehe oben den Link.

Zur weiteren Lektüre:

vikramreddym
quelle
0

Und für diejenigen, die gerne Man- und Info-Seiten auf einem Touchscreen lesen, können Sie Man / Info an Yad oder Zenity weiterleiten und alle Gtk3-Goodies wie native Finger Scroll verwenden. Funktioniert auch hervorragend mit refularem Bildschirm und Maus:

man cat |yad --text-info 

Sie können auch Zenity verwenden oder Sie können Ihre Optionen hinzufügen wie:

man cat |yad --text-info --height=500 --width=800 --center --wrap --show-uri --no-markup &

Tipp: Mit show uri yoh können Sie mit der Maus / dem Finger auf Weblinks in Manpages klicken.

George Vasiliou
quelle