Sur la ligne de commande, j'utilise souvent des commandes "simples" comme
mv foo/bar baz/bar
mais je ne sais pas comment appeler toutes les parties de ceci:
┌1┐ ┌──2───┐
git checkout master
│ └──────3──────┘
└───────4─────────┘
Je (pense que je sais) que 1 est une commande et 2 est un argument, et j'appellerais probablement 3 une liste d'arguments (est-ce exact?).
Cependant, je ne sais pas quoi appeler 4 .
Comment les «commandes» plus complexes sont-elles étiquetées?
find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/}
J'apprécierais une réponse qui décompose ce qu'il faut appeler 1,2,3,4 et ce qu'il faut appeler chaque partie de par exemple cette "commande" ci-dessus.
Ce serait formidable d'apprendre également d'autres choses uniques / surprenantes que je n'ai pas incluses ici.
command-line
command
parameter
terminology
theonlygusti
la source
la source
man
pagesgit
etfind
, en particulier, la section synopsis?git
oufind
plutôt une terminologie générale pour linux.A | B
,A | B
est un pipeline ,A
etB
sont des commandes (il est regrettable que cela ait le même nom que le premier monde d'une commande). Je pourrais appeler le premier argument un exécutable mais je ne trouve pas de source qui soit d'accord avec moi.git checkout ...
,checkout
est une sous - commande , et dans le contexte desh -c ...
,-c
est une option .Réponses:
Les noms communs pour chaque pièce sont les suivants:
Nom de la commande (premier mot ou jeton de ligne de commande qui n'est pas une redirection ou une affectation de variable et après que les alias ont été développés).
Jeton, mot ou argument de la commande. De l'homme bash:
Généralement: arguments
La concaténation de deux commandes simples avec un
|
est une séquence de tuyaux ou un pipeline:N'oubliez pas qu'il existe également des redirection et des affectations de variables:
Où (à côté des chiffres ci-dessus):
Ce n'est pas une liste exaustive de tous les éléments qu'une ligne de commande pourrait avoir. Une telle liste est trop complexe pour cette courte réponse.
la source
!
pour annuler son état). pipe ferait plutôt référence au mécanisme IPC utilisé par la plupart des shells pour implémenter des pipelines (les pipelines n'ont pas à utiliser de tuyaux, ksh93 utilise des paires de sockets à la place sur certains systèmes par exemple). Certains shells ont plus de mots-clés commetime
,noglob
qui peuvent être utilisés à la place ou en plus!
ici.cat $file
, je dirais ici que$file
c'est un jeton, mais la valeur du fichier est l'argument.argv
La réponse de @ isaac ci-dessus semble bonne.
Je veux étendre cela avec quelques sources.
Je suppose que la norme POSIX pourrait dans un certain sens être considérée comme canonique . D'autres sources pourraient être
man bash
etman proc
.POSIX suggère que:
man proc
utilise la ligne de commande )Il a également une terminologie pour de nombreuses commandes plus compliquées.
Je pense que la commande est assez ambiguë, alors peut-être que le terme nom de commande et ligne de commande sont bons pour la clarté.j
la source
proc
est un système de fichiers à usage spécial (collection de fichiers) qui fournit des informations sur l'état interne du noyau. Je crois qu'il représente des processus (voir aussi sysfs qui fournit des informations sur d'autres choses que les processus). La raison pour laquelle elle est pertinente est écrite par les développeurs du noyau , donc peut bien refléter le langage qu'ils utilisent, qui pourrait être un peu plus formel.