Na linha de comando, costumo usar comandos "simples" como
mv foo/bar baz/bar
mas não sei como chamar todas as partes disso:
┌1┐ ┌──2───┐
git checkout master
│ └──────3──────┘
└───────4─────────┘
Eu (acho que) sei que 1 é um comando e 2 é um argumento, e provavelmente chamaria 3 de uma lista de argumentos (isso está correto?).
No entanto, não sei como chamar 4 .
Como os "comandos" mais complexos são rotulados?
find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/}
Eu apreciaria uma resposta que detalha o que chamar 1,2,3,4 e o que chamar cada parte deste, por exemplo, este "comando" acima.
Seria ótimo aprender também sobre outras coisas únicas / surpreendentes que eu não incluí aqui.
command-line
command
parameter
terminology
theonlygusti
fonte
fonte
man
páginasgit
efind
, em particular, a seção de sinopse?git
oufind
terminologias bastante geral para linux.A | B
,A | B
é um gasoduto ,A
eB
são comandos (é uma pena que isso tem o mesmo nome que apenas o primeiro mundo em um comando). Eu poderia chamar o primeiro argumento de executável, mas não consigo encontrar uma fonte que concorde comigo.git checkout ...
,checkout
é um subcomando e, no contexto desh -c ...
,-c
é uma opção .Respostas:
Os nomes comuns para cada parte são os seguintes:
Nome do comando (primeira palavra ou token da linha de comando que não é um redirecionamento ou atribuição de variável e depois que os aliases foram expandidos).
Token, palavra ou argumento para o comando. De man bash:
Geralmente: Argumentos
A concatenação de dois comandos simples com a
|
é uma sequência ou canal de tubulação:Lembre-se de que também existem redirecionamentos e atribuições de variáveis:
Onde (ao lado dos números acima):
Esta não é uma lista exaustiva de todo o elemento que uma linha de comando poderia ter. Essa lista é complexa demais para esta resposta curta.
fonte
!
para negar seu status). pipe prefere se referir ao mecanismo IPC usado pela maioria dos shells para implementar pipelines (os pipelines não precisam usar pipes, o ksh93 usa socketpairs em vez de alguns sistemas, por exemplo). Alguns shells têm mais palavras-chave comotime
,noglob
que podem ser usadas em vez disso ou além!
daqui.cat $file
, aqui eu diria que$file
é um token, mas o valor do arquivo é o argumento.argv
A resposta de @ isaac acima parece boa.
Eu quero estender isso com algumas fontes.
Eu acho que o padrão POSIX pode, em certo sentido, ser considerado canônico . Outras fontes podem ser
man bash
eman proc
.O POSIX sugere que:
man proc
use a linha de comando )Também possui terminologia para muitos comandos mais complicados.
Eu acho que o comando é bastante ambíguo, então talvez o termo nome do comando e a linha de comando sejam bons para maior clareza.j
fonte
proc
é um sistema de arquivos para fins especiais (coleção de arquivos) que fornece informações sobre o estado interno do kernel. Eu acredito que significa processos (veja também sysfs que fornece informações sobre outras coisas além de processos). A razão pela qual é relevante é escrita pelos desenvolvedores do kernel , portanto, pode refletir a linguagem que eles usam, que pode ser um pouco mais formal.