Truques e dicas para encontrar informações em man pages [closed]

79

Alguém tem algum truque e dicas para encontrar informações em man pages?

    
por Casebash 10.09.2010 / 17:46

25 respostas

51

Preste atenção no número da seção: suponha que você queira ajuda em printf . há 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 deles deseja, digite man -a printf e 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 aparece na página man printf, você pode ir para as páginas de manual relacionadas listadas no parágrafo VEJA TAMBÉM. Você pode encontrar algo como formats(5) , o que sugere que você digite man 5 formats .

Se você está chateado porque man printf dá printf (1) e tudo que você quer é printf (3), você tem que mudar a ordem dos diretórios escaneados na variável de ambiente MANPATH e colocar os da linguagem C antes dos comandos shell. Isso pode acontecer também quando as páginas de manual do Fortran ou do TCL / Tk são listadas antes das versões C.

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

As seções sã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 precisa.

    
por 14.01.2014 / 09:08
57

Digite slash / e digite a string a ser pesquisada. Então continue pressionando n para chegar ao próximo item

    
por 10.09.2010 / 13:57
37

man -k search

Isso fornecerá uma lista de todas as páginas do manual relacionadas a "pesquisa".

    
por 10.09.2010 / 12:34
19

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

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

info gpg |less

Dessa forma, posso navegar pelas páginas info usando meu pager favorito. As páginas info agora se comportarão da mesma forma que man páginas.

    
por 16.09.2010 / 00:40
18

O utilitário apropos é muito útil para encontrar a página do manual apropriada.

    
por 10.09.2010 / 15:23
16

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

Em particular:

  • Rola para cima / baixo em uma página: b / espaço
  • Rola para cima / baixo em meia página: u / d
  • Procurando para a frente / para trás: / / ? , depois digite uma expressão regular,
    • então aperte n para ir para a próxima partida ou
    • desloca + N para ir para a partida anterior.
    • Se a página estiver coberta por correspondências desinteressantes, pressione espaço para ir para a próxima página.
  • Adicione um @ antes da expressão regular para pesquisar a partir do começar.
por 20.04.2011 / 07:25
8

Sempre verifique o que há na seção VEJA TAMBÉM. Os comandos mostrados nesta seção na página info são selecionáveis colocando o cursor no comando desejado e pressionando a tecla enter. Freqüentemente eu encontro outros comandos ou funções úteis dessa maneira.

    
por 29.12.2016 / 17:09
7

Se você se sentir mais confortável com o editor do que com o pager padrão, poderá definir MANPAGER em seu ambiente. Por exemplo, eu tenho essa linha no meu ~/.bashrc :

export MANPAGER="col -b | vim -c 'set ft=man nomod nolist ignorecase' -"
    
por 25.08.2015 / 01:33
4

Suponho que usar o mais pager é uma boa ideia. Este pager é muito poderoso, mas o recurso principal para mim - exibindo páginas de manual coloridas. Esse recurso melhora a percepção de texto simples e facilita a pesquisa de informações necessárias.

Veja a captura de tela anexada, o texto parece muito legal, não é?

    
por 13.09.2011 / 18:08
4

No Linux man , você pode fazer man -K string (note o K maiúsculo) para 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.

    
por 13.09.2011 / 18:40
3

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

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

    
por 10.09.2010 / 17:43
3

Para as páginas de manual mais longas e complexas eu acho muito mais fácil de lê-las longe de um computador (estranho, eu sei) e então eu tenho essas funções no meu .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 ;}
    
por 13.09.2011 / 18:42
2

Da resposta de Kristof, se você (por exemplo) digitar man -k chmod , você verá uma lista de possibilidades. Observe o número entre parênteses, isso significa a seção para procurar nas páginas de manual:

No UNIX, você pode tentar:

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

man -s2 chmod mostrará a man page para a função C lib chmod ()

No Linux, você deve alterar -s para -S

    
por 10.09.2010 / 13:26
2

Visualize páginas de manual em um aplicativo gráfico amigável:

konqueror man:(command)

Para o índice de nível superior:

konqueror man:

Recursos:

  • Se você inserir um comando que tenha uma correspondência em 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 chaves enigmáticas para navegar na página
  • Inclui hiperlinks para páginas relacionadas (incluindo páginas "ver também")
  • Você pode abrir páginas relacionadas em guias separadas
por 13.02.2012 / 03:48
2

Dayum, pessoas! O que há com as respostas complicadas ?! O que aconteceu com a simplicidade sendo a chave para o brilho e o que não? A maioria das suas chaves 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á pelos jogos para frente, um N maiúsculo irá para trás. O oposto é verdadeiro para o último - o ponto de interrogação.

Pesquisas ligeiramente mais complexas através de expressões regulares. A diferença entre man (ou less ) e 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 antigo ( man ou less ) - não muito. Assim, você pode facilmente usar isso ao pesquisar, por exemplo, uma página iptables man para vários termos, como: %código%. Se você não estiver familiarizado com expressões regulares, isso significa "Pesquisar instâncias de palavras /(iptables|rules) OR iptables ". Depois de inserir isso e continuar pressionando n, você estará percorrendo os resultados alternados da pesquisa, com os resultados sendo bem destacados para você com cores diferentes (dois, na verdade. Haha). Se você está tentando folhear a página e quer se concentrar em termos ou conceitos específicos, não vai perder nada!

E, é claro, para uma navegação mais rápida, os seus% standby rules ainda permanecem (sem trocadilhos): vi ou gg - início / fim do documento; (Correção! Em G você pode usar todas as chaves mencionadas abaixo sem usar Ctrl. Isso é apenas para man ). vi - Rola para cima ou para baixo; Ctrl + u or d - Mesma coisa, apenas em saltos maiores. "Página para trás ou para frente"; Ctrl + b or f ou e - rola por uma única linha, mas acho que a maioria das pessoas prefere usar apenas as teclas de seta. No entanto, se você quiser ficar "1337" e "nunca sair da linha inicial" (como eu lol) - é o caminho a percorrer.

O que eu estou tentando dizer é que o UNIX tem dois tipos principais de controles de programa de teclado, que são ambas partes da biblioteca y : vi e emacs. Aumente suas costeletas em qualquer uma (mas, de preferência, em ambas) e isso tornará sua vida muito menos complicada. A maioria dos programas CLI no UNIX emprega um ou outro. readline usa controles do emacs por padrão, mas pode ser facilmente configurado para o "modo vi" digitando BASH . O mesmo pode ser dito para expressões regulares, mas isso será muito fora do tópico. Eu diria até mesmo que ambos são a "lingua franca" do UNIX.

    
por 30.12.2016 / 09:57
2

Semelhante a pouco 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ágina, e :Man de dentro do Vim (ou simplesmente pressionando K sobre uma palavra-chave) é um excelente navegador de página .

    
por 06.03.2018 / 01:35
1

A maioria de nós define a variável PATH. Isto irá mostrar-lhe como fazer automaticamente o caminho de busca homem corresponder ao seu caminho de busca de comando.

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

Para resolver isso, eu uso o comando manpath para definir automaticamente o caminho de pesquisa da página do manual. Por exemplo, meu ~ / .bashrc tem o seguinte. Isso funciona para mim em centenas de sistemas diferentes rodando tudo do 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 usar manpath . Como resultado, as páginas man do 'MacPorts' (/ opt / local / man) são ignoradas. Eu quero controlar isso eu mesmo, então eu desarmar MANPATH:

unset MANPATH
manpath >/dev/null
    
por 14.09.2010 / 02:36
1

Se você estiver procurando informações sobre um bash embutido (como time , disown , set ou [[ ), em vez de percorrer a página detalhada de bash info ou man bash , você pode inserir help {builtin-keyword} e obter informações básicas de sintaxe rapidamente.

    
por 02.06.2011 / 04:35
1

Se você está irritado que o man printf lhe dá printf (1) e tudo que você quer é printf (3), você pode dizer ao homem que você quer o printf da seção 3 colocando a seção antes printf, assim: man 3 printf , sem ter que alterar a ordem dos diretórios escaneados na variável de ambiente MANPATH e colocar os da linguagem C antes dos comandos shell.

    
por 20.03.2014 / 11:20
1

Eu só uso grep . Se eu quisesse saber o que a opção -s do comando read fez, eu 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 comando info forneceu uma resposta clara. Esta excelente resposta fornece detalhes sobre os diferentes sistemas de ajuda.

    
por 13.04.2017 / 14:37
1

Para procurar de maneira eficiente a troca de um único caractere, por exemplo, -u , você pode usar com frequência:

/^ *-u($|\s)

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

    
por 06.03.2018 / 01:43
0

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

O NetBSD tem uma implementação de pesquisa de texto completo de apropos (1), que é capaz de pesquisar o conteúdo completo das páginas man. Existe também uma interface web para isso: man-k.org , que você pode experimentar.

    
por 11.04.2016 / 08:48
0

Sevocêachardifícilleraspáginasdemanualporcausadetodootextoembranco,poderácolori-las.Amaioriadaspáginasmanabrecomless.Paraless,euusoasseguintesconfiguraçõesdecorem.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 "$@"
}

Isto é para bash e zsh. Para most , fish , xterm e rxvt , consulte o link acima.

Para ler mais:

por 13.04.2017 / 14:36
0

E para as pessoas que gostam de ler páginas de homem e informação em uma tela sensível ao toque, você pode canalizar man / info para yad ou zenity e fazer uso de todas as coisas gtk3 como o scroll nativo do dedo. Também funciona muito bem com tela e mouse refular:

man cat |yad --text-info 

Você também pode usar 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 mostrar uri yoh pode clicar nos links da web dentro de páginas de manual com o mouse / dedo.

    
por 30.12.2016 / 17:34
-1

man -a printf apenas padroniza man 1 na minha máquina Linux Mint. whatis printf me fornece as informações pertinentes.

    
por 21.09.2016 / 19:02