An der Kommandozeile verwende ich oft "einfache" Befehle wie
mv foo/bar baz/bar
aber ich weiß nicht, wie ich das alles nennen soll:
┌1┐ ┌──2───┐
git checkout master
│ └──────3──────┘
└───────4─────────┘
Ich (glaube ich) weiß, dass 1 ein Befehl und 2 ein Argument ist, und ich würde wahrscheinlich 3 eine Argumentliste nennen (ist das richtig?).
Ich weiß jedoch nicht, wie ich 4 nennen soll .
Wie werden komplexere "Befehle" bezeichnet?
find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/}
Ich würde eine Antwort begrüßen, die aufschlüsselt, wie 1,2,3,4 und wie jeder Teil von zB diesem "Befehl" oben genannt wird.
Es wäre großartig, auch über andere Dinge zu lernen, die einzigartig / überraschend sind, die ich hier nicht aufgenommen habe.
command-line
command
parameter
terminology
theonlygusti
quelle
quelle
man
Seitengit
undfind
insbesondere den Abschnitt mit den Inhaltsangaben angesehen?git
oderfind
eher allgemeine Terminologie für Linux.A | B
,A | B
ist eine Pipeline ,A
undB
geben Befehle (es ist bedauerlich , dass diese die gleichen Namen wie gerade die erste Welt in einem Befehl hat). Ich könnte das erste Argument als ausführbare Datei bezeichnen, aber ich kann keine Quelle finden, die mit mir übereinstimmt.git checkout ...
,checkout
ist ein subcommand , und im Rahmensh -c ...
,-c
ist eine Option .Antworten:
Die allgemeinen Namen für jedes Teil lauten wie folgt:
Befehlsname (erstes Wort oder Token der Befehlszeile, bei dem es sich nicht um eine Umleitung oder Variablenzuweisung handelt, und nachdem Aliase erweitert wurden).
Token, Wort oder Argument für den Befehl. Von Mann Bash:
Allgemein: Argumente
Die Verkettung zweier einfacher Befehle mit a
|
ist eine Pipe-Sequenz oder -Pipeline:Beachten Sie, dass es auch Umleitungen und Variablenzuweisungen gibt:
Wo (neben den Zahlen von oben):
Dies ist keine vollständige Liste aller Elemente, die eine Befehlszeile haben könnte. Eine solche Liste ist zu komplex für diese kurze Antwort.
quelle
!
Punkt haben kann , um ihren Status zu negieren). pipe würde sich eher auf den IPC-Mechanismus beziehen, der von den meisten Shells zur Implementierung von Pipelines verwendet wird (Pipelines müssen keine Pipelines verwenden, ksh93 verwendet beispielsweise bei einigen Systemen Socket-Paare). Einige Shells haben mehr Schlüsselwörter wietime
,noglob
die stattdessen oder zusätzlich zu!
hier verwendet werden können.cat $file
, hier würde ich sagen,$file
ist ein Token, aber der Wert von file ist das Argument.argv
@ isaacs Antwort oben scheint gut zu sein.
Ich möchte dies mit einigen Quellen erweitern.
Ich denke, der POSIX-Standard könnte in gewissem Sinne als kanonisch angesehen werden . Andere Quellen könnten
man bash
und seinman proc
.POSIX schlägt vor, dass:
man proc
verwendet jedoch die Befehlszeile )Es hat auch eine Terminologie für viel kompliziertere Befehle.
Ich denke, Befehl ist ziemlich vieldeutig, also sind der Begriff Befehlsname und Befehlszeile für Klarheit gut
quelle
proc
ist ein spezielles Dateisystem (eine Sammlung von Dateien), das Informationen über den internen Status des Kernels enthält. Ich glaube, es steht für Prozesse (siehe auch sysfs , das Informationen über andere Dinge als Prozesse liefert). Der Grund, warum es relevant ist, wird von Kernel-Entwicklern geschrieben , kann also durchaus die Sprache widerspiegeln, die sie verwenden, was etwas formeller sein könnte.