Verlinken mit Manpages

Verlinken mit Manpages

Wie kann ich vom Terminal aus einen bestimmten Abschnitt des Ergebnisses ausdrucken und ausgeben man something?

Wenn ich beispielsweise Informationen zum Rückgabewert der C-Funktion „write“ erhalten möchte, würde ich gerne Folgendes sehen:

RETURN VALUE
       On  success,  the  number  of bytes written is returned (zero indicates
       nothing was written).  It is not an error if  this  number  is  smaller
       than the number of bytes requested; this may happen for example because
       the disk device was filled.  See also NOTES.

       On error, -1 is returned, and errno is set appropriately.

       If count is zero and fd refers to a  regular  file,  then  write()  may
       return  a failure status if one of the errors below is detected.  If no
       errors are detected, or error detection is not  performed,  0  will  be
       returned  without  causing  any  other effect.  If count is zero and fd
       refers to a file other than a regular file, the results are not  speci‐
       fied.

ERRORS
       EAGAIN The  file descriptor fd refers to a file other than a socket and
          has been marked nonblocking (O_NONBLOCK), and  the  write  would
          block.  See open(2) for further details on the O_NONBLOCK flag.

       EAGAIN or EWOULDBLOCK
          The  file  descriptor  fd refers to a socket and has been marked
          nonblocking   (O_NONBLOCK),   and   the   write   would   block.
[...]

anstatt:

WRITE(2)                   Linux Programmer's Manual                  WRITE(2)

NAME
       write - write to a file descriptor

SYNOPSIS
       #include <unistd.h>

       ssize_t write(int fd, const void *buf, size_t count);

DESCRIPTION
       write()  writes  up  to  count bytes from the buffer pointed buf to the
       file referred to by the file descriptor fd.

       The number of bytes written may be less than  count  if,  for  example,
       there  is  insufficient space on the underlying physical medium, or the
       RLIMIT_FSIZE resource limit is encountered (see setrlimit(2)),  or  the
       call was interrupted by a signal handler after having written less than
       count bytes.  (See also pipe(7).)

       For a seekable file (i.e., one to which lseek(2) may  be  applied,  for
       example,  a  regular file) writing takes place at the current file off‐
       set, and the file offset is incremented by the number of bytes actually

[...]

Antwort1

Sie können -Pdas Flag eines manProgramms verwenden, um einen Pager zum Anzeigen von Seiten zu verwenden. Sie können beispielsweise lessdas Pager-Programm mit Flag verwenden -p, um nach dem Muster zu suchen, ERRORdas am Anfang der Zeile in der Manpage auftritt:

man -P 'less -p ^ERRORS' symlink

Dadurch wird die Manpage geöffnet symlinkund Sie springen direkt zum ERRORSentsprechenden Abschnitt.

Antwort2

Zitierenmein eigener Beitrag von Meta:

Verlinken mit Manpages

Ich habe hierfür bereits eine bevorzugte Methode, über die Sie in der lessManpage an zwei Stellen lesen können:

LESS='+/\+cmd' man less

Und

LESS='+/LESS[[:space:]]*Options' man less

(Siehst du was ich dort gemacht habe?)

Antwort3

Wenn Sie nur eine Manpage wie diese öffnen:
man cowsay
Sie können dann
/AUTHOR
beispielsweise Folgendes eingeben: um zu suchen und zur Zeile AUTHOR zu springen. Oder:
/myFunction
um Instanzen von myFunctionin der Manpage zu finden.
(Wenn mehrere Instanzen vorhanden sind, können Sie drücken, num zur nächsten Instanz zu gelangen.)

Wenn Sie sich auf einer Manpage befinden, können Sie auch hweniger Befehle wie unten eingeben und eine Zusammenfassung erhalten. Ich habe sie nach den Teilen abgeschnitten, die meiner Meinung nach für Sie relevant waren, aber es gibt noch mehr.

                  ZUSAMMENFASSUNG DER WENIGER BEFEHLE

      Mit * gekennzeichneten Befehlen kann eine Zahl, N, vorangestellt sein.
      Hinweise in Klammern geben das Verhalten an, wenn N angegeben ist.

  h H Diese Hilfe anzeigen.
  q :q Q :Q ZZ Beenden.
 ---------------------------------------------------------------------------

                           ZIEHEN UM

  e ^E j ^N CR * Eine Zeile (oder N Zeilen) vorwärts.
  y ^Y k ^K ^P * Eine Zeile (oder N Zeilen) zurück.
  f ^F ^V SPACE * Ein Fenster (oder N Zeilen) vorwärts.
  b ^B ESC-v * Ein Fenster zurück (oder N Zeilen).
  z * Ein Fenster vorwärts (und Fenster auf N setzen).
  w * Ein Fenster zurück (und Fenster auf N setzen).
  ESC-LEERTASTE * Ein Fenster vorwärts, aber nicht am Dateiende anhalten.
  d ^D * Ein halbes Fenster vorwärts (und halbes Fenster auf N setzen).
  u ^U * Ein halbes Fenster zurück (und halbes Fenster auf N setzen).
  ESC-) Rechtspfeil * Eine halbe Bildschirmbreite nach links (oder N Positionen).
  ESC-(Linker Pfeil * Rechts eine halbe Bildschirmbreite (oder N Positionen).
  F Für immer vorwärts; wie „tail -f“.
  r ^R ^L Bildschirm neu zeichnen.
  R Bildschirm neu zeichnen und gepufferte Eingaben verwerfen.
        ------------------------------------------------------------------
        Das Standard-„Fenster“ ist die Bildschirmhöhe.
        Die Standardeinstellung „Halbfenster“ entspricht der halben Bildschirmhöhe.
 ---------------------------------------------------------------------------

                          SUCHE

  /Muster * Vorwärtssuche nach der (N-ten) passenden Zeile.
  ?Muster * Rückwärtssuche nach der (N-ten) übereinstimmenden Zeile.
  n * Vorherige Suche wiederholen (für das N-te Vorkommen).
  N * Vorherige Suche in umgekehrter Richtung wiederholen.
  ESC-n * Vorherige Suche wiederholen, Dateien umfassend.
  ESC-N * Vorherige Suche wiederholen, Verzeichnis umkehren und Dateien überspannen.
  ESC-u Suchhervorhebung rückgängig machen (umschalten).
  &Muster * Nur übereinstimmende Zeilen anzeigen
        ------------------------------------------------------------------
        Suchmuster können durch eine oder mehrere der folgenden Optionen geändert werden:
        ^N oder ! Suche nach NICHT übereinstimmenden Zeilen.
        ^E oder * Mehrere Dateien durchsuchen (bis zum DATEIENDE weiterleiten).
        ^F oder @ Starten Sie die Suche bei der ERSTEN Datei (für /) oder der letzten Datei (für ?).
        ^K Übereinstimmungen hervorheben, aber nicht verschieben (Position BEHALTEN).
        ^R Verwenden Sie keine REGULAR EXPRESSIONS.
 ---------------------------------------------------------------------------

                           SPRINGEN

  g ESC-> * Zur letzten Zeile in der Datei gehen (oder Zeile N).
  p % * Gehe zum Anfang der Datei (oder N Prozent in die Datei).

Wenn Sie lediglich große Manpages einfacher lesen möchten, sollte dies funktionieren.

Antwort4

Wenn Sie sich um Bäume kümmern, sollten Sie noch einmal darüber nachdenken, ob SiedruckenHandbuchseiten im Ganzen oder in Teilen, insbesondere in Zeiten, in denen sie sich alle paar Monate ändern können.

Stattdessen könnten Sie, wie in anderen Antworten vorgeschlagen, den Pager (z. B. ) verwenden (lernen less), um nach den benötigten Informationen zu suchen. Normalerweise hilft Ihnen die Struktur der Manpages dabei, diese leichter zu finden.

Einige Programme erlauben es auch, Manualpages "innen" zu öffnen, wie z.B. Emacs: Dort können Sie mit dem "Mx man" (oder "Mx woman"), um eine Handbuchseite zu öffnen und dann alle Editorfunktionen zu verwenden, um darin zu navigieren (Emacs hat auch eine print-regionFunktion, aber dies zu erklären würde den Rahmen dieser Antwort sprengen).

verwandte Informationen