Como ler o uso do Unix

16

Eu fiz algumas pesquisas, mas não consigo encontrar documentação sobre como o uso do Unix funciona. Sei alguma coisa (principalmente por tentativa e erro), mas, por exemplo, como sei que

/usr/bin/ls  [-aAbcCdeEfFghHilLmnopqrRstuvVx1@] [file]...

significa que você pode incluir mais de uma opção? Isso é,

ls -la

Onde está a documentação sobre qual é a sintaxe de uso?

sixtyfootersdude
fonte
O POSIX tem alguma opinião sobre como os monitores de uso / ajuda devem ser formatados, mas além dos utilitários principais (GNU), poucos o seguem de maneira consistente.
Tim Post
@ Tim, não tenho nada em uso lá.
Sixtyfootersdude
(por favor, não tome isso como um post RTFM, é mais um comentário engraçado). Você pode realmente executar 'man man' e rolar para baixo para encontrar as diretrizes de sintaxe.
ThinkBonobo

Respostas:

34

É verdade que não há RFC nem nada, mas você não vai muito longe se seguir estas diretrizes:

  1. Qualquer coisa entre colchetes angulares < >significa que a opção é necessária:
    <foo>

  2. Qualquer coisa entre colchetes [ ]significa que a opção é opcional:
    [bar]

  3. Opções separadas por um canal |significa que esses são os valores válidos:
    --baz=one|two|three

  4. As opções de letra única começam com um traço:
    -a

  5. As opções de várias letras começam com dois traços:
    --foo-bar

  6. (com base no número 4) Um traço único com várias letras geralmente significa a união dessas opções individuais de uma letra em vez de uma opção de várias letras. Nem todos os comandos suportam esse tipo de união. Exemplo:
    -aAbBcCé o mesmo que-a -A -b -B -c -C

frankc
fonte
11
man man ou man 5 homem
mpez0
11
Não há RFC, mas existem as especificações do POSIX , que incluem convenções de utilitários
Wildcard
6

Não existe uma estrutura estrita para as páginas de manual, mas o seguinte abrange a maioria dos comandos.

Em MANUAL PAGES (5), manual de formatos de arquivo BSD , seção "MANUAL PAGE SYNTAX":

Na sintaxe da página manual, qualquer coisa em uma fonte de texto normal é um texto obrigatório. Qualquer coisa em uma fonte em negrito é uma bandeira ou um subcomando. Qualquer coisa sublinhada é um argumento especificado pelo usuário, como um nome de arquivo.

Qualquer argumento entre colchetes é considerado opcional. Por exemplo, [nome do arquivo] indicaria um argumento opcional para o nome do arquivo.

Sinalizadores, argumentos ou subcomandos separados por um separador vertical (|) são mutuamente exclusivos. Por exemplo, se -a ativar uma opção e -b desativar a opção, a sintaxe para este comando poderá ser -a | -b.

Em alguns casos, você pode até ver grupos inteiros de argumentos entre colchetes e separados por um separador vertical. Essa é uma maneira de mostrar que um comando possui mais de uma sintaxe válida. Em outras páginas de manual, isso é expresso por várias linhas na sinopse, cada uma das quais começa com o nome do comando. O formato separado é mais comum (e mais legível), mas nem sempre é possível para comandos com sintaxe particularmente complexa.

Por fim, a convenção notacional mais importante é o uso das reticências (...). Isso indica que argumentos adicionais podem ser adicionados neste momento.

Peter Mortensen
fonte
5

As linhas de uso não seguem nada consistente.

Você deve usar man lsou info lsobter um nível mais consistente de informações.

clahey
fonte