O "padrão" é dado pela gramática do shell. Em casos simples, é um comando (ou melhor, um utilitário ), seguido por argumentos . Os argumentos podem ser opções , e as opções podem ter argumentos da opção . Após as opções, pode haver outros operandos .
Exemplo:
ls -l dir
ls é o comando, -l é uma opção (sem argumento de opção) e dir é um operando. Sabemos que dir não é um argumento de opção para a opção -l , pois lemos o manual ls no qual a seção de sinopses descreve a sequência de chamada do utilitário.
Exemplo:
git commit -p
git é o comando e, como não há opções imediatamente após o nome do comando, o restante é tratado como operandos. Cabe ao comando git interpretar isso. Você pode querer chamar o operando commit de um "subcomando" se desejar e -p uma "opção" para este subcomando.
Exemplo:
cc -o code.o -Wall code.c
Aqui, cc é o comando e as opções -o e -Wall são opções. A opção -o usa code.o como um argumento de opção. Dependendo do comando cc , a opção -Wall pode, de fato, ser analisada como -W all , ou seja, como uma opção com um argumento de opção (as opções de uma letra não exigem espaço antes de seus argumentos de opção). code.c é um operando como ocorre depois de todas as opções.
As palavras "argumento", "opção" e "argumento de opção" são aquelas usadas por Padrão POSIX . O padrão usa a palavra "utility" em vez de "command" como um comando pode ser simples, uma lista, composto, pipeline etc. Por exemplo, ls -l dir é um (simples) comando usando o utilitário ls e { head -n 20 | tail -n 5; } >file é um comando composto contendo um pipeline e dois comandos simples.
Indiscutivelmente, todas as invocações de utilitários são "ações". Dizer killall myprog significa "iniciar o utilitário killall com o operando myprog ". O efeito disso será que a utilidade, neste caso, envia um sinal para um processo.
Da mesma forma, service restart nginx é a ação de invocar o utilitário service com restart e nginx como os dois operandos. O efeito disso será que o serviço nginx seja reiniciado.
Da mesma forma, nano somedoc é a ação de invocar o editor nano , etc. etc.