
Как можно вывести из терминала определенную часть результата man something
?
Например, если бы я хотел получить некоторую информацию о возвращаемом значении функции C write, я бы хотел увидеть что-то вроде этого:
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.
[...]
вместо:
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
[...]
решение1
Вы можете использовать -P
флаг man
программы, чтобы использовать пейджер для отображения страниц. Например, вы можете использовать less
как пейджер программу с флагом -p
для поиска шаблона ERROR
, встречающегося в начале строки внутри страницы руководства:
man -P 'less -p ^ERRORS' symlink
Это открывает страницу руководства symlink
и позволяет перейти непосредственно к ERRORS
ее разделу.
решение2
Цитироватьмой собственный пост из Меты:
Ссылки на страницы руководства
У меня уже есть любимый метод для этого, о котором вы можете прочитать на less
странице руководства в двух местах:
LESS='+/\+cmd' man less
и
LESS='+/LESS[[:space:]]*Options' man less
(Видите, что я там сделал?)
решение3
Если вы просто открываете страницу руководства, например:
man cowsay
Затем вы можете ввести:
/AUTHOR
для поиска и перехода к строке AUTHOR, например. Или:
/myFunction
для поиска экземпляров myFunction
на странице руководства.
(Если экземпляров несколько, вы можете нажать , n
чтобы перейти к следующему экземпляру)
Также, если вы находитесь на странице руководства, вы можете ввести h
и получить сводку команд less, как показано ниже. Я обрезал их после частей, которые, как я думал, были вам полезны, но есть еще.
ОБЗОР МЕНЬШИХ КОМАНД Перед командами, отмеченными знаком *, может стоять цифра N. Примечания в скобках указывают поведение, если указано N. h H Отобразить эту справку. q :q Q :Q ZZ Выход. --------------------------------------------------------------------------- ДВИЖУЩИЙСЯ e ^E j ^N CR * Перейти на одну строку вперед (или на N строк). y ^Y k ^K ^P * Назад на одну строку (или N строк). f ^F ^V ПРОБЕЛ * Вперед на одно окно (или N строк). b ^B ESC-v * Назад на одно окно (или N строк). z * Перейти на одно окно вперед (и установить окно на N). w * Назад на одно окно (и установить окно на N). ESC-ПРОБЕЛ * Перейти на одно окно вперед, но не останавливаться в конце файла. d ^D * Переместиться на одну половину окна вперед (и установить половину окна на N). u ^U * Назад на одну половину окна (и установить половину окна на N). ESC-) Стрелка вправо * Влево на половину ширины экрана (или N позиций). ESC-(Стрелка влево * Вправо на половину ширины экрана (или N позиций). F Вперед навсегда; как «tail -f». r ^R ^L Перерисовать экран. R Перерисовать экран, отбрасывая буферизованный ввод. --------------------------------------------------- «Окно» по умолчанию — это высота экрана. По умолчанию «половина окна» занимает половину высоты экрана. --------------------------------------------------------------------------- ИДЕТ ПОИСК /pattern * Поиск вперед (N-й) совпадающей строки. ?pattern * Поиск в обратном направлении (N-й) совпадающей строки. n * Повторить предыдущий поиск (для N-го вхождения). N * Повторить предыдущий поиск в обратном направлении. ESC-n * Повторить предыдущий поиск, охватывая файлы. ESC-N * Повторить предыдущий поиск, изменить каталог и объединить файлы. ESC-u Отменить (переключить) подсветку поиска. &pattern * Отображать только соответствующие строки --------------------------------------------------- Шаблоны поиска могут быть изменены одним или несколькими из следующих способов: ^N или ! Поиск НЕсовпадающих строк. ^E или * Поиск в нескольких файлах (до КОНЦА ФАЙЛА). ^F или @ Начать поиск с ПЕРВОГО файла (для /) или последнего файла (для ?). ^K Выделить совпадения, но не перемещать (СОХРАНИТЬ позицию). ^R Не используйте РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ. --------------------------------------------------------------------------- ПРЫЖКИ g ESC-> * Перейти к последней строке в файле (или строке N). p % * Перейти к началу файла (или на N процентов в файле).
Если вы просто хотите упростить чтение больших страниц руководства, это должно сработать.
решение4
Ухаживая за деревьями, вам следует еще раз подумать, стоит лиРаспечататьстраницы руководства целиком или частично, особенно в те времена, когда они могут меняться каждые несколько месяцев.
Вместо этого, как предлагается в других ответах, вы могли бы (научиться) использовать пейджер (например less
) для поиска вперед и назад нужной вам информации. Обычно структура страниц man помогает вам легче находить ее.
Также некоторые программы позволяют открывать страницы руководства «изнутри», например Emacs: Там вы можете использовать «Мх man
" (или "Мх woman
") для открытия страницы руководства и последующего использования всех функций редактора для навигации по ней (в Emacs также есть такая print-region
функция, но ее объяснение было бы не по теме этого ответа).