Por que as páginas man não possuem exemplos?

50

Existe uma razão pela qual a maioria das páginas man não inclui alguns exemplos comuns? Eles geralmente explicam todas as opções possíveis, mas isso torna ainda mais difícil para um iniciante entender como ele é "geralmente" usado.

    
por Deepak Joy 28.08.2016 / 11:16

4 respostas

49

Isso depende das páginas de manual ... Tradicionalmente, elas incluíram uma seção com exemplos - mas por alguma razão que normalmente está faltando nas páginas man do Linux (e eu assumo outras usando o GNU comandos - que são mais estes dias). No Solaris, por outro lado, quase todas as páginas man incluem a seção Example, geralmente com vários exemplos.

Se eu fosse adivinhar, a FSF / GNU há muito tempo desencorajou o uso de man páginas e prefere que os usuários usem as informações para documentação. As páginas info tendem a ser mais abrangentes do que as páginas do manual e, geralmente, fazer incluem exemplos. info páginas também são mais "tópicas" - isto é, comandos relacionados (por exemplo, comandos para localizar arquivos) geralmente podem ser encontrados juntos.

Outra razão pode ser que o GNU e suas páginas man são usadas em muitos sistemas operacionais diferentes, os quais podem diferir uns dos outros (existem, depois de todas as diferenças, apenas entre diferentes distribuições do Linux). A intenção pode ter sido que o editor tenha adicionado exemplos relevantes para o sistema operacional / distribuição em particular - o que obviamente raramente é feito.

Também gostaria de acrescentar que man páginas nunca foram destinadas a "ensinar iniciantes". O UNIX foi desenvolvido por especialistas em informática (antigo termo "hackers") e destina-se a ser usado por especialistas em informática. As páginas man não foram feitas para ensinar um novato, mas para ajudar rapidamente um especialista em computador que precisava de um lembrete para alguma opção obscura ou formato de arquivo estranho - e isso se reflete em como uma página de manual é seccionada.

man -pages são, portanto, pretendidas como

  • Uma referência rápida para refrescar sua memória; mostrando como o comando deve ser chamado e listando as opções disponíveis.
  • Uma descrição profunda e completa - e geralmente muito técnica - de todos os aspectos do comando. Ele é escrito por especialistas em computação, para colegas especialistas em computação.
  • Lista de variáveis de ambiente e arquivos (ou seja, arquivos de configuração) usados pelo comando.
  • Referência a outra documentação (por exemplo, livros) e outras man páginas - por exemplo. para o formato de arquivos de configuração e comandos relacionados / semelhantes.

Dito isso, concordo muito com você que man páginas devem ter exemplos, já que podem explicar melhor o uso do que percorrer a própria página man. Exemplos muito ruins geralmente não estão disponíveis no Linux man pages ...

Exemplo da parte Exemplo de uma página man do Solaris - zfs (1M):

(...)
EXAMPLES
     Example 1 Creating a ZFS File System Hierarchy

     The following commands create a filesystem named  pool/home
     and  a  filesystem  named  pool/home/bob.  The mount point
     /export/home is set for  the  parent  filesystem,  and  is
     automatically inherited by the child filesystem.

       # zfs create pool/home
       # zfs set mountpoint=/export/home pool/home
       # zfs create pool/home/bob

     Example 2 Creating a ZFS Snapshot

     The following command creates a  snapshot  named  yesterday.
     This  snapshot  is  mounted  on  demand in the .zfs/snapshot
     directory at the root of the pool/home/bob file system.

       # zfs snapshot pool/home/bob@yesterday

     Example 3 Creating and Destroying Multiple Snapshots

     The following command creates snapshots named  yesterday  of
     pool/home  and  all  of  its  descendent  file systems. Each
     snapshot is mounted on demand in the .zfs/snapshot directory
     at  the root of its file system. The second command destroys
     the newly created snapshots.

       # zfs snapshot -r pool/home@yesterday
       # zfs destroy -r pool/home@yesterday

SunOS 5.11          Last change: 23 Jul 2012                   51

System Administration Commands                            zfs(1M)

     Example 4 Disabling and Enabling File System Compression

     The following command disables the compression property  for
(...)

Esta página do manual em particular vem com 16 (!) tais exemplos ... Kudos para o Solaris!
(E eu admito que eu mesmo segui esses exemplos, em vez de ler a man page inteira para esse comando ...)

    
por 29.08.2016 / 01:32
26

Eu não acho que haja uma boa resposta para isso. É uma coisa de cultura. Algumas páginas man têm uso de exemplo. Por exemplo. %código%. Você poderia tentar alterar a cultura escrevendo para o autor da página de manual e pedindo a ele para adicionar algum uso de amostra ou (muito melhor) oferecendo alguns exemplos de uso de amostra você mesmo. Se você oferece a um autor de software livre um patch, particularmente um patch de documentação, é aproximadamente 10 mil vezes mais provável conseguir o resultado desejado do que um simples pedido.

    
por 28.08.2016 / 11:25
7

Depende:

  • a maioria dos programas que você acharia interessante são desenvolvidos ao longo de um período de tempo, inicialmente para resolver um problema e depois para melhorar a solução. Os desenvolvedores dos programas explicam o que eles achavam que era importante saber (e documentação não era o problema que eles estavam resolvendo).
  • para alguns programas, os desenvolvedores preferem fornecer exemplos de programas ou scripts que mostram como usar um determinado programa (ou biblioteca). Novamente, isso é feito para resolver um problema: tornar o programa mais fácil de testar.

    Alguns dos exemplos podem ser baseados em relatórios de erros de usuários, e quando curto encontra um lugar no manual. Exemplos longos raramente são fornecidos em manuais, e exemplos breves têm o problema de que eles tendem a ser triviais, repetitivos e não fornecem ao usuário tanto discernimento quanto uma descrição bem organizada do funcionamento de um programa.

  • em alguns casos você encontrará documentação que é fornecida por outros não envolvidos no processo de desenvolvimento. Ou seja, os desenvolvedores não participaram, exceto para revisar a documentação. Esse tipo de esforço pode ser desconsiderado.
por 28.08.2016 / 12:14
6

Se você está procurando uma alternativa para man pages, você sempre pode tentar páginas bro , que mostram apenas vários exemplos para um comando, que você pode votar em uma lista de exemplos enviados pela comunidade. Por exemplo, o comando bro tar dará a você:

    
por 30.08.2016 / 07:28

Tags