Como posso obter ajuda sobre os comandos do terminal?

33

Costumo ver coisas como

leia Para obter mais informações, leia a página de manual do xyz . Vejoman xyz

info xyz

então eu me pergunto:

  • Como posso obter ajuda sobre os comandos do terminal em geral?
  • O que exatamente são essas páginas de informações e homem ?
  • Como posso encontrá-los e visualizá-los?
sobremesa
fonte
Eu também gostaria de mencionar o tldr.sh , que é um esforço para simplificar e apresentar as páginas do manual de uma maneira melhor.
Não, não mostrei meu nome verdadeiro
@ Nodon'tshownmyrealname Você escreveria uma resposta sobre tldr? Você também pode mencionar cheate talvez enganar.sh .
dessert

Respostas:

44

O que é uma página de manual ?

Uma página de manual (abreviação de página de manual) é a forma tradicional de documentação de software em um sistema operacional tipo Unix como o Ubuntu. Para a grande maioria dos comandos e programas, há uma página de manual que lista suas opções e explica seu uso.

Como posso encontrar e visualizar páginas de manual?

Off-line em um terminal

As páginas de manual são instaladas automaticamente no seu sistema, juntamente com os comandos que descrevem. Para visualizar e pesquisar páginas de manual, existe o comando man:

man mv

exibe a página de manual mvenquanto

man -k mv

pesquisa nomes e descrições curtas de todas as páginas de manual instaladas para a sequência mv. Expressões regulares estendidas do POSIX são permitidas e é uma pesquisa ; portanto, também será encontrado, por exemplo , git-mve semver, se você deseja pesquisar, mvuse exatamente ^mv$.

Veja Qual é a diferença entre `man` e` man (#) `? para ler sobre as seções da página de manual. Para mais informações, leia mana página do manual. ;)

Como posso influenciar como uma página de manual é exibida?

O programa padrão para exibir páginas de manual é less. Este chamado pager fornece uma função de pesquisa útil, basta digitar /seguido pelo termo de pesquisa, por exemplo

/--version

e pressione Enter. Isso marcará todas as descobertas e rolará para a primeira. Pressione Npara ir para a próxima descoberta e ⇧ Shift+ Npara ir para a descoberta anterior (consulte Como posso pesquisar em uma página de manual? ). Para obter uma lista de comandos H, pressione , para sair, lesspressione Q.

Ao lado lessoutros pagers disponíveis: pg, moste w3mapenas a lista de três. Eu recomendo most: ele vem com uma coloração muito útil das palavras-chave, tornando a página de manual muito mais fácil de ler e navegar, veja você mesmo:

a maioria das capturas de tela exibindo a página de manual do mv

Para visualizar uma página de manual em um pager diferente do seu pager padrão, use a -Popção, por exemplo:

man -P most mv

Se você deseja alterar, as páginas de manual do pager padrão são exibidas com duas opções:

  • alterar o pager padrão apenas de man

    export MANPAGER=most
    

    Para tornar a alteração persistente, adicione este comando ao seu ~/.bashrcarquivo.

  • altere o pager padrão de todo o seu sistema

    sudo update-alternatives --config pager
    

Os fãs podem até (ab) usar vimcomo o MANPAGER, consulte este artigo escrito por muru .

As páginas de manual são exibidas na fonte especificada nas configurações do emulador de terminal. Se você trabalha com o terminal regularmente, pode querer alterar essa fonte; Só posso recomendar o Hack - um tipo de letra criado para o código-fonte ; veja a captura de tela acima por sua beleza.

Off-line via GUI

Uma maneira fácil e agradável de exibir páginas de manual com uma GUI simples é o yelpprograma pré-instalado . Para iniciar uma página de manual com yelpexecute yelp man:PROGRAMou gnome-help man:PROGRAM, por exemplo:

yelp man:mv

Você também pode visualizar as páginas de manual com seu navegador preferido , consulte Como faço para abrir as páginas de manual em um navegador da web? , por exemplo, para man mvem firefox:

man -Hfirefox mv

Por fim, mas não menos importante, você pode converter páginas de manual em PDF e visualizá-las com o visualizador de PDF preferido, consulte: Existe uma maneira de imprimir informações / páginas de manual em PDF?

Conectados

http://manpages.ubuntu.com

Você pode visualizar as páginas de manual dos programas disponíveis nos repositórios de todas as versões atualmente suportadas do Ubuntu com a URL abreviada manpg.es/PROGRAM, por exemplo, http://manpg.es/mv . Isso abre mva página de manual da última versão do Ubuntu, você pode escolher uma versão diferente na barra superior. Para procurar páginas de manual, você pode usar, por exemplo, http://manpages.ubuntu.com/cgi-bin/search.py?q=mv .

Conforme explicado acima, mansó é possível exibir páginas de manual do software instalado no sistema. Para visualizar as páginas do manual em http://manpages.ubuntu.com usando um pager de terminal, está dmandisponível no bikeshedpacote.

Outras fontes

Ao ler a documentação de outras fontes on-line, é uma boa ideia ficar de olho na versão do programa. A maioria dos programas possui uma --versionopção que exibe a versão do programa em questão, por exemplo,

$ mv --version
mv (GNU coreutils) 8.25

Existem muitos sites que se dedicam a disponibilizar facilmente as páginas de manual, apenas apresentarei os dois que mais gosto:

  • O man7.org vem com destaque útil para sintaxe, mas apresenta apenas a última versão do programa.
  • manpag.es hospeda páginas de manual do Ubuntu, lançadas há muito tempo EOL

Fonte ainda não vinculada: https://wiki.ubuntuusers.de/man/

sobremesa
fonte
Outro truque útil (pelo menos se você é um programador) é escrever um pequeno script para despejar a saída do homem em seu editor de texto de sua escolha. Por exemplo (\ n é nova linha) #! / Bin / tcsh \ n nome do conjunto = $ argv [$ # argv] \ n arquivo do conjunto = /tmp/man.$name.out\n / usr / bin / man $ * | col -bx> $ file \ n (caminho para o seu editor) $ file \ n rm $ file \ n Uma macro semelhante, porém específica do editor, permitirá que você chame o homem de dentro do editor, o que é bastante útil.
Jamesqf #
@jamesqf Interessante, por que você faz e quando usa isso? Como os editores geralmente conseguem ler do stdin, você pode simplificá-lo para, por exemplo, man $*|col -bx|nano -ou man $*|col -bx|kate -i.
dessert
@jamesqf se você exportar a página do manual para o arquivo de texto, a fim de pesquisar ou navegar com facilidade, deve considerar a página "RESUMO DOS MENOS COMANDOS" . Pode ser aberta digitando 'h' in less( manuse o lesscomando para paginação assim também funciona man) #
Ludovic Ronsin
@Ludovic Ronsin: Faço isso no meu editor em vez de menos por duas razões. Primeiro, porque conheço os comandos do meu editor (que são muito mais poderosos que os menos comandos) e não preciso me preocupar em aprender outro conjunto de comandos, que eu inevitavelmente confundiria em diferentes contextos. Segundo, porque eu posso conectar a versão do editor a um pressionamento de tecla (Alt-m, por acaso) e, assim, obter ajuda em qualquer chamada de função que tenha uma página de manual. Por que eu faço da maneira que faço, escrevi há mais de 20 anos e funcionou bem o suficiente.
Jamesqf
@jamesqf definiria PAGER = "vim -" do?
d33tah
13

O básico já foi abordado, mas acho que um site é bastante útil para dizer o que um comando faz é https://explainshell.com , que divide um comando em suas seções e mostra o que cada bit faz.

insira a descrição da imagem aqui

Qwertie
fonte
1
+1 que é absolutamente não o que eu estava depois, quando eu escrevi este Q & A, mas é um grande recurso que eu não sabia sobre - muito obrigado! Como as outras respostas abrangem deliberadamente um tópico principal, talvez você estenda sua resposta para abranger as ferramentas on-line em geral? shellcheck.net me vem à mente ...
dessert
12

O que é uma página de informações ?

Ao lado

man program-name

muitas vezes também

info program-name

Às vezes são iguais (duplicatas), mas às vezes uma dessas páginas contém mais informações. Por exemplo

info ddrescue

contém mais informações do que

man ddrescue

e

info date

contém mais informações do que

man date

O equilíbrio entre mane infodepende da política das pessoas que mantêm o programa específico [pacote].

Veja este link para mais detalhes,

unix.stackexchange.com/questions/19451/difference-between-help-info-and-man-command

sudodus
fonte
11

Qual é o helpcomando?

helpexibe informações úteis sobre bashcomandos internos. Ele fornece ajuda apenas para comandos bash shell. Você pode usar typepara determinar se um comando é como um built-in, por exemplo type echovs. type rm.

É chamado com um padrão como argumento:

help if

exibe a página de ajuda para o ifcomando. Se você está interessado apenas na sintaxe de um comando, use a -sopção Se desejar helpproduzir uma saída no manformato de página -m. Para visualizar textos de ajuda longos convenientemente você pode canalizar a saída para o seu pager preferido (ver esta resposta 's seção ‘Como posso influenciar’):

help -m if | less

Comparação com maneinfo

Você pode executar e comparar os seguintes comandos:

help echo  # for the bash built-in command `echo`
man echo   # for the program `/bin/echo`
info echo  # for the program `/bin/echo`

Como neste exemplo, existem programas que estão disponíveis tanto como um built-in e um programa usual (ver Por que existe uma bin / / eco e por que eu iria querer usá-lo? ), Neste caso, a página do homem geralmente contém um nota indicando isso.

Veja este link para mais detalhes: Diferença entre ajuda, informações e comando man · U&L

opção de um programa -he / ou--help

Geralmente, há ajuda interna nos próprios programas disponíveis por pelo menos uma das opções -h, --helpou -?:

PROGRAM -h
PROGRAM --help
PROGRAM -?

Se ambas as opções -he --helpexistem, são muitas vezes equivalentes, mas às vezes você recebe 'mais ajuda' com --help, -H, --longhelp, --help-allou comandos semelhantes. Esse comportamento está documentado na página man/ programa info.

Normalmente, há mais informações via mane info, mas às vezes há informações exclusivas via -h. Execute e compare a saída de

man lsblk

e

lsblk -h

Alguns programas gosto df, tare rsyncusar a opção -hpara outra coisa. Isso é descrito na página man/ infode cada programa.

Novamente, você pode canalizar a saída para o seu pager preferido, por exemplo:

lsblk -h | less
sudodus
fonte
Obrigado por mencionar --help, que geralmente é a única coisa que eu preciso na maioria dos comandos, e sempre a primeira coisa que eu tento.
precisa saber é o seguinte
6

O que é um tutorial e como posso encontrar um tutorial útil

Quando você tem alguma experiência em Linux, as páginas de manual , as informações e as opções de ajuda são muito úteis. Mas no começo, eles podem ser difíceis de entender; você precisa de ajuda mais detalhada para começar.

Você pode encontrar ajuda detalhada em tutoriais ,

  • explicação detalhada de como usar um comando
  • exemplos

Normalmente, você encontrará tutoriais pela Internet, às vezes há um tutorial útil na página de manual ou na página de informações.

  • Experimente algumas seqüências de pesquisa ao usar o mecanismo de pesquisa do navegador da web, por exemplo

    • Procurando ferramentas especificadas

      • tutorial nano
      • tutorial sed
      • tutorial imagemagick
      • tutorial rsync
    • Procurando tarefas (e encontrando tutoriais para várias ferramentas)

      • tutorial do editor de modo de texto linux
      • tutorial do editor de imagens do modo em lote linux

Veja brevemente alguns dos links encontrados e comece a trabalhar com um tutorial adequado ao que você precisa .

  • man rsync é detalhado o suficiente para eu usar como tutorial, mas você pode querer mais detalhes (e procurar um tutorial pela Internet).
  • info ddrescue tem um bom tutorial embutido.
sudodus
fonte
Perfeito, obrigado por sua constante contribuição - eu sinto que essa pergunta será uma fonte muito útil que podemos apontar para iniciantes. Vou adicionar um índice de conteúdo à pergunta e vincular as respostas para poupar a rolagem dos espectadores.
Sobremesa
1
@dessert, esta é uma boa iniciativa por você, e eu estou contente de contribuir :-)
sudodus
2

O meu favorito é commandlinefu.com , tem uma função no seu .bashrcou .zshrcassim

cmd() { curl "http://www.commandlinefu.com/commands/matching/$(echo "$@" \
    | sed 's/ /-/g')/$(echo -n $@ | base64)/plaintext" ;}

Vamos tentar cmd mount cd, eu chamei minha função cmd, você pode chamar como quiser

insira a descrição da imagem aqui

A função acima pesquisa no site do commandlinefu, é um site direcionado à comunidade, assim como aqui, os usuários têm a capacidade de votar de forma positiva e assim por diante. Em seguida, mostra os principais resultados, como na imagem.

ou há uma nova maneira de fazer isso usando isso .

http://samirahmed.github.io/fu/

Aqui está um tutorial .

Vamos fazer fu cron

insira a descrição da imagem aqui

Lynob
fonte
1

Descubra como abrir uma janela do terminal e emita o comando man man. Digite a barra de espaço para avançar para a próxima tela sempre que aparecer "Mais" na parte inferior. Você está lendo a página de manual do programa de leitura manual man,!

Há um problema muito pequeno de ovo e galinha para você superar. O mancomando ajuda você a ler o manual sobre todos os comandos no sistema. Mas a mansaída usa outro comando chamado more. Você também pode ler man morepara aprender comandos de navegação adicionais para more.

E isso é tudo! Aprendi tudo o que sei sobre o unix lendo as páginas de manual para centenas de comandos.

Douglas Held
fonte
3
No Ubuntu, manusa lesspor padrão, não more.
muru
0

Muitos já mencionaram man. Um pequeno recurso interessante para manpoucos que conhecem é

man -t $ (manpage) > manpage.ps

que produz um arquivo PostScript para a página do manual. O PostScript pode ser facilmente convertido em PDF. Isso resulta em uma formatação muito melhor que a versão padrão do terminal da linha de comando man.

Por exemplo:

man -t man> man.ps

pstopdf man.ps

Acabei de testá-lo no Ubuntu (e deve funcionar em outros Linuces) e no Mac OS.

Oleg Lobachev
fonte