
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 -P
das Flag eines man
Programms verwenden, um einen Pager zum Anzeigen von Seiten zu verwenden. Sie können beispielsweise less
das Pager-Programm mit Flag verwenden -p
, um nach dem Muster zu suchen, ERROR
das am Anfang der Zeile in der Manpage auftritt:
man -P 'less -p ^ERRORS' symlink
Dadurch wird die Manpage geöffnet symlink
und Sie springen direkt zum ERRORS
entsprechenden Abschnitt.
Antwort2
Zitierenmein eigener Beitrag von Meta:
Verlinken mit Manpages
Ich habe hierfür bereits eine bevorzugte Methode, über die Sie in der less
Manpage 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 myFunction
in der Manpage zu finden.
(Wenn mehrere Instanzen vorhanden sind, können Sie drücken, n
um zur nächsten Instanz zu gelangen.)
Wenn Sie sich auf einer Manpage befinden, können Sie auch h
weniger 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-region
Funktion, aber dies zu erklären würde den Rahmen dieser Antwort sprengen).