Truques e dicas para encontrar informações nas páginas do manual [fechado]

80

Alguém tem algum truque e dicas para encontrar informações nas páginas de manual?

Casebash
fonte
1
man --help/ man -he seu irmão mais completo man mantem dicas de pesquisa e navegação.
Anton Tarasenko

Respostas:

51

Preste atenção ao número da seção: suponha que você queira ajuda printf. existem pelo menos dois deles: no shell e no C. A versão bash do printf está na seção 1, a versão C está na seção 3 ou 3C. Se você não souber qual deseja, digite man -a printfe todas as páginas de manual serão exibidas.

Se o que você está procurando é o formato de printf com todos os códigos% e ele não aparecer na página de manual printf, você poderá pular para as páginas de manual relacionadas listadas no parágrafo VER TAMBÉM. Você pode encontrar algo parecido com o formats(5)que sugere que você digite man 5 formats.

Se você está aborrecido com man printfo resultado printf (1) e tudo o que você quer é printf (3), é necessário alterar a ordem dos diretórios verificados na MANPATHvariável de ambiente e colocar os que estão no idioma C antes dos comandos de shell. Isso pode acontecer também quando as páginas de manual do Fortran ou TCL / Tk são listadas antes das páginas C.

Se você não sabe por onde começar, digite man introou man -s <section> intro. Isso fornece um resumo dos comandos da seção solicitada.

As seções estão bem definidas:

  • 1 é para comandos de shell,
  • 2 é para chamadas do sistema,
  • 3 é para interfaces de programação (às vezes 3C para C, 3F para Fortran ...)
  • 5 é para formatos de arquivo e outras regras, como formatos printf ou regex.

Por último, mas não menos importante: as informações fornecidas nas páginas de manual não são redundantes, portanto, leia com atenção do começo ao fim para aumentar suas chances de encontrar o que você precisa.

mouviciel
fonte
11
Na maioria dos sistemas, você pode conferir man manpara ver uma descrição completa das várias seções.
Steven D
1
Seria legal se houvesse um programa para pesquisar uma página com uma «palavra-chave». Ou seja, recentemente não consegui lembrar o nome da função c para encontrar uma substring (the strstr()) e não tinha uma internet à minha volta.
Hi-Angel
3
@ Hi-Angel man -k substringou apropos substringteria ajudado você.
Kusalananda
58

Digite barra /e digite a seqüência de caracteres para procurar. Continue pressionando npara chegar ao próximo item

Alexander Pogrebnyak
fonte
37

man -k search

Isso fornecerá uma lista de todas as páginas de manual relacionadas à 'pesquisa'.

Kristof Provost
fonte
2
E para listar todas as páginas de manual relacionadas à 'pesquisa' em uma seção específica (número 3, por exemplo), pode-se usar isso: man -k search -s 3 Também mencionado em superuser.com/a/677969/599957
kenichi
Sei que comentários como esse são desaprovados, mas obrigado, obrigado, obrigado! Eu tenho literalmente procurado por um comando como esse por mais tempo do que gostaria de admitir ... anos !!
21818 MikeyE #
19

Como @Steven D diz, não esqueça as infopáginas.

Além disso, não se deixe intimidar pelas infopáginas. Conheço muitas pessoas que não usam as páginas de informações por causa do sistema de navegação interno. Minha solução favorita é canalizar as páginas de informações através de less:

info gpg |less

Dessa forma, eu posso navegar pelas infopáginas usando meu pager favorito. As infopáginas agora terão o mesmo comportamento que as manpáginas.

Stefan Lasiewski
fonte
1
hey, essa é uma ótima dica sobre a navegação
glenn jackman
18

O aproposutilitário é muito útil para encontrar a página de manual apropriada.

Hank Gay
fonte
1
man -k== apropos, não é?
phunehehe
1
aproposé o que eu uso o tempo todo ao procurar algo que não tenha a página de manual por si só.
precisa saber é
1
'man man' diz que 'man -k' é equivalente a 'apropos -r'. Eu acho que o propósito é um pouco mais poderoso. Eu geralmente uso 'man -k', pois é um pouco mais curto.
Kristof Provost
16

O pager padrão para ler uma página de manual é less. Há documentação less aqui .

Em particular:

  • Role para cima / para baixo em uma página: b/ space
  • Role para cima / baixo em meia página: u/ d
  • Pesquisando para frente / para trás: // ?, digite uma expressão regular,
    • então aperte n para ir para a próxima partida ou
    • shift+ Npara ir para a partida anterior.
    • Se a página for coberta com correspondências desinteressantes, pressione spacepara ir para a próxima página.
  • Adicione uma @expressão antes da expressão regular para pesquisar desde o início.
Casebash
fonte
Esta é a melhor resposta. Pontos extras para usar símbolos kbd. ;)
Chiramisu 25/01
A rolagem para cima / baixo em uma página também pode ser feita com ctrl+space/ f, o que pode ser útil dependendo dos dedos que você preferir usar para navegação.
joelostblom 6/10
8

Sempre verifique o que está na seção VER TAMBÉM. Os comandos mostrados nesta seção da infopágina são selecionáveis, colocando o cursor no comando desejado e pressionando a tecla Enter. Freqüentemente encontro outros comandos ou funções úteis dessa maneira.

Neth
fonte
7

Se você está mais à vontade com o editor do que com o pager padrão, é possível configurá-lo MANPAGERem seu ambiente. Por exemplo, eu tenho essa linha no meu ~/.bashrc:

export MANPAGER="col -b | vim -c 'set ft=man nomod nolist ignorecase' -"
Rob Hoelz
fonte
4

Suponho que usar a maioria dos pagers seja uma boa ideia. Este pager é muito poderoso, mas a principal característica para mim - exibir páginas de manual coloridas. Esse recurso melhora a percepção do texto sem formatação e facilita a pesquisa das informações necessárias.

Veja a imagem em anexo, o texto parece muito bom, não é?

mais pager

dr.
fonte
2
Você deixou de fora a informação mais importante: como eu uso mostpara visualizar as páginas de manual.
User1968963
2
@ACK_stoverflow - provavelmente não é uma boa ideia recomendar o cara a fazer > ~/.bashrc, pois substituirá o que já está lá. Melhor acrescentar ( >>) ou adicionar o limão manualmente na minha opinião.
vatsug
@vatsug Wow boa chamada, aqui está o meu comentário deve ter dito: Instale-o e experimentá-lo: aptitude install most; export MANPAGER="most"; man man. Para torná-lo permanente:echo 'export MANPAGER="most"' >> ~/.bashrc
ACK_stoverflow 3/17/17
4

No Linux man, você pode fazer man -K string(observe o K maiúsculo) fazer uma pesquisa de força bruta de um determinado termo

   -K, --global-apropos
          Search for text in all manual  pages.   This  is  a  brute-force
          search,  and is likely to take some time; if you can, you should
          specify a section to reduce the number of pages that need to  be
          searched.   Search terms may be simple strings (the default), or
          regular expressions if the --regex option is used.

muito útil quando você não sabe onde procurar.

enzotib
fonte
3

Não ignore as infopáginas. Muitas ferramentas GNU têm páginas de informação muito mais extensas que as páginas de manual. Freqüentemente, a seção VER TAMBÉM diz "A documentação completa do foo é mantida como um manual do Texinfo". Isto é especialmente verdadeiro para qualquer coisa no pacote GNU coreutils.

Além disso, se você é um usuário do emacs, não esqueça que pode ler informações e páginas de manual sem sair do seu editor: M-x infoe M-x woman.

Steven D
fonte
3

Para aquelas páginas de manual mais longas e mais complexas, acho muito mais fácil lê-las em um computador (estranho, eu sei) e, portanto, tenho essas funções em minhas .bashrc

# Print man pages 
manp() { man -t "$@" | lpr -pPrinter; }

# Create pdf of man page - requires ghostscript and mimeinfo
manpdf() { man -t "$@" | ps2pdf - /tmp/manpdf_$1.pdf && \
    xdg-open /tmp/manpdf_$1.pdf ;}
jasonwryan
fonte
2

Na resposta de Kristof, se você digitar, man -k chmodobterá uma lista de possibilidades. Observe o número entre parênteses, significa a seção a procurar nas páginas do manual:

No UNIX, você pode tentar:

man -s1 chmod mostrará a página de manual do comando chmod

man -s2 chmod mostrará a página de manual da função C lib chmod ()

No Linux, você deve mudar -spara-S

jyz
fonte
man 1 chmod man 2 chmod faz a mesma coisa.
Visualização elíptica
2

Visualize as páginas do manual em um aplicativo gráfico fácil de usar:

konqueror man:(command)

Para o índice de nível superior:

konqueror man:

Recursos:

  • Se você digitar um comando que corresponda a várias seções, ele será direcionado para uma página de desambiguação
  • É uma aplicação gráfica, para que você não precise se lembrar de sequências de teclas enigmáticas para navegar na página
  • Inclui hiperlinks para páginas relacionadas (incluindo páginas "consulte também")
  • Você pode abrir páginas relacionadas em guias separadas
nobar
fonte
A propósito, isso também funciona com info:(command). Alguns programas fornecem muito mais informações via "info" do que via "man", e o konqueror fornece uma interface muito mais agradável para navegar nessas páginas de informações. Nota: Apenas usar info:, também funciona para obter um índice de nível superior.
13/02/12
Um efeito semelhante pode ser alcançado usando o gmanpacote que estabelece um servidor da página de manual em localhost / cgi-bin / man / man2html .
Nobar
Alternativas no AskUbuntu: askubuntu.com/questions/253705/…
nobar
... yelpsendo um substituto de menor peso para konqueror- embora tenha a deficiência de não apresentar um índice ou uma página de desambiguação para nomes usados ​​em várias seções. Você precisa diferenciá-los explicitamente anexando .(section)- por exemplo yelp man:open.2. Você também pode usar <kbd> Ctrl-L </kbd> para abrir a barra de localização.
1/15
2

Dayum, pessoal! O que há com as respostas complicadas ?! O que aconteceu com a simplicidade sendo a chave do brilhantismo e o que não? A maioria das suas chaves do vi / vim funcionará perfeitamente:

/ou ?- Pesquise para frente ou para trás (como alguns dos caras já mencionaram). No caso do primeiro, um n minúsculo rolará as correspondências para a frente, um N maiúsculo voltará. O oposto é verdadeiro para o último - o ponto de interrogação.

Pesquisas um pouco mais complexas através de expressões regulares. A diferença entre man(ou less) e o VIM é que você precisa usar o caractere escape () para declarar metacaracteres em sua expressão ao usar o último. A boa notícia é que quando você está usando o primeiro ( manou less), nem tanto. Assim você pode facilmente colocar isso para utilizar na pesquisa, por exemplo, uma iptablespágina do homem para vários termos como assim: /(iptables|rules). Se você não estiver familiarizado com expressões regulares, isso significa "Pesquisar instâncias de palavras iptablesOUrules". Depois de inserir isso e continuar pressionando n, você percorrerá os resultados alternados da pesquisa, com os resultados destacados para você com cores diferentes (duas, na verdade. Haha). Se você estiver tentando percorrer a página e quer se concentrar em termos ou conceitos específicos - você não perderá nada!

E, é claro, para uma navegação mais rápida, seus vidocumentos em espera regulares ainda permanecem (sem trocadilhos): ggou G- início / fim do documento; (Correção! manVocê pode usar todas as teclas mencionadas abaixo sem usar Ctrl. Isso é viapenas para ). Ctrl + u or d- Role para cima ou para baixo; Ctrl + b or f- A mesma coisa, apenas em saltos maiores. "Página para trás ou para frente"; eou y- role uma única linha, mas acho que a maioria das pessoas prefere usar as teclas de seta. No entanto, se você quiser ficar "1337" e "nunca sair da linha de casa" (como eu faço), é o caminho a percorrer.

O que estou tentando dizer é que o UNIX tem dois tipos principais de controles de programa de teclado, que são partes da readlinebiblioteca: vi e emacs. Aprimore suas costeletas em uma delas (mas, de preferência, em ambas) e isso tornará sua vida muito menos complicada. A maioria dos programas CLI no UNIX emprega qualquer um. BASHusa os controles do emacs por padrão, mas pode ser facilmente configurado para o "modo vi" digitando set -o vi. O mesmo pode ser dito para expressões regulares, mas isso será muito fora de tópico. Eu diria até que ambas são a "língua franca" do UNIX.

Máx.
fonte
2

Semelhante, mas ligeiramente diferente da resposta de Rob Hoelz,

Adicione o seguinte no seu ~/.vimrc:

let $GROFF_NO_SGR=1
runtime ftplugin/man.vim

Agora vimmané um excelente visualizador de páginas de manual e, :Manno Vim (ou simplesmente pressionando Kuma palavra-chave), é um excelente navegador de páginas de manual.

efêmero
fonte
1

A maioria de nós define a variável PATH. Isso mostrará como fazer automaticamente o caminho de pesquisa do homem corresponder ao seu caminho de pesquisa de comando.

Digamos que você inclua seu caminho para incluir utilitários pessoais, específicos ao trabalho e instalados localmente, como export PATH=$PATH:~/bin:/workgroup/bin:/opt/local/bin:. Como efeito colateral, man foonão mostrará as páginas de manual armazenadas em ~ / man, / workgroup / man ou / opt / local / man.

Para resolver isso, eu uso o manpathcomando para definir automaticamente o caminho de pesquisa da página de manual. Por exemplo, meu ~ / .bashrc tem o seguinte. Isso funciona para mim em uma centena de sistemas diferentes executando tudo, desde o FreeBSD 4.x, Darwin e CentOS 5:

### PATH & MANPATH
# My personal utilities
export PATH=$PATH:$HOME/bin

### Set the manpath based on the PATH, after man(1) parses man.conf
# - No need to modify man.conf or manually modify MANPATH_MAP
# - Works on Linux, FreeBSD & Darwin, unlike /etc/manpaths.d/
# See "SEARCH PATH FOR MANUAL PAGES" in man(1)
# Just set the man search path. Don't print output to screeen.
manpath >/dev/null

Alguns sistemas (como o Apple Leopard) definem o MANPATH automaticamente, mas isso significa que seu sistema usará a variável MANPATH em vez de usá-lo manpath. Como resultado, as páginas do manual para 'MacPorts' (/ opt / local / man) são ignoradas. Eu mesmo quero controlar isso, então desmarco MANPATH:

unset MANPATH
manpath >/dev/null
Stefan Lasiewski
fonte
1

Se você está procurando informações sobre um bashbuiltin (tais como time, disown, set, ou [[), em vez de sofrer através da detalhada bashpágina info ou man bash, você pode entrar help {builtin-keyword}e obter informações básicas sintaxe rapidamente.

LawrenceC
fonte
1

Se você está aborrecido com o fato de man printf fornecer a printf (1) e tudo o que você quer é printf (3), você pode dizer ao homem que deseja a printf da seção 3 colocando a seção antes da printf, da seguinte forma:, man 3 printfsem precisar alterar o ordem dos diretórios varridos na variável de ambiente MANPATH e coloque aqueles na linguagem C antes dos comandos de shell.

Li Lo
fonte
1

Eu apenas uso grep. Se eu quisesse saber o que a -sopção do readcomando fez, tentaria esses comandos em ordem até obter uma resposta:

info read |grep \\-s

man read |grep \\-s

help read |grep \\-s

Nesse caso, apenas o infocomando forneceu uma resposta clara. Esta excelente resposta fornece detalhes sobre os diferentes sistemas de ajuda.

Cees Timmerman
fonte
1

man -a printfapenas o padrão é man 1na minha máquina Linux Mint. whatis printfme dá as informações pertinentes.

stu
fonte
1

Para procurar com eficiência a chave de caractere único, por exemplo -u, você pode usar frequentemente:

/^ *-u($|\s)

Economiza muito tempo se muitas opções tiverem '-u' como prefixo.

mate
fonte
Além disso, esse regex seria útil: /-u($|[,\s]) caso o caractere de opção seja enquadrado por vírgula. Mas se você quiser ver todas as entradas do personagem opção 'u' (como -u]no [--udp|-u]de netstatmanual) você vai precisar de algo como isto: /-u($|[^a-z]) E se viou vimé usado como pager: /-u\($\|[^a-z]\)
kenichi
0

O comando apropos (1) é usado para procurar páginas de manual. No entanto, a maioria das implementações do apropos (1) apenas pesquisam na seção NAME, o que é muito limitante.

O NetBSD possui uma implementação de pesquisa de texto completo de apropos (1), capaz de pesquisar o conteúdo completo das páginas de manual. Também existe uma interface baseada na Web: man-k.org , que você pode experimentar.

Abhinav Upadhyay
fonte
0

insira a descrição da imagem aquiSe você achar difícil ler as páginas de manual devido a todo o texto em branco, poderá colori-las. A maioria das páginas de manual é aberta com less. Para less, eu uso as seguintes definições de cor no .bashrcde aqui :

man() {
    LESS_TERMCAP_md=$'\e[01;31m' \red
    LESS_TERMCAP_me=$'\e[0m' \
    LESS_TERMCAP_se=$'\e[0m' \
    LESS_TERMCAP_so=$'\e[01;44;33m' \yellow on blue
    LESS_TERMCAP_ue=$'\e[0m' \
    LESS_TERMCAP_us=$'\e[01;32m' \green
    command man "$@"
}

Isso é para bash e zsh. Por most, fish, xterme rxvtveja no link acima.

Para leitura adicional:

vikramreddym
fonte
0

E para aquelas pessoas que gostam de ler as páginas de homem e informações em uma tela sensível ao toque, você pode canalizar man / info para o yad ou zenity e usar todos os itens do gtk3, como rolagem de dedo nativa. Também funciona muito bem com tela e mouse refinados:

man cat |yad --text-info 

Você também pode usar o zenity ou adicionar opções de yad como:

man cat |yad --text-info --height=500 --width=800 --center --wrap --show-uri --no-markup &

Dica: por show uri, você pode clicar nos links da web nas páginas de manual com o mouse / dedo.

George Vasiliou
fonte