Ссылки на страницы руководства

Ссылки на страницы руководства

Как можно вывести из терминала определенную часть результата 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функция, но ее объяснение было бы не по теме этого ответа).

Связанный контент