En la línea de comando a menudo uso comandos "simples" como
mv foo/bar baz/bar
pero no sé cómo llamar a todas las partes de esto:
┌1┐ ┌──2───┐
git checkout master
│ └──────3──────┘
└───────4─────────┘
(Creo que sé) que 1 es un comando y 2 es un argumento, y probablemente llamaría a 3 una lista de argumentos (¿es correcto?).
Sin embargo, no sé cómo llamar 4 .
¿Cómo se etiquetan los "comandos" más complejos?
find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/}
Agradecería una respuesta que desglosa qué llamar 1,2,3,4 y cómo llamar a cada parte de, por ejemplo, este "comando" anterior.
Sería genial aprender también sobre otras cosas que son únicas / sorprendentes que no he incluido aquí.
command-line
command
parameter
terminology
theonlygusti
fuente
fuente
man
páginasgit
yfind
, en particular, la sección de sinopsis?git
ofind
terminología bastante general para Linux.A | B
,A | B
es una tubería ,A
yB
son comandos (lo lamentable es que esto tiene el mismo nombre que sólo el primer mundo en un comando). Podría llamar al primer argumento ejecutable, pero no puedo encontrar una fuente que esté de acuerdo conmigo.git checkout ...
,checkout
es un subcomando , y en el contexto desh -c ...
,-c
es una opción .Respuestas:
Los nombres comunes para cada parte son los siguientes:
Nombre del comando (primera palabra o token de la línea de comando que no es una redirección o asignación de variable y después de que se hayan expandido los alias).
Token, palabra o argumento del comando. De man bash:
Generalmente: argumentos
La concatenación de dos comandos simples con a
|
es una secuencia de tubería o tubería:Tenga en cuenta que también hay redirecciones y asignaciones variables:
Donde (al lado de los números de arriba):
Esta no es una lista exhaustiva de todos los elementos que podría tener una línea de comando. Dicha lista es demasiado compleja para esta breve respuesta.
fuente
!
para negar su estado). pipe preferiría referirse al mecanismo de IPC utilizado por la mayoría de los shells para implementar tuberías (las tuberías no tienen que usar tuberías, ksh93 usa pares de enchufes en algunos sistemas, por ejemplo). Algunos shells tienen más palabras clave comotime
,noglob
que se pueden usar en su lugar o además de!
aquí.cat $file
, aquí diría que$file
es un token, pero el valor del archivo es el argumento.argv
La respuesta de @ isaac anterior parece buena.
Quiero extender esto con algunas fuentes.
Supongo que el estándar POSIX en algún sentido podría considerarse canónico . Otras fuentes pueden ser
man bash
yman proc
.POSIX sugiere que:
man proc
usa la línea de comando )También tiene terminología para muchos comandos más complicados.
Creo que el comando es bastante ambiguo, por lo que quizás el término nombre del comando y la línea de comando sean buenos para mayor claridad.
fuente
proc
es un sistema de archivos de propósito especial (colección de archivos) que proporciona información sobre el estado interno del núcleo. Creo que significa procesos (ver también sysfs que proporciona información sobre otras cosas además de los procesos). La razón por la que es relevante está escrita por desarrolladores de kernel , por lo que bien puede reflejar el lenguaje que usan, que podría ser un poco más formal.