Alguém tem algum truque e dicas para encontrar informações nas páginas de manual?
Preste atenção ao número da seção: suponha que você queira ajuda em 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 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 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 como formats(5)
, que sugere que você digite man 5 formats
.
Se você está aborrecido por man printf
Fornecer printf (1) e tudo o que você quer é printf (3), é necessário alterar a ordem dos diretórios digitalizados na variável de ambiente MANPATH
e colocar os para a linguagem C, antes da dos comandos do 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 intro
Ou man -s <section> intro
. Isso fornece um resumo dos comandos da seção solicitada.
As seções estão bem definidas:
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.
Digite barra /
e digite a sequência a ser pesquisada. Continue pressionando n
para chegar ao próximo item
man -k pesquisa
Isso fornecerá uma lista de todas as páginas de manual relacionadas à 'pesquisa'.
Como @Steven D diz, não esqueça as páginas info
.
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 interno. Minha solução favorita é canalizar as páginas de informações através de less
:
info gpg |less
Dessa forma, eu posso navegar nas páginas info
usando meu pager favorito. As páginas info
agora terão o mesmo comportamento que as páginas man
.
O utilitário apropos
é muito útil para encontrar a página de manual apropriada.
O pager padrão para ler uma página de manual é less
. Há documentação em less
aqui .
Em particular:
Sempre verifique o que está na seção VER 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 encontro outros comandos ou funções úteis dessa maneira.
Se você estiver mais à vontade com seu 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' -"
Suponho que usar most pager seja uma boa idéia. 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 é?
No Linux man
, você pode fazer man -K string
(observe 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.
Não ignore as páginas info
. Muitas ferramentas GNU têm páginas de informações muito mais extensas que páginas de manual. Freqüentemente, a seção VEJA TAMBÉM dirá "O a documentação completa do foo é mantida como um manual do Texinfo. "Isso é 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 editor: M-x info
e M-x woman
.
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 meus .bashrc
# Print man pages
manp() { man -t "[email protected]" | lpr -pPrinter; }
# Create pdf of man page - requires ghostscript and mimeinfo
manpdf() { man -t "[email protected]" | ps2pdf - /tmp/manpdf_$1.pdf && \
xdg-open /tmp/manpdf_$1.pdf ;}
Na resposta de Kristof, se você (ou seja) digitar man -k chmod
você obterá 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 alterar -s
para -S
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 :Man
do Vim (ou simplesmente pressionar K
sobre uma palavra-chave) é um excelente navegador de páginas de manual.
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:
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 a frente ou para trás (como alguns dos caras já mencionaram). No caso do primeiro, um n minúsculo irá rolar pelas 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 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ê estiver usando o antigo (man
ou less
) - não muito. Portanto, você pode usá-lo facilmente ao pesquisar, por exemplo, um iptables
man page para vários termos como este: /(iptables|rules)
. Se você não estiver familiarizado com expressões regulares, isso significa "Procurar por instâncias de palavras iptables
OR = rules
". 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). tentando percorrer a página e querer se concentrar em termos ou conceitos específicos - você não perderá nada!
E, é claro, para uma navegação mais rápida, seus standby vi
ainda permanecem (sem trocadilhos): gg
ou G
- início/fim do documento; (Correção! Em man
você pode usar todas as teclas mencionadas abaixo sem usar Ctrl. Isso é apenas para vi
). 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"; e
ou 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 seguir.
O que estou tentando dizer é que o UNIX tem dois tipos principais de controles de programa de teclado, que são partes da biblioteca readline
: 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. BASH
usa 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.
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.
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 seus utilitários pessoais, específicos ao trabalho e instalados localmente, como export PATH=$PATH:~/bin:/workgroup/bin:/opt/local/bin:
. Como efeito colateral, man foo
não mostrará as páginas de manual 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 de manual. Por exemplo, meu ~/.bashrc tem o seguinte. Isso funciona para mim em cem 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 Apple Leopard) definem o MANPATH automaticamente, mas isso significa que seu sistema usará a variável MANPATH em vez de usar manpath
. Como resultado, páginas de manual para ' Os MacPorts '(/ opt/local/man) são ignorados. Quero controlar isso sozinho, então desmarco MANPATH:
unset MANPATH
manpath >/dev/null
man -a printf
apenas o padrão é man 1
na minha máquina Linux Mint. whatis printf
me fornece as informações pertinentes.
Se você estiver procurando informações sobre um bash
embutido (como time
, disown
, set
ou [[
), em vez de percorrer a página de informações detalhada bash
ou man bash
, pode entrar help {builtin-keyword}
e obtenha informações básicas sobre sintaxe rapidamente.
Eu apenas uso grep
. Se eu quisesse saber o que o -s
opção do comando read
, tentei estes 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.
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 printf
, sem precisar alterar a ordem dos diretórios varridos na variável de ambiente MANPATH e colocar os do idioma C antes dos dos comandos do Shell.
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.
Se 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 configurações de cores em .bashrc
de 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 "[email protected]"
}
Isso é para bash e zsh. Para most
, fish
, xterm
e rxvt
veja o link acima.
Para leitura adicional:
O comando apropos (1) é usado para pesquisar páginas de manual. No entanto, a maioria das implementações de apropos (1) basta pesquisar na seção NAME, o que é muito limitante.
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.