Links para páginas de manual

Links para páginas de manual

No terminal, como posso imprimir para gerar uma seção específica do resultado de man something?

Por exemplo, se eu quisesse obter algumas informações sobre o valor de retorno da gravação da função C, gostaria de ver algo assim:

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.
[...]

em vez de:

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

[...]

Responder1

Você pode usar -Po sinalizador do manprograma para usar um pager para exibir páginas. Por exemplo, você pode usar lesscomo programa de pager com flag -ppara procurar o padrão ERRORque acontece no início da linha dentro da página de manual:

man -P 'less -p ^ERRORS' symlink

Isso abre a página de manual symlinke vai diretamente para a ERRORSseção dela.

Responder2

Citarminha própria postagem do Meta:

Links para páginas de manual

Já tenho um método preferido para isso, sobre o qual você pode ler na lesspágina de manual em dois lugares:

LESS='+/\+cmd' man less

e

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

(Veja o que eu fiz lá?)

Responder3

Se você apenas abrir uma página de manual como:
man cowsay
Você pode digitar:
/AUTHOR
para localizar e pular para a linha AUTHOR, por exemplo. Ou:
/myFunction
para encontrar instâncias myFunctionna página de manual.
(Se houver múltiplas instâncias, você pode pressionar npara ir para a próxima instância)

Além disso, se você estiver em uma página de manual, poderá digitar he obter um resumo de menos comandos, como abaixo. Eu os cortei depois de partes que achei relevantes para você, mas tem mais.

                  RESUMO DE MENOS COMANDOS

      Os comandos marcados com * podem ser precedidos por um número, N.
      As notas entre parênteses indicam o comportamento se N for fornecido.

  h H Exiba esta ajuda.
  q :q Q :Q ZZ Sair.
 -------------------------------------------------- -------------------------

                           EM MOVIMENTO

  e ^E j ^N CR * Encaminha uma linha (ou N linhas).
  y ^Y k ^K ^P * Retroceder uma linha (ou N linhas).
  f ^F ^V SPACE * Avança uma janela (ou N linhas).
  b ^B ESC-v * Retroceder uma janela (ou N linhas).
  z * Avança uma janela (e define a janela como N).
  w * Retroceder uma janela (e definir a janela como N).
  ESC-SPACE * Avança uma janela, mas não para no final do arquivo.
  d ^D * Avança uma meia janela (e defina meia janela como N).
  u ^U * Retroceda uma meia janela (e defina meia janela como N).
  ESC-) RightArrow * Meia largura da tela à esquerda (ou N posições).
  ESC-( LeftArrow * Right meia largura da tela (ou N posições).
  F Avante para sempre; como "cauda -f".
  r ^R ^L Repintar a tela.
  R Repintar a tela, descartando a entrada armazenada em buffer.
        -------------------------------------------------- -
        A "janela" padrão é a altura da tela.
        A "meia janela" padrão é metade da altura da tela.
 -------------------------------------------------- -------------------------

                          PROCURANDO

  /pattern * Pesquise adiante a (N-ésima) linha correspondente.
  ?pattern * Pesquise para trás a (N-ésima) linha correspondente.
  n * Repita a pesquisa anterior (para a enésima ocorrência).
  N * Repita a busca anterior na direção reversa.
  ESC-n * Repete a pesquisa anterior, abrangendo arquivos.
  ESC-N * Repita a pesquisa anterior, inverta o diretório. & arquivos abrangentes.
  ESC-u Desfazer (alternar) o destaque da pesquisa.
  &pattern * Exibe apenas linhas correspondentes
        -------------------------------------------------- -
        Os padrões de pesquisa podem ser modificados por um ou mais dos seguintes:
        ^N ou ! Procure por linhas NÃO correspondentes.
        ^E ou * Pesquise vários arquivos (passe até END OF FILE).
        ^F ou @ Inicia a pesquisa no PRIMEIRO arquivo (para /) ou no último arquivo (para?).
        ^K Destaque as partidas, mas não se mova (MANTENHA a posição).
        ^R Não use EXPRESSÕES REGULARES.
 -------------------------------------------------- -------------------------

                           SALTO

  g ESC-> * Vai para a última linha do arquivo (ou linha N).
  p % * Vai para o início do arquivo (ou N por cento no arquivo).

Se você deseja apenas ler páginas de manual grandes com mais facilidade, isso deve funcionar.

Responder4

Cuidando das árvores você deve repensar se deveimprimirpáginas de manual inteiras ou em partes, especificamente em momentos em que elas podem mudar a cada poucos meses.

Em vez disso, como sugerido em outras respostas, você poderia (aprender a) usar o pager (por exemplo less) para pesquisar as informações necessárias. Normalmente, a estrutura das páginas de manual ajuda você a encontrar isso com mais facilidade.

Além disso, alguns programas permitem que você abra páginas de manual "dentro", como o Emacs: Lá você pode usar o "MX man" (ou "MX woman") comando para abrir uma página de manual e, em seguida, usar todas as funções do editor para navegar nela (o Emacs também tem uma print-regionfunção, mas explicar isso seria fora do assunto para esta resposta).

informação relacionada