Respostas:
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 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 parecido com o formats(5)
que sugere que você digite man 5 formats
.
Se você está aborrecido com man printf
o resultado printf (1) e tudo o que você quer é printf (3), é necessário alterar a ordem dos diretórios verificados na MANPATH
variá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 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.
man man
para ver uma descrição completa das várias seções.
strstr()
) e não tinha uma internet à minha volta.
man -k substring
ou apropos substring
teria ajudado você.
Digite barra /
e digite a seqüência de caracteres para procurar. Continue pressionando n
para chegar ao próximo item
man -k search
Isso fornecerá uma lista de todas as páginas de manual relacionadas à 'pesquisa'.
man -k search -s 3
Também mencionado em superuser.com/a/677969/599957
Como @Steven D diz, não esqueça as info
páginas.
Além disso, não se deixe intimidar pelas info
pá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 info
páginas usando meu pager favorito. As info
páginas agora terão o mesmo comportamento que as man
páginas.
O apropos
utilitário é muito útil para encontrar a página de manual apropriada.
man -k
== apropos
, não é?
apropos
é o que eu uso o tempo todo ao procurar algo que não tenha a página de manual por si só.
O pager padrão para ler uma página de manual é less
. Há documentação less
aqui .
Em particular:
ctrl+space
/ f
, o que pode ser útil dependendo dos dedos que você preferir usar para navegação.
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 é?
most
para visualizar as páginas de manual.
> ~/.bashrc
, pois substituirá o que já está lá. Melhor acrescentar ( >>
) ou adicionar o limão manualmente na minha opinião.
aptitude install most; export MANPAGER="most"; man man
. Para torná-lo permanente:echo 'export MANPAGER="most"' >> ~/.bashrc
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.
Não ignore as info
pá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 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 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 ;}
Na resposta de Kristof, se você digitar, man -k chmod
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 mudar -s
para-S
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:
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.
gman
pacote que estabelece um servidor da página de manual em localhost / cgi-bin / man / man2html .
yelp
sendo 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.
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 ( man
ou less
), nem tanto. Assim você pode facilmente colocar isso para utilizar na pesquisa, por exemplo, uma iptables
pá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 iptables
OUrules
". 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 vi
documentos em espera regulares ainda permanecem (sem trocadilhos):
gg
ou G
- início / fim do documento; (Correção! man
Você pode usar todas as teclas mencionadas abaixo sem usar Ctrl. Isso é vi
apenas 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";
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 percorrer.
O que estou tentando dizer é que o UNIX tem dois tipos principais de controles de programa de teclado, que são partes da readline
biblioteca: 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.
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
no Vim (ou simplesmente pressionando K
uma palavra-chave), é um excelente navegador de páginas de manual.
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 foo
não mostrará as páginas de manual armazenadas em ~ / man, / workgroup / man ou / opt / local / man.
Para resolver isso, eu uso o manpath
comando 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
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 o ordem dos diretórios varridos na variável de ambiente MANPATH e coloque aqueles na linguagem C antes dos comandos de shell.
Eu apenas uso grep
. Se eu quisesse saber o que a -s
opção do read
comando 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 info
comando forneceu uma resposta clara. Esta excelente resposta fornece detalhes sobre os diferentes sistemas de ajuda.
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.
/-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 netstat
manual) você vai precisar de algo como isto: /-u($|[^a-z])
E se vi
ou vim
é usado como pager: /-u\($\|[^a-z]\)
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.
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 definições de cor no .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 "$@"
}
Isso é para bash e zsh. Por most
, fish
, xterm
e rxvt
veja no link acima.
Para leitura adicional:
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.
man --help
/man -h
e seu irmão mais completoman man
tem dicas de pesquisa e navegação.